mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-01-28 08:48:09 -05:00
Compare commits
10 Commits
remove-par
...
processing
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0dfcf24859 | ||
|
|
be0b7fc96e | ||
|
|
d7016d2251 | ||
|
|
d44283ffcf | ||
|
|
69e3f2eb24 | ||
|
|
c724bea786 | ||
|
|
4bc684d3ed | ||
|
|
9434450a65 | ||
|
|
362ed8df41 | ||
|
|
293c1d6889 |
@@ -92,11 +92,11 @@ implementation](https://github.com/googleapis/genai-toolbox/blob/main/internal/s
|
||||
`newdb.go`. Create a `Config` struct to include all the necessary parameters
|
||||
for connecting to the database (e.g., host, port, username, password, database
|
||||
name) and a `Source` struct to store necessary parameters for tools (e.g.,
|
||||
Name, Kind, connection object, additional config).
|
||||
Name, Type, connection object, additional config).
|
||||
* **Implement the
|
||||
[`SourceConfig`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/sources/sources.go#L57)
|
||||
interface**. This interface requires two methods:
|
||||
* `SourceConfigKind() string`: Returns a unique string identifier for your
|
||||
* `SourceConfigType() string`: Returns a unique string identifier for your
|
||||
data source (e.g., `"newdb"`).
|
||||
* `Initialize(ctx context.Context, tracer trace.Tracer) (Source, error)`:
|
||||
Creates a new instance of your data source and establishes a connection to
|
||||
@@ -104,7 +104,7 @@ implementation](https://github.com/googleapis/genai-toolbox/blob/main/internal/s
|
||||
* **Implement the
|
||||
[`Source`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/sources/sources.go#L63)
|
||||
interface**. This interface requires one method:
|
||||
* `SourceKind() string`: Returns the same string identifier as `SourceConfigKind()`.
|
||||
* `SourceType() string`: Returns the same string identifier as `SourceConfigType()`.
|
||||
* **Implement `init()`** to register the new Source.
|
||||
* **Implement Unit Tests** in a file named `newdb_test.go`.
|
||||
|
||||
@@ -126,7 +126,7 @@ tools.
|
||||
* **Implement the
|
||||
[`ToolConfig`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/tools/tools.go#L61)
|
||||
interface**. This interface requires one method:
|
||||
* `ToolConfigKind() string`: Returns a unique string identifier for your tool
|
||||
* `ToolConfigType() string`: Returns a unique string identifier for your tool
|
||||
(e.g., `"newdb-tool"`).
|
||||
* `Initialize(sources map[string]Source) (Tool, error)`: Creates a new
|
||||
instance of your tool and validates that it can connect to the specified
|
||||
@@ -243,7 +243,7 @@ resources.
|
||||
| style | Update src code, with only formatting and whitespace updates (e.g. code formatter or linter changes). |
|
||||
|
||||
Pull requests should always add scope whenever possible. The scope is
|
||||
formatted as `<scope-type>/<scope-kind>` (e.g., `sources/postgres`, or
|
||||
formatted as `<scope-resource>/<scope-type>` (e.g., `sources/postgres`, or
|
||||
`tools/mssql-sql`).
|
||||
|
||||
Ideally, **each PR covers only one scope**, if this is
|
||||
|
||||
17
DEVELOPER.md
17
DEVELOPER.md
@@ -47,11 +47,12 @@ Before you begin, ensure you have the following:
|
||||
### Tool Naming Conventions
|
||||
|
||||
This section details the purpose and conventions for MCP Toolbox's tools naming
|
||||
properties, **tool name** and **tool kind**.
|
||||
properties, **tool name** and **tool type**.
|
||||
|
||||
```
|
||||
cancel_hotel: <- tool name
|
||||
kind: postgres-sql <- tool kind
|
||||
kind: tools
|
||||
name: cancel_hotel <- tool name
|
||||
type: postgres-sql <- tool type
|
||||
source: my_pg_source
|
||||
```
|
||||
|
||||
@@ -76,17 +77,17 @@ The following guidelines apply to tool names:
|
||||
to a function) until they can be validated through extensive testing to ensure
|
||||
they do not negatively impact agent's performances.
|
||||
|
||||
#### Tool Kind
|
||||
#### Tool Type
|
||||
|
||||
Tool kind serves as a category or type that a user can assign to a tool.
|
||||
Tool type serves as a category or type that a user can assign to a tool.
|
||||
|
||||
The following guidelines apply to tool kinds:
|
||||
The following guidelines apply to tool types:
|
||||
|
||||
* Should user hyphens over underscores (e.g. `firestore-list-collections` or
|
||||
* Should use hyphens over underscores (e.g. `firestore-list-collections` or
|
||||
`firestore_list_colelctions`).
|
||||
* Should use product name in name (e.g. `firestore-list-collections` over
|
||||
`list-collections`).
|
||||
* Changes to tool kind are breaking changes and should be avoided.
|
||||
* Changes to tool type are breaking changes and should be avoided.
|
||||
|
||||
## Testing
|
||||
|
||||
|
||||
14
README.md
14
README.md
@@ -940,9 +940,9 @@ Toolbox should have access to. Most tools will have at least one source to
|
||||
execute against.
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-pg-source:
|
||||
kind: postgres
|
||||
kind: sources
|
||||
name: my-pg-source
|
||||
type: postgres
|
||||
host: 127.0.0.1
|
||||
port: 5432
|
||||
database: toolbox_db
|
||||
@@ -956,12 +956,12 @@ For more details on configuring different types of sources, see the
|
||||
### Tools
|
||||
|
||||
The `tools` section of a `tools.yaml` define the actions an agent can take: what
|
||||
kind of tool it is, which source(s) it affects, what parameters it uses, etc.
|
||||
type of tool it is, which source(s) it affects, what parameters it uses, etc.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search-hotels-by-name:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: search-hotels-by-name
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Search for hotels based on name.
|
||||
parameters:
|
||||
|
||||
158
cmd/root.go
158
cmd/root.go
@@ -15,6 +15,7 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
_ "embed"
|
||||
"fmt"
|
||||
@@ -396,7 +397,6 @@ func NewCommand(opts ...Option) *Command {
|
||||
|
||||
type ToolsFile struct {
|
||||
Sources server.SourceConfigs `yaml:"sources"`
|
||||
AuthSources server.AuthServiceConfigs `yaml:"authSources"` // Deprecated: Kept for compatibility.
|
||||
AuthServices server.AuthServiceConfigs `yaml:"authServices"`
|
||||
EmbeddingModels server.EmbeddingModelConfigs `yaml:"embeddingModels"`
|
||||
Tools server.ToolConfigs `yaml:"tools"`
|
||||
@@ -427,6 +427,129 @@ func parseEnv(input string) (string, error) {
|
||||
return output, err
|
||||
}
|
||||
|
||||
func convertToolsFile(raw []byte) ([]byte, error) {
|
||||
var input yaml.MapSlice
|
||||
decoder := yaml.NewDecoder(bytes.NewReader(raw), yaml.UseOrderedMap())
|
||||
|
||||
// convert to tools file v2
|
||||
var buf bytes.Buffer
|
||||
encoder := yaml.NewEncoder(&buf)
|
||||
|
||||
v1keys := []string{"sources", "authSources", "authServices", "embeddingModels", "tools", "toolsets", "prompts"}
|
||||
for {
|
||||
if err := decoder.Decode(&input); err != nil {
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
for _, item := range input {
|
||||
key, ok := item.Key.(string)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unexpected non-string key in input: %v", item.Key)
|
||||
}
|
||||
// check if the key is config file v1's key
|
||||
if slices.Contains(v1keys, key) {
|
||||
// check if value conversion to yaml.MapSlice successfully
|
||||
// fields such as "tools" in toolsets might pass the first check but
|
||||
// fail to convert to MapSlice
|
||||
if slice, ok := item.Value.(yaml.MapSlice); ok {
|
||||
// Deprecated: convert authSources to authServices
|
||||
if key == "authSources" {
|
||||
key = "authServices"
|
||||
}
|
||||
transformed, err := transformDocs(key, slice)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// encode per-doc
|
||||
for _, doc := range transformed {
|
||||
if err := encoder.Encode(doc); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// invalid input will be ignored
|
||||
// we don't want to throw error here since the config could
|
||||
// be valid but with a different order such as:
|
||||
// ---
|
||||
// tools:
|
||||
// - tool_a
|
||||
// kind: toolsets
|
||||
// ---
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
// this doc is already v2, encode to buf
|
||||
if err := encoder.Encode(input); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
// transformDocs transforms the configuration file from v1 format to v2
|
||||
// yaml.MapSlice will preserve the order in a map
|
||||
func transformDocs(kind string, input yaml.MapSlice) ([]yaml.MapSlice, error) {
|
||||
var transformed []yaml.MapSlice
|
||||
for _, entry := range input {
|
||||
entryName, ok := entry.Key.(string)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("unexpected non-string key for entry in '%s': %v", kind, entry.Key)
|
||||
}
|
||||
entryBody := ProcessValue(entry.Value, kind == "toolsets")
|
||||
|
||||
currentTransformed := yaml.MapSlice{
|
||||
{Key: "kind", Value: kind},
|
||||
{Key: "name", Value: entryName},
|
||||
}
|
||||
|
||||
// Merge the transformed body into our result
|
||||
if bodySlice, ok := entryBody.(yaml.MapSlice); ok {
|
||||
currentTransformed = append(currentTransformed, bodySlice...)
|
||||
} else {
|
||||
return nil, fmt.Errorf("unable to convert entryBody to MapSlice")
|
||||
}
|
||||
transformed = append(transformed, currentTransformed)
|
||||
}
|
||||
return transformed, nil
|
||||
}
|
||||
|
||||
// ProcessValue recursively looks for MapSlices to rename 'kind' -> 'type'
|
||||
func ProcessValue(v any, isToolset bool) any {
|
||||
switch val := v.(type) {
|
||||
case yaml.MapSlice:
|
||||
// creating a new MapSlice is safer for recursive transformation
|
||||
newVal := make(yaml.MapSlice, len(val))
|
||||
for i, item := range val {
|
||||
// Perform renaming
|
||||
if item.Key == "kind" {
|
||||
item.Key = "type"
|
||||
}
|
||||
// Recursive call for nested values (e.g., nested objects or lists)
|
||||
item.Value = ProcessValue(item.Value, false)
|
||||
newVal[i] = item
|
||||
}
|
||||
return newVal
|
||||
case []any:
|
||||
// Process lists: If it's a toolset top-level list, wrap it.
|
||||
if isToolset {
|
||||
return yaml.MapSlice{{Key: "tools", Value: val}}
|
||||
}
|
||||
// Otherwise, recurse into list items (to catch nested objects)
|
||||
newVal := make([]any, len(val))
|
||||
for i := range val {
|
||||
newVal[i] = ProcessValue(val[i], false)
|
||||
}
|
||||
return newVal
|
||||
default:
|
||||
return val
|
||||
}
|
||||
}
|
||||
|
||||
// parseToolsFile parses the provided yaml into appropriate configs.
|
||||
func parseToolsFile(ctx context.Context, raw []byte) (ToolsFile, error) {
|
||||
var toolsFile ToolsFile
|
||||
@@ -437,8 +560,13 @@ func parseToolsFile(ctx context.Context, raw []byte) (ToolsFile, error) {
|
||||
}
|
||||
raw = []byte(output)
|
||||
|
||||
raw, err = convertToolsFile(raw)
|
||||
if err != nil {
|
||||
return toolsFile, fmt.Errorf("error converting tools file: %s", err)
|
||||
}
|
||||
|
||||
// Parse contents
|
||||
err = yaml.UnmarshalContext(ctx, raw, &toolsFile, yaml.Strict())
|
||||
toolsFile.Sources, toolsFile.AuthServices, toolsFile.EmbeddingModels, toolsFile.Tools, toolsFile.Toolsets, toolsFile.Prompts, err = server.UnmarshalResourceConfig(ctx, raw)
|
||||
if err != nil {
|
||||
return toolsFile, err
|
||||
}
|
||||
@@ -470,18 +598,6 @@ func mergeToolsFiles(files ...ToolsFile) (ToolsFile, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Check for conflicts and merge authSources (deprecated, but still support)
|
||||
for name, authSource := range file.AuthSources {
|
||||
if _, exists := merged.AuthSources[name]; exists {
|
||||
conflicts = append(conflicts, fmt.Sprintf("authSource '%s' (file #%d)", name, fileIndex+1))
|
||||
} else {
|
||||
if merged.AuthSources == nil {
|
||||
merged.AuthSources = make(server.AuthServiceConfigs)
|
||||
}
|
||||
merged.AuthSources[name] = authSource
|
||||
}
|
||||
}
|
||||
|
||||
// Check for conflicts and merge authServices
|
||||
for name, authService := range file.AuthServices {
|
||||
if _, exists := merged.AuthServices[name]; exists {
|
||||
@@ -965,20 +1081,6 @@ func run(cmd *Command) error {
|
||||
cmd.cfg.ToolsetConfigs = finalToolsFile.Toolsets
|
||||
cmd.cfg.PromptConfigs = finalToolsFile.Prompts
|
||||
|
||||
authSourceConfigs := finalToolsFile.AuthSources
|
||||
if authSourceConfigs != nil {
|
||||
cmd.logger.WarnContext(ctx, "`authSources` is deprecated, use `authServices` instead")
|
||||
|
||||
for k, v := range authSourceConfigs {
|
||||
if _, exists := cmd.cfg.AuthServiceConfigs[k]; exists {
|
||||
errMsg := fmt.Errorf("resource conflict detected: authSource '%s' has the same name as an existing authService. Please rename your authSource", k)
|
||||
cmd.logger.ErrorContext(ctx, errMsg.Error())
|
||||
return errMsg
|
||||
}
|
||||
cmd.cfg.AuthServiceConfigs[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
instrumentation, err := telemetry.CreateTelemetryInstrumentation(versionString)
|
||||
if err != nil {
|
||||
errMsg := fmt.Errorf("unable to create telemetry instrumentation: %w", err)
|
||||
|
||||
864
cmd/root_test.go
864
cmd/root_test.go
File diff suppressed because it is too large
Load Diff
@@ -45,7 +45,7 @@ most popular issues, so make sure to +1 ones you are the most interested in.
|
||||
## Can Toolbox be used for non-database tools?
|
||||
|
||||
**Yes!** While Toolbox is primarily focused on databases, it also supports generic
|
||||
**HTTP tools** (`kind: http`). These allow you to connect your agents to REST APIs
|
||||
**HTTP tools** (`type: http`). These allow you to connect your agents to REST APIs
|
||||
and other web services, enabling workflows that extend beyond database interactions.
|
||||
|
||||
For configuration details, see the [HTTP Tools documentation](../resources/tools/http/http.md).
|
||||
|
||||
@@ -64,7 +64,7 @@ The structured logging outputs log as JSON:
|
||||
"timestamp":"2024-11-04T16:45:11.987299-08:00",
|
||||
"severity":"ERROR",
|
||||
"logging.googleapis.com/sourceLocation":{...},
|
||||
"message":"unable to parse tool file at \"tools.yaml\": \"cloud-sql-postgres1\" is not a valid kind of data source"
|
||||
"message":"unable to parse tool file at \"tools.yaml\": \"cloud-sql-postgres1\" is not a valid type of data source"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -300,17 +300,18 @@
|
||||
"# You can also upload a tools file and use that to run toolbox.\n",
|
||||
"tools_file_name = \"tools.yml\"\n",
|
||||
"file_content = f\"\"\"\n",
|
||||
"sources:\n",
|
||||
" my-pg-source:\n",
|
||||
" kind: postgres\n",
|
||||
"kind: sources\n",
|
||||
"name: my-pg-source\n",
|
||||
"type: postgres\n",
|
||||
"host: 127.0.0.1\n",
|
||||
"port: 5432\n",
|
||||
"database: toolbox_db\n",
|
||||
"user: toolbox_user\n",
|
||||
"password: my-password\n",
|
||||
"tools:\n",
|
||||
" search-hotels-by-name:\n",
|
||||
" kind: postgres-sql\n",
|
||||
"---\n",
|
||||
"kind: tools\n",
|
||||
"name: search-hotels-by-name\n",
|
||||
"type: postgres-sql\n",
|
||||
"source: my-pg-source\n",
|
||||
"description: Search for hotels based on name.\n",
|
||||
"parameters:\n",
|
||||
@@ -318,8 +319,10 @@
|
||||
" type: string\n",
|
||||
" description: The name of the hotel.\n",
|
||||
"statement: SELECT * FROM hotels WHERE name ILIKE '%' || \\$1 || '%';\n",
|
||||
" search-hotels-by-location:\n",
|
||||
" kind: postgres-sql\n",
|
||||
"---\n",
|
||||
"kind: tools\n",
|
||||
"name: search-hotels-by-location\n",
|
||||
"type: postgres-sql\n",
|
||||
"source: my-pg-source\n",
|
||||
"description: Search for hotels based on location.\n",
|
||||
"parameters:\n",
|
||||
@@ -327,8 +330,10 @@
|
||||
" type: string\n",
|
||||
" description: The location of the hotel.\n",
|
||||
"statement: SELECT * FROM hotels WHERE location ILIKE '%' || \\$1 || '%';\n",
|
||||
" book-hotel:\n",
|
||||
" kind: postgres-sql\n",
|
||||
"---\n",
|
||||
"kind: tools\n",
|
||||
"name: book-hotel\n",
|
||||
"type: postgres-sql\n",
|
||||
"source: my-pg-source\n",
|
||||
"description: >-\n",
|
||||
" Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not.\n",
|
||||
@@ -337,8 +342,10 @@
|
||||
" type: string\n",
|
||||
" description: The ID of the hotel to book.\n",
|
||||
"statement: UPDATE hotels SET booked = B'1' WHERE id = \\$1;\n",
|
||||
" update-hotel:\n",
|
||||
" kind: postgres-sql\n",
|
||||
"---\n",
|
||||
"kind: tools\n",
|
||||
"name: update-hotel\n",
|
||||
"type: postgres-sql\n",
|
||||
"source: my-pg-source\n",
|
||||
"description: >-\n",
|
||||
" Update a hotel's check-in and check-out dates by its ID. Returns a message\n",
|
||||
@@ -356,8 +363,10 @@
|
||||
"statement: >-\n",
|
||||
" UPDATE hotels SET checkin_date = CAST(\\$2 as date), checkout_date = CAST(\\$3\n",
|
||||
" as date) WHERE id = \\$1;\n",
|
||||
" cancel-hotel:\n",
|
||||
" kind: postgres-sql\n",
|
||||
"---\n",
|
||||
"kind: tools\n",
|
||||
"name: cancel-hotel\n",
|
||||
"type: postgres-sql\n",
|
||||
"source: my-pg-source\n",
|
||||
"description: Cancel a hotel by its ID.\n",
|
||||
"parameters:\n",
|
||||
@@ -365,8 +374,10 @@
|
||||
" type: string\n",
|
||||
" description: The ID of the hotel to cancel.\n",
|
||||
"statement: UPDATE hotels SET booked = B'0' WHERE id = \\$1;\n",
|
||||
"toolsets:\n",
|
||||
" my-toolset:\n",
|
||||
"---\n",
|
||||
"kind: toolsets\n",
|
||||
"name: my-toolset\n",
|
||||
"tools:\n",
|
||||
" - search-hotels-by-name\n",
|
||||
" - search-hotels-by-location\n",
|
||||
" - book-hotel\n",
|
||||
@@ -509,8 +520,7 @@
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"! pip install toolbox-core --quiet\n",
|
||||
"! pip install google-adk --quiet"
|
||||
"! pip install google-adk[toolbox] --quiet"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -525,14 +535,18 @@
|
||||
"from google.adk.runners import Runner\n",
|
||||
"from google.adk.sessions import InMemorySessionService\n",
|
||||
"from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService\n",
|
||||
"from google.adk.tools.toolbox_toolset import ToolboxToolset\n",
|
||||
"from google.genai import types\n",
|
||||
"from toolbox_core import ToolboxSyncClient\n",
|
||||
"\n",
|
||||
"import os\n",
|
||||
"# TODO(developer): replace this with your Google API key\n",
|
||||
"os.environ['GOOGLE_API_KEY'] = \"<GOOGLE_API_KEY>\"\n",
|
||||
"\n",
|
||||
"toolbox_client = ToolboxSyncClient(\"http://127.0.0.1:5000\")\n",
|
||||
"# Configure toolset\n",
|
||||
"toolset = ToolboxToolset(\n",
|
||||
" server_url=\"http://127.0.0.1:5000\",\n",
|
||||
" toolset_name=\"my-toolset\"\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"prompt = \"\"\"\n",
|
||||
" You're a helpful hotel assistant. You handle hotel searching, booking and\n",
|
||||
@@ -549,7 +563,7 @@
|
||||
" name='hotel_agent',\n",
|
||||
" description='A helpful AI assistant.',\n",
|
||||
" instruction=prompt,\n",
|
||||
" tools=toolbox_client.load_toolset(\"my-toolset\"),\n",
|
||||
" tools=[toolset],\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"session_service = InMemorySessionService()\n",
|
||||
|
||||
@@ -36,9 +36,9 @@ Toolbox should have access to. Most tools will have at least one source to
|
||||
execute against.
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-pg-source:
|
||||
kind: postgres
|
||||
kind: sources
|
||||
name: my-pg-source
|
||||
type: postgres
|
||||
host: 127.0.0.1
|
||||
port: 5432
|
||||
database: toolbox_db
|
||||
@@ -52,13 +52,13 @@ For more details on configuring different types of sources, see the
|
||||
### Tools
|
||||
|
||||
The `tools` section of your `tools.yaml` defines the actions your agent can
|
||||
take: what kind of tool it is, which source(s) it affects, what parameters it
|
||||
take: what type of tool it is, which source(s) it affects, what parameters it
|
||||
uses, etc.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search-hotels-by-name:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: search-hotels-by-name
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Search for hotels based on name.
|
||||
parameters:
|
||||
@@ -78,11 +78,15 @@ that you want to be able to load together. This can be useful for defining
|
||||
different sets for different agents or different applications.
|
||||
|
||||
```yaml
|
||||
toolsets:
|
||||
my_first_toolset:
|
||||
kind: toolsets
|
||||
name: my_first_toolset
|
||||
tools:
|
||||
- my_first_tool
|
||||
- my_second_tool
|
||||
my_second_toolset:
|
||||
---
|
||||
kind: toolsets
|
||||
name: my_second_toolset
|
||||
tools:
|
||||
- my_second_tool
|
||||
- my_third_tool
|
||||
```
|
||||
@@ -103,8 +107,8 @@ The `prompts` section of your `tools.yaml` defines the templates containing
|
||||
structured messages and instructions for interacting with language models.
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
code_review:
|
||||
kind: prompts
|
||||
name: code_review
|
||||
description: "Asks the LLM to analyze code quality and suggest improvements."
|
||||
messages:
|
||||
- content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"
|
||||
|
||||
@@ -16,6 +16,12 @@ Databases” as its initial development predated MCP, but was renamed to align
|
||||
with recently added MCP compatibility.
|
||||
{{< /notice >}}
|
||||
|
||||
{{< notice note >}}
|
||||
This document has been updated to support the configuration file v2 format. To
|
||||
view documentation with configuration file v1 format, please navigate to the
|
||||
top-right menu and select versions v0.26.0 or older.
|
||||
{{< /notice >}}
|
||||
|
||||
## Why Toolbox?
|
||||
|
||||
Toolbox helps you build Gen AI tools that let your agents access data in your
|
||||
|
||||
@@ -52,7 +52,7 @@ runtime](https://research.google.com/colaboratory/local-runtimes.html).
|
||||
{{< tabpane persist=header >}}
|
||||
{{< tab header="ADK" lang="bash" >}}
|
||||
|
||||
pip install toolbox-core
|
||||
pip install google-adk[toolbox]
|
||||
{{< /tab >}}
|
||||
{{< tab header="Langchain" lang="bash" >}}
|
||||
|
||||
@@ -73,7 +73,7 @@ pip install toolbox-core
|
||||
{{< tabpane persist=header >}}
|
||||
{{< tab header="ADK" lang="bash" >}}
|
||||
|
||||
pip install google-adk
|
||||
# No other dependencies required for ADK
|
||||
{{< /tab >}}
|
||||
{{< tab header="Langchain" lang="bash" >}}
|
||||
|
||||
|
||||
@@ -125,17 +125,18 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
{{< /notice >}}
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-pg-source:
|
||||
kind: postgres
|
||||
kind: sources
|
||||
name: my-pg-source
|
||||
type: postgres
|
||||
host: 127.0.0.1
|
||||
port: 5432
|
||||
database: toolbox_db
|
||||
user: toolbox_user
|
||||
password: my-password
|
||||
tools:
|
||||
search-hotels-by-name:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: search-hotels-by-name
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Search for hotels based on name.
|
||||
parameters:
|
||||
@@ -143,8 +144,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The name of the hotel.
|
||||
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
|
||||
search-hotels-by-location:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: search-hotels-by-location
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Search for hotels based on location.
|
||||
parameters:
|
||||
@@ -152,8 +155,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The location of the hotel.
|
||||
statement: SELECT * FROM hotels WHERE location ILIKE '%' || $1 || '%';
|
||||
book-hotel:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: book-hotel
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: >-
|
||||
Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not.
|
||||
@@ -162,8 +167,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The ID of the hotel to book.
|
||||
statement: UPDATE hotels SET booked = B'1' WHERE id = $1;
|
||||
update-hotel:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: update-hotel
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: >-
|
||||
Update a hotel's check-in and check-out dates by its ID. Returns a message
|
||||
@@ -181,8 +188,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
statement: >-
|
||||
UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3
|
||||
as date) WHERE id = $1;
|
||||
cancel-hotel:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: cancel-hotel
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Cancel a hotel by its ID.
|
||||
parameters:
|
||||
@@ -190,8 +199,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The ID of the hotel to cancel.
|
||||
statement: UPDATE hotels SET booked = B'0' WHERE id = $1;
|
||||
toolsets:
|
||||
my-toolset:
|
||||
---
|
||||
kind: toolsets
|
||||
name: my-toolset
|
||||
tools:
|
||||
- search-hotels-by-name
|
||||
- search-hotels-by-location
|
||||
- book-hotel
|
||||
|
||||
@@ -157,17 +157,18 @@ Create a file named `tools.yaml`. This file defines the database connection, the
|
||||
SQL tools available, and the prompts the agents will use.
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-foodiefind-db:
|
||||
kind: postgres
|
||||
kind: sources
|
||||
name: my-foodiefind-db
|
||||
type: postgres
|
||||
host: 127.0.0.1
|
||||
port: 5432
|
||||
database: toolbox_db
|
||||
user: toolbox_user
|
||||
password: my-password
|
||||
tools:
|
||||
find_user_by_email:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: find_user_by_email
|
||||
type: postgres-sql
|
||||
source: my-foodiefind-db
|
||||
description: Find a user's ID by their email address.
|
||||
parameters:
|
||||
@@ -175,8 +176,10 @@ tools:
|
||||
type: string
|
||||
description: The email address of the user to find.
|
||||
statement: SELECT id FROM users WHERE email = $1;
|
||||
find_restaurant_by_name:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: find_restaurant_by_name
|
||||
type: postgres-sql
|
||||
source: my-foodiefind-db
|
||||
description: Find a restaurant's ID by its exact name.
|
||||
parameters:
|
||||
@@ -184,8 +187,10 @@ tools:
|
||||
type: string
|
||||
description: The name of the restaurant to find.
|
||||
statement: SELECT id FROM restaurants WHERE name = $1;
|
||||
find_review_by_user_and_restaurant:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: find_review_by_user_and_restaurant
|
||||
type: postgres-sql
|
||||
source: my-foodiefind-db
|
||||
description: Find the full record for a specific review using the user's ID and the restaurant's ID.
|
||||
parameters:
|
||||
@@ -196,8 +201,9 @@ tools:
|
||||
type: integer
|
||||
description: The numerical ID of the restaurant.
|
||||
statement: SELECT * FROM reviews WHERE user_id = $1 AND restaurant_id = $2;
|
||||
prompts:
|
||||
investigate_missing_review:
|
||||
---
|
||||
kind: prompts
|
||||
name: investigate_missing_review
|
||||
description: "Investigates a user's missing review by finding the user, restaurant, and the review itself, then analyzing its status."
|
||||
arguments:
|
||||
- name: "user_email"
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
from google.adk import Agent
|
||||
from google.adk.apps import App
|
||||
from toolbox_core import ToolboxSyncClient
|
||||
from google.adk.tools.toolbox_toolset import ToolboxToolset
|
||||
|
||||
# TODO(developer): update the TOOLBOX_URL to your toolbox endpoint
|
||||
client = ToolboxSyncClient("http://127.0.0.1:5000")
|
||||
toolset = ToolboxToolset(
|
||||
server_url="http://127.0.0.1:5000",
|
||||
)
|
||||
|
||||
root_agent = Agent(
|
||||
name='root_agent',
|
||||
model='gemini-2.5-flash',
|
||||
instruction="You are a helpful AI assistant designed to provide accurate and useful information.",
|
||||
tools=client.load_toolset(),
|
||||
tools=[toolset],
|
||||
)
|
||||
|
||||
app = App(root_agent=root_agent, name="my_agent")
|
||||
|
||||
@@ -1,3 +1,2 @@
|
||||
google-adk==1.21.0
|
||||
toolbox-core==0.5.4
|
||||
google-adk[toolbox]==1.23.0
|
||||
pytest==9.0.2
|
||||
@@ -33,17 +33,18 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
{{< /notice >}}
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-pg-source:
|
||||
kind: postgres
|
||||
kind: sources
|
||||
name: my-pg-source
|
||||
type: postgres
|
||||
host: 127.0.0.1
|
||||
port: 5432
|
||||
database: toolbox_db
|
||||
user: ${USER_NAME}
|
||||
password: ${PASSWORD}
|
||||
tools:
|
||||
search-hotels-by-name:
|
||||
kind: postgres-sql
|
||||
user: toolbox_user
|
||||
password: my-password
|
||||
---
|
||||
kind: tools
|
||||
name: search-hotels-by-name
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Search for hotels based on name.
|
||||
parameters:
|
||||
@@ -51,8 +52,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The name of the hotel.
|
||||
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
|
||||
search-hotels-by-location:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: search-hotels-by-location
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Search for hotels based on location.
|
||||
parameters:
|
||||
@@ -60,8 +63,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The location of the hotel.
|
||||
statement: SELECT * FROM hotels WHERE location ILIKE '%' || $1 || '%';
|
||||
book-hotel:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: book-hotel
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: >-
|
||||
Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not.
|
||||
@@ -70,8 +75,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The ID of the hotel to book.
|
||||
statement: UPDATE hotels SET booked = B'1' WHERE id = $1;
|
||||
update-hotel:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: update-hotel
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: >-
|
||||
Update a hotel's check-in and check-out dates by its ID. Returns a message
|
||||
@@ -89,8 +96,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
statement: >-
|
||||
UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3
|
||||
as date) WHERE id = $1;
|
||||
cancel-hotel:
|
||||
kind: postgres-sql
|
||||
---
|
||||
kind: tools
|
||||
name: cancel-hotel
|
||||
type: postgres-sql
|
||||
source: my-pg-source
|
||||
description: Cancel a hotel by its ID.
|
||||
parameters:
|
||||
@@ -98,8 +107,10 @@ In this section, we will download Toolbox, configure our tools in a
|
||||
type: string
|
||||
description: The ID of the hotel to cancel.
|
||||
statement: UPDATE hotels SET booked = B'0' WHERE id = $1;
|
||||
toolsets:
|
||||
my-toolset:
|
||||
---
|
||||
kind: toolsets
|
||||
name: my-toolset
|
||||
tools:
|
||||
- search-hotels-by-name
|
||||
- search-hotels-by-location
|
||||
- book-hotel
|
||||
|
||||
@@ -46,10 +46,10 @@ with the necessary configuration for deployment to Vertex AI Agent Engine.
|
||||
process will generate deployment configuration files (like a `Makefile` and
|
||||
`Dockerfile`) in your project directory.
|
||||
|
||||
4. Add `toolbox-core` as a dependency to the new project:
|
||||
4. Add `google-adk[toolbox]` as a dependency to the new project:
|
||||
|
||||
```bash
|
||||
uv add toolbox-core
|
||||
uv add google-adk[toolbox]
|
||||
```
|
||||
|
||||
## Step 3: Configure Google Cloud Authentication
|
||||
@@ -95,22 +95,23 @@ authentication token.
|
||||
```python
|
||||
from google.adk import Agent
|
||||
from google.adk.apps import App
|
||||
from toolbox_core import ToolboxSyncClient, auth_methods
|
||||
from google.adk.tools.toolbox_toolset import ToolboxToolset
|
||||
from toolbox_adk import CredentialStrategy
|
||||
|
||||
# TODO(developer): Replace with your Toolbox Cloud Run Service URL
|
||||
TOOLBOX_URL = "https://your-toolbox-service-xyz.a.run.app"
|
||||
|
||||
# Initialize the client with the Cloud Run URL and Auth headers
|
||||
client = ToolboxSyncClient(
|
||||
TOOLBOX_URL,
|
||||
client_headers={"Authorization": auth_methods.get_google_id_token(TOOLBOX_URL)}
|
||||
# Initialize the toolset with Workload Identity (generates ID token for the URL)
|
||||
toolset = ToolboxToolset(
|
||||
server_url=TOOLBOX_URL,
|
||||
credentials=CredentialStrategy.workload_identity(target_audience=TOOLBOX_URL)
|
||||
)
|
||||
|
||||
root_agent = Agent(
|
||||
name='root_agent',
|
||||
model='gemini-2.5-flash',
|
||||
instruction="You are a helpful AI assistant designed to provide accurate and useful information.",
|
||||
tools=client.load_toolset(),
|
||||
tools=[toolset],
|
||||
)
|
||||
|
||||
app = App(root_agent=root_agent, name="my_agent")
|
||||
|
||||
@@ -28,16 +28,18 @@ The following configurations are placed at the top level of a `tools.yaml` file.
|
||||
{{< notice tip >}}
|
||||
If you are accessing Toolbox with multiple applications, each
|
||||
application should register their own Client ID even if they use the same
|
||||
"kind" of auth provider.
|
||||
"type" of auth provider.
|
||||
{{< /notice >}}
|
||||
|
||||
```yaml
|
||||
authServices:
|
||||
my_auth_app_1:
|
||||
kind: google
|
||||
kind: authServices
|
||||
name: my_auth_app_1
|
||||
type: google
|
||||
clientId: ${YOUR_CLIENT_ID_1}
|
||||
my_auth_app_2:
|
||||
kind: google
|
||||
---
|
||||
kind: authServices
|
||||
name: my_auth_app_2
|
||||
type: google
|
||||
clientId: ${YOUR_CLIENT_ID_2}
|
||||
```
|
||||
|
||||
|
||||
@@ -40,9 +40,9 @@ id-token][provided-claims] can be used for the parameter.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
authServices:
|
||||
my-google-auth:
|
||||
kind: google
|
||||
kind: authServices
|
||||
name: my-google-auth
|
||||
type: google
|
||||
clientId: ${YOUR_GOOGLE_CLIENT_ID}
|
||||
```
|
||||
|
||||
@@ -55,5 +55,5 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "google". |
|
||||
| type | string | true | Must be "google". |
|
||||
| clientId | string | true | Client ID of your application from registering your application. |
|
||||
|
||||
@@ -54,9 +54,9 @@ ${ENV_NAME} instead of hardcoding your API keys into the configuration file.
|
||||
Define an embedding model in the `embeddingModels` section:
|
||||
|
||||
```yaml
|
||||
embeddingModels:
|
||||
gemini-model: # Name of the embedding model
|
||||
kind: gemini
|
||||
kind: embeddingModels
|
||||
name: gemini-model # Name of the embedding model
|
||||
type: gemini
|
||||
model: gemini-embedding-001
|
||||
apiKey: ${GOOGLE_API_KEY}
|
||||
dimension: 768
|
||||
@@ -68,10 +68,10 @@ Use the defined embedding model, embed your query parameters using the
|
||||
`embeddedBy` field. Only string-typed parameters can be embedded:
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
# Vector ingestion tool
|
||||
insert_embedding:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: insert_embedding
|
||||
type: postgres-sql
|
||||
source: my-pg-instance
|
||||
statement: |
|
||||
INSERT INTO documents (content, embedding)
|
||||
@@ -86,10 +86,11 @@ tools:
|
||||
# It automatically copies the value from 'content' and embeds it.
|
||||
valueFromParam: content
|
||||
embeddedBy: gemini-model
|
||||
|
||||
---
|
||||
# Semantic search tool
|
||||
search_embedding:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: search_embedding
|
||||
type: postgres-sql
|
||||
source: my-pg-instance
|
||||
statement: |
|
||||
SELECT id, content, embedding <-> $1 AS distance
|
||||
|
||||
@@ -50,9 +50,9 @@ information.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
embeddingModels:
|
||||
gemini-model:
|
||||
kind: gemini
|
||||
kind: embeddingModels
|
||||
name: gemini-model
|
||||
type: gemini
|
||||
model: gemini-embedding-001
|
||||
apiKey: ${GOOGLE_API_KEY}
|
||||
dimension: 768
|
||||
@@ -67,7 +67,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|--------------------------------------------------------------|
|
||||
| kind | string | true | Must be `gemini`. |
|
||||
| type | string | true | Must be `gemini`. |
|
||||
| model | string | true | The Gemini model ID to use (e.g., `gemini-embedding-001`). |
|
||||
| apiKey | string | false | Your API Key from Google AI Studio. |
|
||||
| dimension | integer | false | The number of dimensions in the output vector (e.g., `768`). |
|
||||
|
||||
@@ -16,8 +16,8 @@ can be sent to a Large Language Model (LLM). The Toolbox server implements the
|
||||
specification, allowing clients to discover and retrieve these prompts.
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
code_review:
|
||||
kind: prompts
|
||||
name: code_review
|
||||
description: "Asks the LLM to analyze code quality and suggest improvements."
|
||||
messages:
|
||||
- content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"
|
||||
@@ -31,7 +31,7 @@ prompts:
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|--------------------------------|--------------|--------------------------------------------------------------------------|
|
||||
| description | string | No | A brief explanation of what the prompt does. |
|
||||
| kind | string | No | The kind of prompt. Defaults to `"custom"`. |
|
||||
| type | string | No | The type of prompt. Defaults to `"custom"`. |
|
||||
| messages | [][Message](#message-schema) | Yes | A list of one or more message objects that make up the prompt's content. |
|
||||
| arguments | [][Argument](#argument-schema) | No | A list of arguments that can be interpolated into the prompt's content. |
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ Here is an example of a simple prompt that takes a single argument, code, and
|
||||
asks an LLM to review it.
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
code_review:
|
||||
kind: prompts
|
||||
name: code_review
|
||||
description: "Asks the LLM to analyze code quality and suggest improvements."
|
||||
messages:
|
||||
- content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"
|
||||
@@ -33,8 +33,8 @@ You can define prompts with multiple messages to set up more complex
|
||||
conversational contexts, like a role-playing scenario.
|
||||
|
||||
```yaml
|
||||
prompts:
|
||||
roleplay_scenario:
|
||||
kind: prompts
|
||||
name: roleplay_scenario
|
||||
description: "Sets up a roleplaying scenario with initial messages."
|
||||
arguments:
|
||||
- name: "character"
|
||||
@@ -54,7 +54,7 @@ prompts:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|--------------------------------|--------------|--------------------------------------------------------------------------|
|
||||
| kind | string | No | The kind of prompt. Must be `"custom"`. |
|
||||
| type | string | No | The type of prompt. Must be `"custom"`. |
|
||||
| description | string | No | A brief explanation of what the prompt does. |
|
||||
| messages | [][Message](#message-schema) | Yes | A list of one or more message objects that make up the prompt's content. |
|
||||
| arguments | [][Argument](#argument-schema) | No | A list of arguments that can be interpolated into the prompt's content. |
|
||||
|
||||
@@ -17,9 +17,9 @@ instead of hardcoding your secrets into the configuration file.
|
||||
{{< /notice >}}
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cloud-sql-source:
|
||||
kind: cloud-sql-postgres
|
||||
kind: sources
|
||||
name: my-cloud-sql-source
|
||||
type: cloud-sql-postgres
|
||||
project: my-project-id
|
||||
region: us-central1
|
||||
instance: my-instance-name
|
||||
|
||||
@@ -25,12 +25,13 @@ Authentication can be handled in two ways:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-alloydb-admin:
|
||||
kind: alloy-admin
|
||||
|
||||
my-oauth-alloydb-admin:
|
||||
kind: alloydb-admin
|
||||
kind: sources
|
||||
name: my-alloydb-admin
|
||||
type: alloydb-admin
|
||||
---
|
||||
kind: sources
|
||||
name: my-oauth-alloydb-admin
|
||||
type: alloydb-admin
|
||||
useClientOAuth: true
|
||||
```
|
||||
|
||||
@@ -38,6 +39,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| -------------- | :------: | :----------: | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "alloydb-admin". |
|
||||
| type | string | true | Must be "alloydb-admin". |
|
||||
| defaultProject | string | false | The Google Cloud project ID to use for AlloyDB infrastructure tools. |
|
||||
| useClientOAuth | boolean | false | If true, the source will use client-side OAuth for authorization. Otherwise, it will use Application Default Credentials. Defaults to `false`. |
|
||||
|
||||
@@ -176,9 +176,9 @@ To connect using IAM authentication:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-alloydb-pg-source:
|
||||
kind: alloydb-postgres
|
||||
kind: sources
|
||||
name: my-alloydb-pg-source
|
||||
type: alloydb-postgres
|
||||
project: my-project-id
|
||||
region: us-central1
|
||||
cluster: my-cluster
|
||||
@@ -198,7 +198,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|--------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "alloydb-postgres". |
|
||||
| type | string | true | Must be "alloydb-postgres". |
|
||||
| project | string | true | Id of the GCP project that the cluster was created in (e.g. "my-project-id"). |
|
||||
| region | string | true | Name of the GCP region that the cluster was created in (e.g. "us-central1"). |
|
||||
| cluster | string | true | Name of the AlloyDB cluster (e.g. "my-cluster"). |
|
||||
|
||||
@@ -121,9 +121,9 @@ identity used has been granted the correct IAM permissions.
|
||||
Initialize a BigQuery source that uses ADC:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-bigquery-source:
|
||||
kind: "bigquery"
|
||||
kind: sources
|
||||
name: my-bigquery-source
|
||||
type: "bigquery"
|
||||
project: "my-project-id"
|
||||
# location: "US" # Optional: Specifies the location for query jobs.
|
||||
# writeMode: "allowed" # One of: allowed, blocked, protected. Defaults to "allowed".
|
||||
@@ -140,9 +140,9 @@ sources:
|
||||
Initialize a BigQuery source that uses the client's access token:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-bigquery-client-auth-source:
|
||||
kind: "bigquery"
|
||||
kind: sources
|
||||
name: my-bigquery-client-auth-source
|
||||
type: "bigquery"
|
||||
project: "my-project-id"
|
||||
useClientOAuth: true
|
||||
# location: "US" # Optional: Specifies the location for query jobs.
|
||||
@@ -161,7 +161,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|---------------------------|:--------:|:------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery". |
|
||||
| type | string | true | Must be "bigquery". |
|
||||
| project | string | true | Id of the Google Cloud project to use for billing and as the default project for BigQuery resources. |
|
||||
| location | string | false | Specifies the location (e.g., 'us', 'asia-northeast1') in which to run the query job. This location must match the location of any tables referenced in the query. Defaults to the table's location or 'US' if the location cannot be determined. [Learn More](https://cloud.google.com/bigquery/docs/locations) |
|
||||
| writeMode | string | false | Controls the write behavior for tools. `allowed` (default): All queries are permitted. `blocked`: Only `SELECT` statements are allowed for the `bigquery-execute-sql` tool. `protected`: Enables session-based execution where all tools associated with this source instance share the same [BigQuery session](https://cloud.google.com/bigquery/docs/sessions-intro). This allows for stateful operations using temporary tables (e.g., `CREATE TEMP TABLE`). For `bigquery-execute-sql`, `SELECT` statements can be used on all tables, but write operations are restricted to the session's temporary dataset. For tools like `bigquery-sql`, `bigquery-forecast`, and `bigquery-analyze-contribution`, the `writeMode` restrictions do not apply, but they will operate within the shared session. **Note:** The `protected` mode cannot be used with `useClientOAuth: true`. It is also not recommended for multi-user server environments, as all users would share the same session. A session is terminated automatically after 24 hours of inactivity or after 7 days, whichever comes first. A new session is created on the next request, and any temporary data from the previous session will be lost. |
|
||||
|
||||
@@ -59,9 +59,9 @@ applying IAM permissions and roles to an identity.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-bigtable-source:
|
||||
kind: "bigtable"
|
||||
kind: sources
|
||||
name: my-bigtable-source
|
||||
type: "bigtable"
|
||||
project: "my-project-id"
|
||||
instance: "test-instance"
|
||||
```
|
||||
@@ -70,6 +70,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|-------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigtable". |
|
||||
| type | string | true | Must be "bigtable". |
|
||||
| project | string | true | Id of the GCP project that the cluster was created in (e.g. "my-project-id"). |
|
||||
| instance | string | true | Name of the Bigtable instance. |
|
||||
|
||||
@@ -23,9 +23,9 @@ distributed architectures, and a flexible approach to schema definition.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cassandra-source:
|
||||
kind: cassandra
|
||||
kind: sources
|
||||
name: my-cassandra-source
|
||||
type: cassandra
|
||||
hosts:
|
||||
- 127.0.0.1
|
||||
keyspace: my_keyspace
|
||||
@@ -47,7 +47,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|------------------------|:--------:|:------------:|----------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cassandra". |
|
||||
| type | string | true | Must be "cassandra". |
|
||||
| hosts | string[] | true | List of IP addresses to connect to (e.g., ["192.168.1.1:9042", "192.168.1.2:9042","192.168.1.3:9042"]). The default port is 9042 if not specified. |
|
||||
| keyspace | string | true | Name of the Cassandra keyspace to connect to (e.g., "my_keyspace"). |
|
||||
| protoVersion | integer | false | Protocol version for the Cassandra connection (e.g., 4). |
|
||||
|
||||
@@ -46,9 +46,9 @@ ClickHouse supports multiple protocols:
|
||||
### Secure Connection Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
secure-clickhouse-source:
|
||||
kind: clickhouse
|
||||
kind: sources
|
||||
name: secure-clickhouse-source
|
||||
type: clickhouse
|
||||
host: clickhouse.example.com
|
||||
port: "8443"
|
||||
database: analytics
|
||||
@@ -61,9 +61,9 @@ sources:
|
||||
### HTTP Protocol Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
http-clickhouse-source:
|
||||
kind: clickhouse
|
||||
kind: sources
|
||||
name: http-clickhouse-source
|
||||
type: clickhouse
|
||||
host: localhost
|
||||
port: "8123"
|
||||
database: logs
|
||||
@@ -82,7 +82,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|-------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "clickhouse". |
|
||||
| type | string | true | Must be "clickhouse". |
|
||||
| host | string | true | IP address or hostname to connect to (e.g. "127.0.0.1" or "clickhouse.example.com") |
|
||||
| port | string | true | Port to connect to (e.g. "8443" for HTTPS, "8123" for HTTP) |
|
||||
| database | string | true | Name of the ClickHouse database to connect to (e.g. "my_database"). |
|
||||
|
||||
@@ -20,13 +20,14 @@ Authentication can be handled in two ways:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-gda-source:
|
||||
kind: cloud-gemini-data-analytics
|
||||
kind: sources
|
||||
name: my-gda-source
|
||||
type: cloud-gemini-data-analytics
|
||||
projectId: my-project-id
|
||||
|
||||
my-oauth-gda-source:
|
||||
kind: cloud-gemini-data-analytics
|
||||
---
|
||||
kind: sources
|
||||
name: my-oauth-gda-source
|
||||
type: cloud-gemini-data-analytics
|
||||
projectId: my-project-id
|
||||
useClientOAuth: true
|
||||
```
|
||||
@@ -35,6 +36,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| -------------- | :------: | :----------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "cloud-gemini-data-analytics". |
|
||||
| type | string | true | Must be "cloud-gemini-data-analytics". |
|
||||
| projectId | string | true | The Google Cloud Project ID where the API is enabled. |
|
||||
| useClientOAuth | boolean | false | If true, the source uses the token provided by the caller (forwarded to the API). Otherwise, it uses server-side Application Default Credentials (ADC). Defaults to `false`. |
|
||||
|
||||
@@ -123,9 +123,9 @@ identity used has been granted the correct IAM permissions.
|
||||
Initialize a Cloud Healthcare API source that uses ADC:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-healthcare-source:
|
||||
kind: "cloud-healthcare"
|
||||
kind: sources
|
||||
name: my-healthcare-source
|
||||
type: "cloud-healthcare"
|
||||
project: "my-project-id"
|
||||
region: "us-central1"
|
||||
dataset: "my-healthcare-dataset-id"
|
||||
@@ -139,9 +139,9 @@ sources:
|
||||
Initialize a Cloud Healthcare API source that uses the client's access token:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-healthcare-client-auth-source:
|
||||
kind: "cloud-healthcare"
|
||||
kind: sources
|
||||
name: my-healthcare-client-auth-source
|
||||
type: "cloud-healthcare"
|
||||
project: "my-project-id"
|
||||
region: "us-central1"
|
||||
dataset: "my-healthcare-dataset-id"
|
||||
@@ -157,7 +157,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------------|:--------:|:------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare". |
|
||||
| type | string | true | Must be "cloud-healthcare". |
|
||||
| project | string | true | ID of the GCP project that the dataset lives in. |
|
||||
| region | string | true | Specifies the region (e.g., 'us', 'asia-northeast1') of the healthcare dataset. [Learn More](https://cloud.google.com/healthcare-api/docs/regions) |
|
||||
| dataset | string | true | ID of the healthcare dataset. |
|
||||
|
||||
@@ -25,12 +25,13 @@ Authentication can be handled in two ways:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cloud-monitoring:
|
||||
kind: cloud-monitoring
|
||||
|
||||
my-oauth-cloud-monitoring:
|
||||
kind: cloud-monitoring
|
||||
kind: sources
|
||||
name: my-cloud-monitoring
|
||||
type: cloud-monitoring
|
||||
---
|
||||
kind: sources
|
||||
name: my-oauth-cloud-monitoring
|
||||
type: cloud-monitoring
|
||||
useClientOAuth: true
|
||||
```
|
||||
|
||||
@@ -38,5 +39,5 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|----------------|:--------:|:------------:|------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-monitoring". |
|
||||
| type | string | true | Must be "cloud-monitoring". |
|
||||
| useClientOAuth | boolean | false | If true, the source will use client-side OAuth for authorization. Otherwise, it will use Application Default Credentials. Defaults to `false`. |
|
||||
|
||||
@@ -24,12 +24,13 @@ Authentication can be handled in two ways:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cloud-sql-admin:
|
||||
kind: cloud-sql-admin
|
||||
|
||||
my-oauth-cloud-sql-admin:
|
||||
kind: cloud-sql-admin
|
||||
kind: sources
|
||||
name: my-cloud-sql-admin
|
||||
type: cloud-sql-admin
|
||||
---
|
||||
kind: sources
|
||||
name: my-oauth-cloud-sql-admin
|
||||
type: cloud-sql-admin
|
||||
useClientOAuth: true
|
||||
```
|
||||
|
||||
@@ -37,6 +38,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| -------------- | :------: | :----------: | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "cloud-sql-admin". |
|
||||
| type | string | true | Must be "cloud-sql-admin". |
|
||||
| defaultProject | string | false | The Google Cloud project ID to use for Cloud SQL infrastructure tools. |
|
||||
| useClientOAuth | boolean | false | If true, the source will use client-side OAuth for authorization. Otherwise, it will use Application Default Credentials. Defaults to `false`. |
|
||||
|
||||
@@ -87,9 +87,9 @@ Currently, this source only uses standard authentication. You will need to
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cloud-sql-mssql-instance:
|
||||
kind: cloud-sql-mssql
|
||||
kind: sources
|
||||
name: my-cloud-sql-mssql-instance
|
||||
type: cloud-sql-mssql
|
||||
project: my-project
|
||||
region: my-region
|
||||
instance: my-instance
|
||||
@@ -108,7 +108,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-sql-mssql". |
|
||||
| type | string | true | Must be "cloud-sql-mssql". |
|
||||
| project | string | true | Id of the GCP project that the cluster was created in (e.g. "my-project-id"). |
|
||||
| region | string | true | Name of the GCP region that the cluster was created in (e.g. "us-central1"). |
|
||||
| instance | string | true | Name of the Cloud SQL instance within the cluster (e.g. "my-instance"). |
|
||||
|
||||
@@ -128,9 +128,9 @@ To connect using IAM authentication:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cloud-sql-mysql-source:
|
||||
kind: cloud-sql-mysql
|
||||
kind: sources
|
||||
name: my-cloud-sql-mysql-source
|
||||
type: cloud-sql-mysql
|
||||
project: my-project-id
|
||||
region: us-central1
|
||||
instance: my-instance
|
||||
@@ -149,7 +149,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-sql-mysql". |
|
||||
| type | string | true | Must be "cloud-sql-mysql". |
|
||||
| project | string | true | Id of the GCP project that the cluster was created in (e.g. "my-project-id"). |
|
||||
| region | string | true | Name of the GCP region that the cluster was created in (e.g. "us-central1"). |
|
||||
| instance | string | true | Name of the Cloud SQL instance within the cluster (e.g. "my-instance"). |
|
||||
|
||||
@@ -178,9 +178,9 @@ To connect using IAM authentication:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-cloud-sql-pg-source:
|
||||
kind: cloud-sql-postgres
|
||||
kind: sources
|
||||
name: my-cloud-sql-pg-source
|
||||
type: cloud-sql-postgres
|
||||
project: my-project-id
|
||||
region: us-central1
|
||||
instance: my-instance
|
||||
@@ -199,7 +199,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|--------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-sql-postgres". |
|
||||
| type | string | true | Must be "cloud-sql-postgres". |
|
||||
| project | string | true | Id of the GCP project that the cluster was created in (e.g. "my-project-id"). |
|
||||
| region | string | true | Name of the GCP region that the cluster was created in (e.g. "us-central1"). |
|
||||
| instance | string | true | Name of the Cloud SQL instance within the cluster (e.g. "my-instance"). |
|
||||
|
||||
@@ -19,9 +19,9 @@ allowing tools to execute SQL queries against it.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-couchbase-instance:
|
||||
kind: couchbase
|
||||
kind: sources
|
||||
name: my-couchbase-instance
|
||||
type: couchbase
|
||||
connectionString: couchbase://localhost
|
||||
bucket: travel-sample
|
||||
scope: inventory
|
||||
@@ -38,7 +38,7 @@ Connections](https://docs.couchbase.com/java-sdk/current/howtos/managing-connect
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|----------------------|:--------:|:------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "couchbase". |
|
||||
| type | string | true | Must be "couchbase". |
|
||||
| connectionString | string | true | Connection string for the Couchbase cluster. |
|
||||
| bucket | string | true | Name of the bucket to connect to. |
|
||||
| scope | string | true | Name of the scope within the bucket. |
|
||||
|
||||
@@ -23,9 +23,9 @@ applying artificial intelligence and machine learning.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-dataplex-source:
|
||||
kind: "dataplex"
|
||||
kind: sources
|
||||
name: my-dataplex-source
|
||||
type: "dataplex"
|
||||
project: "my-project-id"
|
||||
```
|
||||
|
||||
@@ -355,5 +355,5 @@ This abbreviated syntax works for the qualified predicates except for `label` in
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|----------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "dataplex". |
|
||||
| type | string | true | Must be "dataplex". |
|
||||
| project | string | true | ID of the GCP project used for quota and billing purposes (e.g. "my-project-id").|
|
||||
|
||||
@@ -51,9 +51,9 @@ and user credentials for that namespace.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-dgraph-source:
|
||||
kind: dgraph
|
||||
kind: sources
|
||||
name: my-dgraph-source
|
||||
type: dgraph
|
||||
dgraphUrl: https://xxxx.cloud.dgraph.io
|
||||
user: ${USER_NAME}
|
||||
password: ${PASSWORD}
|
||||
@@ -70,7 +70,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **Field** | **Type** | **Required** | **Description** |
|
||||
|-------------|:--------:|:------------:|--------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "dgraph". |
|
||||
| type | string | true | Must be "dgraph". |
|
||||
| dgraphUrl | string | true | Connection URI (e.g. "<https://xxx.cloud.dgraph.io>", "<https://localhost:8080>"). |
|
||||
| user | string | false | Name of the Dgraph user to connect as (e.g., "groot"). |
|
||||
| password | string | false | Password of the Dgraph user (e.g., "password"). |
|
||||
|
||||
@@ -59,9 +59,9 @@ applying permissions to an API key.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-elasticsearch-source:
|
||||
kind: "elasticsearch"
|
||||
kind: sources
|
||||
name: my-elasticsearch-source
|
||||
type: "elasticsearch"
|
||||
addresses:
|
||||
- "http://localhost:9200"
|
||||
apikey: "my-api-key"
|
||||
@@ -71,6 +71,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|--------------------------------------------|
|
||||
| kind | string | true | Must be "elasticsearch". |
|
||||
| type | string | true | Must be "elasticsearch". |
|
||||
| addresses | []string | true | List of Elasticsearch hosts to connect to. |
|
||||
| apikey | string | true | The API key to use for authentication. |
|
||||
|
||||
@@ -36,9 +36,9 @@ user][fb-users] to login to the database with.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my_firebird_db:
|
||||
kind: firebird
|
||||
kind: sources
|
||||
name: my_firebird_db
|
||||
type: firebird
|
||||
host: "localhost"
|
||||
port: 3050
|
||||
database: "/path/to/your/database.fdb"
|
||||
@@ -55,7 +55,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "firebird". |
|
||||
| type | string | true | Must be "firebird". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1") |
|
||||
| port | string | true | Port to connect to (e.g. "3050") |
|
||||
| database | string | true | Path to the Firebird database file (e.g. "/var/lib/firebird/data/test.fdb"). |
|
||||
|
||||
@@ -61,9 +61,9 @@ database named `(default)` will be used.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-firestore-source:
|
||||
kind: "firestore"
|
||||
kind: sources
|
||||
name: my-firestore-source
|
||||
type: "firestore"
|
||||
project: "my-project-id"
|
||||
# database: "my-database" # Optional, defaults to "(default)"
|
||||
```
|
||||
@@ -72,6 +72,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|----------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "firestore". |
|
||||
| type | string | true | Must be "firestore". |
|
||||
| project | string | true | Id of the GCP project that contains the Firestore database (e.g. "my-project-id"). |
|
||||
| database | string | false | Name of the Firestore database to connect to. Defaults to "(default)" if not specified. |
|
||||
|
||||
@@ -21,9 +21,9 @@ and other HTTP-accessible resources.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-http-source:
|
||||
kind: http
|
||||
kind: sources
|
||||
name: my-http-source
|
||||
type: http
|
||||
baseUrl: https://api.example.com/data
|
||||
timeout: 10s # default to 30s
|
||||
headers:
|
||||
@@ -44,7 +44,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|------------------------|:-----------------:|:------------:|------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "http". |
|
||||
| type | string | true | Must be "http". |
|
||||
| baseUrl | string | true | The base URL for the HTTP requests (e.g., `https://api.example.com`). |
|
||||
| timeout | string | false | The timeout for HTTP requests (e.g., "5s", "1m", refer to [ParseDuration][parse-duration-doc] for more examples). Defaults to 30s. |
|
||||
| headers | map[string]string | false | Default headers to include in the HTTP requests. |
|
||||
|
||||
@@ -56,9 +56,9 @@ To initialize the application default credential run `gcloud auth login
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-looker-source:
|
||||
kind: looker
|
||||
kind: sources
|
||||
name: my-looker-source
|
||||
type: looker
|
||||
base_url: http://looker.example.com
|
||||
client_id: ${LOOKER_CLIENT_ID}
|
||||
client_secret: ${LOOKER_CLIENT_SECRET}
|
||||
@@ -93,7 +93,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|----------------------|:--------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "looker". |
|
||||
| type | string | true | Must be "looker". |
|
||||
| base_url | string | true | The URL of your Looker server with no trailing /. |
|
||||
| client_id | string | false | The client id assigned by Looker. |
|
||||
| client_secret | string | false | The client secret assigned by Looker. |
|
||||
|
||||
@@ -45,9 +45,9 @@ MariaDB user][mariadb-users] to log in to the database.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my_mariadb_db:
|
||||
kind: mysql
|
||||
kind: sources
|
||||
name: my_mariadb_db
|
||||
type: mysql
|
||||
host: 127.0.0.1
|
||||
port: 3306
|
||||
database: my_db
|
||||
@@ -68,7 +68,7 @@ Use environment variables instead of committing credentials to source files.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ------------ | :------: | :----------: | ----------------------------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be `mysql`. |
|
||||
| type | string | true | Must be `mysql`. |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
|
||||
| port | string | true | Port to connect to (e.g. "3307"). |
|
||||
| database | string | true | Name of the MariaDB database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -125,9 +125,9 @@ can omit the password field.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-mindsdb-source:
|
||||
kind: mindsdb
|
||||
kind: sources
|
||||
name: my-mindsdb-source
|
||||
type: mindsdb
|
||||
host: 127.0.0.1
|
||||
port: 3306
|
||||
database: my_db
|
||||
@@ -141,9 +141,9 @@ sources:
|
||||
Here's a working configuration that has been tested:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-pg-source:
|
||||
kind: mindsdb
|
||||
kind: sources
|
||||
name: my-pg-source
|
||||
type: mindsdb
|
||||
host: 127.0.0.1
|
||||
port: 47335
|
||||
database: files
|
||||
@@ -176,7 +176,7 @@ With MindsDB integration, you can:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------|:--------:|:------------:|--------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "mindsdb". |
|
||||
| type | string | true | Must be "mindsdb". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
|
||||
| port | string | true | Port to connect to (e.g. "3306"). |
|
||||
| database | string | true | Name of the MindsDB database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -17,9 +17,9 @@ flexible, JSON-like documents, making it easy to develop and scale applications.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-mongodb:
|
||||
kind: mongodb
|
||||
kind: sources
|
||||
name: my-mongodb
|
||||
type: mongodb
|
||||
uri: "mongodb+srv://username:password@host.mongodb.net"
|
||||
|
||||
```
|
||||
@@ -28,5 +28,5 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|-------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "mongodb". |
|
||||
| type | string | true | Must be "mongodb". |
|
||||
| uri | string | true | connection string to connect to MongoDB |
|
||||
|
||||
@@ -39,9 +39,9 @@ SQL Server user][mssql-users] to login to the database with.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-mssql-source:
|
||||
kind: mssql
|
||||
kind: sources
|
||||
name: my-mssql-source
|
||||
type: mssql
|
||||
host: 127.0.0.1
|
||||
port: 1433
|
||||
database: my_db
|
||||
@@ -59,7 +59,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "mssql". |
|
||||
| type | string | true | Must be "mssql". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
|
||||
| port | string | true | Port to connect to (e.g. "1433"). |
|
||||
| database | string | true | Name of the SQL Server database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -49,9 +49,9 @@ MySQL user][mysql-users] to login to the database with.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-mysql-source:
|
||||
kind: mysql
|
||||
kind: sources
|
||||
name: my-mysql-source
|
||||
type: mysql
|
||||
host: 127.0.0.1
|
||||
port: 3306
|
||||
database: my_db
|
||||
@@ -72,7 +72,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ------------ | :------: | :----------: | ----------------------------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "mysql". |
|
||||
| type | string | true | Must be "mysql". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
|
||||
| port | string | true | Port to connect to (e.g. "3306"). |
|
||||
| database | string | true | Name of the MySQL database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -33,9 +33,9 @@ user if available.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-neo4j-source:
|
||||
kind: neo4j
|
||||
kind: sources
|
||||
name: my-neo4j-source
|
||||
type: neo4j
|
||||
uri: neo4j+s://xxxx.databases.neo4j.io:7687
|
||||
user: ${USER_NAME}
|
||||
password: ${PASSWORD}
|
||||
@@ -51,7 +51,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|----------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "neo4j". |
|
||||
| type | string | true | Must be "neo4j". |
|
||||
| uri | string | true | Connect URI ("bolt://localhost", "neo4j+s://xxx.databases.neo4j.io") |
|
||||
| user | string | true | Name of the Neo4j user to connect as (e.g. "neo4j"). |
|
||||
| password | string | true | Password of the Neo4j user (e.g. "my-password"). |
|
||||
|
||||
@@ -33,9 +33,9 @@ with SSL).
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-oceanbase-source:
|
||||
kind: oceanbase
|
||||
kind: sources
|
||||
name: my-oceanbase-source
|
||||
type: oceanbase
|
||||
host: 127.0.0.1
|
||||
port: 2881
|
||||
database: my_db
|
||||
@@ -53,7 +53,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ------------ | :------: | :----------: |-------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "oceanbase". |
|
||||
| type | string | true | Must be "oceanbase". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
|
||||
| port | string | true | Port to connect to (e.g. "2881"). |
|
||||
| database | string | true | Name of the OceanBase database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -90,9 +90,9 @@ using a TNS (Transparent Network Substrate) alias.
|
||||
This example demonstrates the four connection methods you could choose from:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-oracle-source:
|
||||
kind: oracle
|
||||
kind: sources
|
||||
name: my-oracle-source
|
||||
type: oracle
|
||||
|
||||
# --- Choose one connection method ---
|
||||
# 1. Host, Port, and Service Name
|
||||
@@ -122,9 +122,9 @@ Oracle Wallet allows you to store credentails used for database connection. Depe
|
||||
The `go-ora` driver uses the `walletLocation` field to connect to a database secured with an Oracle Wallet without standard username and password.
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
pure-go-wallet:
|
||||
kind: oracle
|
||||
kind: sources
|
||||
name: pure-go-wallet
|
||||
type: oracle
|
||||
connectionString: "127.0.0.1:1521/XEPDB1"
|
||||
user: ${USER_NAME}
|
||||
password: ${PASSWORD}
|
||||
@@ -138,9 +138,9 @@ sources:
|
||||
For the OCI-based driver, wallet authentication is triggered by setting tnsAdmin to the wallet directory and connecting via a tnsAlias.
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
oci-wallet:
|
||||
kind: oracle
|
||||
kind: sources
|
||||
name: oci-wallet
|
||||
type: oracle
|
||||
connectionString: "127.0.0.1:1521/XEPDB1"
|
||||
user: ${USER_NAME}
|
||||
password: ${PASSWORD}
|
||||
@@ -158,7 +158,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|------------------|:--------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "oracle". |
|
||||
| type | string | true | Must be "oracle". |
|
||||
| user | string | true | Name of the Oracle user to connect as (e.g. "my-oracle-user"). |
|
||||
| password | string | true | Password of the Oracle user (e.g. "my-password"). |
|
||||
| host | string | false | IP address or hostname to connect to (e.g. "127.0.0.1"). Required if not using `connectionString` or `tnsAlias`. |
|
||||
|
||||
@@ -107,9 +107,9 @@ PostgreSQL user][pg-users] to login to the database with.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-pg-source:
|
||||
kind: postgres
|
||||
kind: sources
|
||||
name: my-pg-source
|
||||
type: postgres
|
||||
host: 127.0.0.1
|
||||
port: 5432
|
||||
database: my_db
|
||||
@@ -126,7 +126,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------:|:------------:|------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "postgres". |
|
||||
| type | string | true | Must be "postgres". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1") |
|
||||
| port | string | true | Port to connect to (e.g. "5432") |
|
||||
| database | string | true | Name of the Postgres database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -34,9 +34,9 @@ connections must authenticate in order to connect.
|
||||
Specify your AUTH string in the password field:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-redis-instance:
|
||||
kind: redis
|
||||
kind: sources
|
||||
name: my-redis-instance
|
||||
type: redis
|
||||
address:
|
||||
- 127.0.0.1:6379
|
||||
username: ${MY_USER_NAME}
|
||||
@@ -59,9 +59,9 @@ string.
|
||||
Here is an example tools.yaml config with [AUTH][auth] enabled:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-redis-cluster-instance:
|
||||
kind: memorystore-redis
|
||||
kind: sources
|
||||
name: my-redis-cluster-instance
|
||||
type: memorystore-redis
|
||||
address:
|
||||
- 127.0.0.1:6379
|
||||
password: ${MY_AUTH_STRING}
|
||||
@@ -76,9 +76,9 @@ Here is an example tools.yaml config for Memorystore Redis Cluster instances
|
||||
using IAM authentication:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-redis-cluster-instance:
|
||||
kind: memorystore-redis
|
||||
kind: sources
|
||||
name: my-redis-cluster-instance
|
||||
type: memorystore-redis
|
||||
address:
|
||||
- 127.0.0.1:6379
|
||||
useGCPIAM: true
|
||||
@@ -91,7 +91,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|----------------|:--------:|:------------:|---------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "memorystore-redis". |
|
||||
| type | string | true | Must be "memorystore-redis". |
|
||||
| address | string | true | Primary endpoint for the Memorystore Redis instance to connect to. |
|
||||
| username | string | false | If you are using a non-default user, specify the user name here. If you are using Memorystore for Redis, leave this field blank |
|
||||
| password | string | false | If you have [Redis AUTH][auth] enabled, specify the AUTH string here |
|
||||
|
||||
@@ -49,9 +49,9 @@ set up your ADC.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-serverless-spark-source:
|
||||
kind: serverless-spark
|
||||
kind: sources
|
||||
name: my-serverless-spark-source
|
||||
type: serverless-spark
|
||||
project: my-project-id
|
||||
location: us-central1
|
||||
```
|
||||
@@ -60,6 +60,6 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| --------- | :------: | :----------: | ----------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "serverless-spark". |
|
||||
| type | string | true | Must be "serverless-spark". |
|
||||
| project | string | true | ID of the GCP project with Serverless for Apache Spark resources. |
|
||||
| location | string | true | Location containing Serverless for Apache Spark resources. |
|
||||
|
||||
@@ -39,9 +39,9 @@ database user][singlestore-user] to login to the database with.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-singlestore-source:
|
||||
kind: singlestore
|
||||
kind: sources
|
||||
name: my-singlestore-source
|
||||
type: singlestore
|
||||
host: 127.0.0.1
|
||||
port: 3306
|
||||
database: my_db
|
||||
@@ -59,7 +59,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------|:--------:|:------------:|-------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "singlestore". |
|
||||
| type | string | true | Must be "singlestore". |
|
||||
| host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
|
||||
| port | string | true | Port to connect to (e.g. "3306"). |
|
||||
| database | string | true | Name of the SingleStore database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -31,9 +31,9 @@ Snowflake user to login to the database with.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-sf-source:
|
||||
kind: snowflake
|
||||
kind: sources
|
||||
name: my-sf-source
|
||||
type: snowflake
|
||||
account: ${SNOWFLAKE_ACCOUNT}
|
||||
user: ${SNOWFLAKE_USER}
|
||||
password: ${SNOWFLAKE_PASSWORD}
|
||||
@@ -52,7 +52,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "snowflake". |
|
||||
| type | string | true | Must be "snowflake". |
|
||||
| account | string | true | Your Snowflake account identifier. |
|
||||
| user | string | true | Name of the Snowflake user to connect as (e.g. "my-sf-user"). |
|
||||
| password | string | true | Password of the Snowflake user (e.g. "my-password"). |
|
||||
|
||||
@@ -64,9 +64,9 @@ applying IAM permissions and roles to an identity.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-spanner-source:
|
||||
kind: "spanner"
|
||||
kind: sources
|
||||
name: my-spanner-source
|
||||
type: "spanner"
|
||||
project: "my-project-id"
|
||||
instance: "my-instance"
|
||||
database: "my_db"
|
||||
@@ -77,7 +77,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|---------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "spanner". |
|
||||
| type | string | true | Must be "spanner". |
|
||||
| project | string | true | Id of the GCP project that the cluster was created in (e.g. "my-project-id"). |
|
||||
| instance | string | true | Name of the Spanner instance. |
|
||||
| database | string | true | Name of the database on the Spanner instance |
|
||||
|
||||
@@ -48,18 +48,18 @@ You need a SQLite database file. This can be:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-sqlite-db:
|
||||
kind: "sqlite"
|
||||
kind: sources
|
||||
name: my-sqlite-db
|
||||
type: "sqlite"
|
||||
database: "/path/to/database.db"
|
||||
```
|
||||
|
||||
For an in-memory database:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-sqlite-memory-db:
|
||||
kind: "sqlite"
|
||||
kind: sources
|
||||
name: my-sqlite-memory-db
|
||||
type: "sqlite"
|
||||
database: ":memory:"
|
||||
```
|
||||
|
||||
@@ -69,7 +69,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|---------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "sqlite". |
|
||||
| type | string | true | Must be "sqlite". |
|
||||
| database | string | true | Path to SQLite database file, or ":memory:" for an in-memory database. |
|
||||
|
||||
### Connection Properties
|
||||
|
||||
@@ -46,9 +46,9 @@ console.
|
||||
- TiDB Cloud
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-tidb-cloud-source:
|
||||
kind: tidb
|
||||
kind: sources
|
||||
name: my-tidb-cloud-source
|
||||
type: tidb
|
||||
host: gateway01.us-west-2.prod.aws.tidbcloud.com
|
||||
port: 4000
|
||||
database: my_db
|
||||
@@ -60,9 +60,9 @@ console.
|
||||
- Self-Hosted TiDB
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-tidb-source:
|
||||
kind: tidb
|
||||
kind: sources
|
||||
name: my-tidb-source
|
||||
type: tidb
|
||||
host: 127.0.0.1
|
||||
port: 4000
|
||||
database: my_db
|
||||
@@ -80,7 +80,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-----------|:--------:|:------------:|--------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "tidb". |
|
||||
| type | string | true | Must be "tidb". |
|
||||
| host | string | true | IP address or hostname to connect to (e.g. "127.0.0.1" or "gateway01.*.tidbcloud.com"). |
|
||||
| port | string | true | Port to connect to (typically "4000" for TiDB). |
|
||||
| database | string | true | Name of the TiDB database to connect to (e.g. "my_db"). |
|
||||
|
||||
@@ -32,9 +32,9 @@ the catalogs and schemas you want to query.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-trino-source:
|
||||
kind: trino
|
||||
kind: sources
|
||||
name: my-trino-source
|
||||
type: trino
|
||||
host: trino.example.com
|
||||
port: "8080"
|
||||
user: ${TRINO_USER} # Optional for anonymous access
|
||||
@@ -52,7 +52,7 @@ instead of hardcoding your secrets into the configuration file.
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ---------------------- | :------: | :----------: | ---------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "trino". |
|
||||
| type | string | true | Must be "trino". |
|
||||
| host | string | true | Trino coordinator hostname (e.g. "trino.example.com") |
|
||||
| port | string | true | Trino coordinator port (e.g. "8080", "8443") |
|
||||
| user | string | false | Username for authentication (e.g. "analyst"). Optional for anonymous access. |
|
||||
|
||||
@@ -27,9 +27,9 @@ the [official Valkey website](https://valkey.io/topics/quickstart/).
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-valkey-instance:
|
||||
kind: valkey
|
||||
kind: sources
|
||||
name: my-valkey-instance
|
||||
type: valkey
|
||||
address:
|
||||
- 127.0.0.1:6379
|
||||
username: ${YOUR_USERNAME}
|
||||
@@ -51,9 +51,9 @@ authentication. Grant your account the required [IAM role][iam] and set
|
||||
`useGCPIAM` to `true`:
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-valkey-instance:
|
||||
kind: valkey
|
||||
kind: sources
|
||||
name: my-valkey-instance
|
||||
type: valkey
|
||||
address:
|
||||
- 127.0.0.1:6379
|
||||
useGCPIAM: true
|
||||
@@ -65,7 +65,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------|:--------:|:------------:|----------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "valkey". |
|
||||
| type | string | true | Must be "valkey". |
|
||||
| address | []string | true | Endpoints for the Valkey instance to connect to. |
|
||||
| username | string | false | If you are using a non-default user, specify the user name here. If you are using Memorystore for Valkey, leave this field blank |
|
||||
| password | string | false | Password for the Valkey instance |
|
||||
|
||||
@@ -17,9 +17,9 @@ compatibility.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
my-yb-source:
|
||||
kind: yugabytedb
|
||||
kind: sources
|
||||
name: my-yb-source
|
||||
type: yugabytedb
|
||||
host: 127.0.0.1
|
||||
port: 5433
|
||||
database: yugabyte
|
||||
@@ -33,7 +33,7 @@ sources:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|------------------------------|:--------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "yugabytedb". |
|
||||
| type | string | true | Must be "yugabytedb". |
|
||||
| host | string | true | IP address to connect to. |
|
||||
| port | integer | true | Port to connect to. The default port is 5433. |
|
||||
| database | string | true | Name of the YugabyteDB database to connect to. The default database name is yugabyte. |
|
||||
|
||||
@@ -12,9 +12,9 @@ statement. You can define Tools as a map in the `tools` section of your
|
||||
`tools.yaml` file. Typically, a tool will require a source to act on:
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search_flights_by_number:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: search_flights_by_number
|
||||
type: postgres-sql
|
||||
source: my-pg-instance
|
||||
statement: |
|
||||
SELECT * FROM flights
|
||||
@@ -171,9 +171,9 @@ the required [authServices](../authServices/) to specific claims within the
|
||||
user's ID token.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search_flights_by_user_id:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: search_flights_by_user_id
|
||||
type: postgres-sql
|
||||
source: my-pg-instance
|
||||
statement: |
|
||||
SELECT * FROM flights WHERE user_id = $1
|
||||
@@ -222,9 +222,9 @@ can use `minValue` and `maxValue` to define the allowable range.
|
||||
{{< /notice >}}
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
select_columns_from_table:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: select_columns_from_table
|
||||
type: postgres-sql
|
||||
source: my-pg-instance
|
||||
statement: |
|
||||
SELECT {{array .columnNames}} FROM {{.tableName}}
|
||||
@@ -267,9 +267,9 @@ specifying an `authRequired` field. Specify a list of
|
||||
[authServices](../authServices/) defined in the previous section.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search_all_flight:
|
||||
kind: postgres-sql
|
||||
kind: tools
|
||||
name: search_all_flight
|
||||
type: postgres-sql
|
||||
source: my-pg-instance
|
||||
statement: |
|
||||
SELECT * FROM flights
|
||||
|
||||
@@ -40,9 +40,9 @@ The tool takes the following input parameters:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
create_cluster:
|
||||
kind: alloydb-create-cluster
|
||||
kind: tools
|
||||
name: create_cluster
|
||||
type: alloydb-create-cluster
|
||||
source: alloydb-admin-source
|
||||
description: Use this tool to create a new AlloyDB cluster in a given project and location.
|
||||
```
|
||||
@@ -51,6 +51,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|------------------------------------------------------|
|
||||
| kind | string | true | Must be alloydb-create-cluster. |
|
||||
| type | string | true | Must be alloydb-create-cluster. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
|
||||
@@ -45,9 +45,9 @@ The tool takes the following input parameters:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
create_instance:
|
||||
kind: alloydb-create-instance
|
||||
kind: tools
|
||||
name: create_instance
|
||||
type: alloydb-create-instance
|
||||
source: alloydb-admin-source
|
||||
description: Use this tool to create a new AlloyDB instance within a specified cluster.
|
||||
```
|
||||
@@ -56,6 +56,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-create-instance. |
|
||||
| type | string | true | Must be alloydb-create-instance. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
@@ -39,9 +39,9 @@ The tool takes the following input parameters:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
create_user:
|
||||
kind: alloydb-create-user
|
||||
kind: tools
|
||||
name: create_user
|
||||
type: alloydb-create-user
|
||||
source: alloydb-admin-source
|
||||
description: Use this tool to create a new database user for an AlloyDB cluster.
|
||||
```
|
||||
@@ -50,6 +50,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-create-user. |
|
||||
| type | string | true | Must be alloydb-create-user. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
@@ -3,7 +3,7 @@ title: alloydb-get-cluster
|
||||
type: docs
|
||||
weight: 1
|
||||
description: "The \"alloydb-get-cluster\" tool retrieves details for a specific AlloyDB cluster.\n"
|
||||
aliases: [/resources/tools/alloydb-get-cluster]
|
||||
alias: [/resources/tools/alloydb-get-cluster]
|
||||
---
|
||||
|
||||
## About
|
||||
@@ -21,9 +21,9 @@ specified AlloyDB cluster. It is compatible with
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_specific_cluster:
|
||||
kind: alloydb-get-cluster
|
||||
kind: tools
|
||||
name: get_specific_cluster
|
||||
type: alloydb-get-cluster
|
||||
source: my-alloydb-admin-source
|
||||
description: Use this tool to retrieve details for a specific AlloyDB cluster.
|
||||
```
|
||||
@@ -32,6 +32,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-get-cluster. |
|
||||
| type | string | true | Must be alloydb-get-cluster. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
@@ -22,9 +22,9 @@ specified AlloyDB instance. It is compatible with
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_specific_instance:
|
||||
kind: alloydb-get-instance
|
||||
kind: tools
|
||||
name: get_specific_instance
|
||||
type: alloydb-get-instance
|
||||
source: my-alloydb-admin-source
|
||||
description: Use this tool to retrieve details for a specific AlloyDB instance.
|
||||
```
|
||||
@@ -33,6 +33,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|------------------------------------------------------|
|
||||
| kind | string | true | Must be alloydb-get-instance. |
|
||||
| type | string | true | Must be alloydb-get-instance. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
@@ -22,9 +22,9 @@ specified AlloyDB user. It is compatible with
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_specific_user:
|
||||
kind: alloydb-get-user
|
||||
kind: tools
|
||||
name: get_specific_user
|
||||
type: alloydb-get-user
|
||||
source: my-alloydb-admin-source
|
||||
description: Use this tool to retrieve details for a specific AlloyDB user.
|
||||
```
|
||||
@@ -33,6 +33,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-get-user. |
|
||||
| type | string | true | Must be alloydb-get-user. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
@@ -24,9 +24,9 @@ location. The tool takes the following input parameters:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_clusters:
|
||||
kind: alloydb-list-clusters
|
||||
kind: tools
|
||||
name: list_clusters
|
||||
type: alloydb-list-clusters
|
||||
source: alloydb-admin-source
|
||||
description: Use this tool to list all AlloyDB clusters in a given project and location.
|
||||
```
|
||||
@@ -35,6 +35,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-list-clusters. |
|
||||
| type | string | true | Must be alloydb-list-clusters. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
@@ -26,9 +26,9 @@ parameters:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_instances:
|
||||
kind: alloydb-list-instances
|
||||
kind: tools
|
||||
name: list_instances
|
||||
type: alloydb-list-instances
|
||||
source: alloydb-admin-source
|
||||
description: Use this tool to list all AlloyDB instances for a given project, cluster and location.
|
||||
```
|
||||
@@ -37,6 +37,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-list-instances. |
|
||||
| type | string | true | Must be alloydb-list-instances. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
|
||||
@@ -22,9 +22,9 @@ The tool takes the following input parameters:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_users:
|
||||
kind: alloydb-list-users
|
||||
kind: tools
|
||||
name: list_users
|
||||
type: alloydb-list-users
|
||||
source: alloydb-admin-source
|
||||
description: Use this tool to list all database users within an AlloyDB cluster
|
||||
```
|
||||
@@ -33,6 +33,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------- |
|
||||
| kind | string | true | Must be alloydb-list-users. |
|
||||
| type | string | true | Must be alloydb-list-users. |
|
||||
| source | string | true | The name of an `alloydb-admin` source. |
|
||||
| description | string | false | Description of the tool that is passed to the agent. |
|
||||
|
||||
@@ -25,9 +25,9 @@ and shouldn't be used for production agents.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
wait_for_operation:
|
||||
kind: alloydb-wait-for-operation
|
||||
kind: tools
|
||||
name: wait_for_operation
|
||||
type: alloydb-wait-for-operation
|
||||
source: my-alloydb-admin-source
|
||||
description: "This will poll on operations API until the operation is done. For checking operation status we need projectId, locationID and operationId. Once instance is created give follow up steps on how to use the variables to bring data plane MCP server up in local and remote setup."
|
||||
delay: 1s
|
||||
@@ -40,7 +40,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------- | :------: | :----------: | ---------------------------------------------------------------------------------------------------------------- |
|
||||
| kind | string | true | Must be "alloydb-wait-for-operation". |
|
||||
| type | string | true | Must be "alloydb-wait-for-operation". |
|
||||
| source | string | true | The name of a `alloydb-admin` source to use for authentication. |
|
||||
| description | string | false | A description of the tool. |
|
||||
| delay | duration | false | The initial delay between polling requests (e.g., `3s`). Defaults to 3 seconds. |
|
||||
|
||||
@@ -103,9 +103,9 @@ CREATE EXTENSION IF NOT EXISTS parameterized_views;
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
ask_questions:
|
||||
kind: alloydb-ai-nl
|
||||
kind: tools
|
||||
name: ask_questions
|
||||
type: alloydb-ai-nl
|
||||
source: my-alloydb-source
|
||||
description: "Ask questions to check information about flights"
|
||||
nlConfig: "cymbal_air_nl_config"
|
||||
@@ -125,7 +125,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------------|:---------------------------------------:|:------------:|--------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "alloydb-ai-nl". |
|
||||
| type | string | true | Must be "alloydb-ai-nl". |
|
||||
| source | string | true | Name of the AlloyDB source the natural language query should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| nlConfig | string | true | The name of the `nl_config` in AlloyDB |
|
||||
|
||||
@@ -64,9 +64,9 @@ the `bigquery` source:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
contribution_analyzer:
|
||||
kind: bigquery-analyze-contribution
|
||||
kind: tools
|
||||
name: contribution_analyzer
|
||||
type: bigquery-analyze-contribution
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to run contribution analysis on a dataset in BigQuery.
|
||||
```
|
||||
@@ -88,6 +88,6 @@ And use the following sample prompts to call this tool:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-analyze-contribution". |
|
||||
| type | string | true | Must be "bigquery-analyze-contribution". |
|
||||
| source | string | true | Name of the source the tool should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -53,9 +53,9 @@ dataset specified in the `table_references` parameter.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
ask_data_insights:
|
||||
kind: bigquery-conversational-analytics
|
||||
kind: tools
|
||||
name: ask_data_insights
|
||||
type: bigquery-conversational-analytics
|
||||
source: my-bigquery-source
|
||||
description: |
|
||||
Use this tool to perform data analysis, get insights, or answer complex
|
||||
@@ -66,6 +66,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-conversational-analytics". |
|
||||
| type | string | true | Must be "bigquery-conversational-analytics". |
|
||||
| source | string | true | Name of the source for chat. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -54,9 +54,9 @@ layer of security by controlling which datasets can be accessed:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
execute_sql_tool:
|
||||
kind: bigquery-execute-sql
|
||||
kind: tools
|
||||
name: execute_sql_tool
|
||||
type: bigquery-execute-sql
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to execute sql statement.
|
||||
```
|
||||
@@ -65,6 +65,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-execute-sql". |
|
||||
| type | string | true | Must be "bigquery-execute-sql". |
|
||||
| source | string | true | Name of the source the SQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -58,9 +58,9 @@ the `bigquery` source:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
forecast_tool:
|
||||
kind: bigquery-forecast
|
||||
kind: tools
|
||||
name: forecast_tool
|
||||
type: bigquery-forecast
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to forecast time series data in BigQuery.
|
||||
```
|
||||
@@ -78,6 +78,6 @@ You can use the following sample prompts to call this tool:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|---------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-forecast". |
|
||||
| type | string | true | Must be "bigquery-forecast". |
|
||||
| source | string | true | Name of the source the forecast tool should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -34,9 +34,9 @@ The tool's behavior regarding these parameters is influenced by the
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
bigquery_get_dataset_info:
|
||||
kind: bigquery-get-dataset-info
|
||||
kind: tools
|
||||
name: bigquery_get_dataset_info
|
||||
type: bigquery-get-dataset-info
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to get dataset metadata.
|
||||
```
|
||||
@@ -45,6 +45,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------------------------------:|:------------:|--------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-get-dataset-info". |
|
||||
| type | string | true | Must be "bigquery-get-dataset-info". |
|
||||
| source | string | true | Name of the source the SQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -35,9 +35,9 @@ The tool's behavior regarding these parameters is influenced by the
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
bigquery_get_table_info:
|
||||
kind: bigquery-get-table-info
|
||||
kind: tools
|
||||
name: bigquery_get_table_info
|
||||
type: bigquery-get-table-info
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to get table metadata.
|
||||
```
|
||||
@@ -46,6 +46,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------------------------------:|:------------:|--------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-get-table-info". |
|
||||
| type | string | true | Must be "bigquery-get-table-info". |
|
||||
| source | string | true | Name of the source the SQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -32,9 +32,9 @@ The tool's behavior regarding this parameter is influenced by the
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
bigquery_list_dataset_ids:
|
||||
kind: bigquery-list-dataset-ids
|
||||
kind: tools
|
||||
name: bigquery_list_dataset_ids
|
||||
type: bigquery-list-dataset-ids
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to get dataset metadata.
|
||||
```
|
||||
@@ -43,6 +43,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------------------------------:|:------------:|--------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-list-dataset-ids". |
|
||||
| type | string | true | Must be "bigquery-list-dataset-ids". |
|
||||
| source | string | true | Name of the source the SQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -34,9 +34,9 @@ will be used as the default value for the `dataset` parameter.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
bigquery_list_table_ids:
|
||||
kind: bigquery-list-table-ids
|
||||
kind: tools
|
||||
name: bigquery_list_table_ids
|
||||
type: bigquery-list-table-ids
|
||||
source: my-bigquery-source
|
||||
description: Use this tool to get table metadata.
|
||||
```
|
||||
@@ -45,6 +45,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------------------------------:|:------------:|--------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-list-table-ids". |
|
||||
| type | string | true | Must be "bigquery-list-table-ids". |
|
||||
| source | string | true | Name of the source the SQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -48,9 +48,9 @@ applying IAM permissions and roles to an identity.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search_catalog:
|
||||
kind: bigquery-search-catalog
|
||||
kind: tools
|
||||
name: search_catalog
|
||||
type: bigquery-search-catalog
|
||||
source: bigquery-source
|
||||
description: Use this tool to find tables, views, models, routines or connections.
|
||||
```
|
||||
@@ -59,6 +59,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------------------------------:|:------------:|--------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-search-catalog". |
|
||||
| type | string | true | Must be "bigquery-search-catalog". |
|
||||
| source | string | true | Name of the source the tool should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -46,10 +46,10 @@ same query.
|
||||
> identifiers, column names, table names, or other parts of the query.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
# Example: Querying a user table in BigQuery
|
||||
search_users_bq:
|
||||
kind: bigquery-sql
|
||||
kind: tools
|
||||
name: search_users_bq
|
||||
type: bigquery-sql
|
||||
source: my-bigquery-source
|
||||
statement: |
|
||||
SELECT
|
||||
@@ -87,9 +87,9 @@ tools:
|
||||
> [templateParameters](../#template-parameters).
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_table:
|
||||
kind: bigquery-sql
|
||||
kind: tools
|
||||
name: list_table
|
||||
type: bigquery-sql
|
||||
source: my-bigquery-source
|
||||
statement: |
|
||||
SELECT * FROM {{.tableName}};
|
||||
@@ -109,7 +109,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------------|:---------------------------------------------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigquery-sql". |
|
||||
| type | string | true | Must be "bigquery-sql". |
|
||||
| source | string | true | Name of the source the GoogleSQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| statement | string | true | The GoogleSQL statement to execute. |
|
||||
|
||||
@@ -40,9 +40,9 @@ inserted according to their name: e.g. `@name`.
|
||||
> names, or other parts of the query.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search_user_by_id_or_name:
|
||||
kind: bigtable-sql
|
||||
kind: tools
|
||||
name: search_user_by_id_or_name
|
||||
type: bigtable-sql
|
||||
source: my-bigtable-instance
|
||||
statement: |
|
||||
SELECT
|
||||
@@ -80,9 +80,9 @@ tools:
|
||||
> [templateParameters](..#template-parameters).
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_table:
|
||||
kind: bigtable-sql
|
||||
kind: tools
|
||||
name: list_table
|
||||
type: bigtable-sql
|
||||
source: my-bigtable-instance
|
||||
statement: |
|
||||
SELECT * FROM {{.tableName}};
|
||||
@@ -102,7 +102,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------------|:--------------------------------------------:|:------------:|----------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "bigtable-sql". |
|
||||
| type | string | true | Must be "bigtable-sql". |
|
||||
| source | string | true | Name of the source the SQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| statement | string | true | SQL statement to execute on. |
|
||||
|
||||
@@ -31,9 +31,9 @@ the form of placeholders `?`.
|
||||
> names, or other parts of the query.
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
search_users_by_email:
|
||||
kind: cassandra-cql
|
||||
kind: tools
|
||||
name: search_users_by_email
|
||||
type: cassandra-cql
|
||||
source: my-cassandra-cluster
|
||||
statement: |
|
||||
SELECT user_id, email, first_name, last_name, created_at
|
||||
@@ -63,9 +63,9 @@ tools:
|
||||
> [templateParameters](../#template-parameters).
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_keyspace_table:
|
||||
kind: cassandra-cql
|
||||
kind: tools
|
||||
name: list_keyspace_table
|
||||
type: cassandra-cql
|
||||
source: my-cassandra-cluster
|
||||
statement: |
|
||||
SELECT * FROM {{.keyspace}}.{{.tableName}};
|
||||
@@ -89,7 +89,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------------|:---------------------------------------------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| kind | string | true | Must be "cassandra-cql". |
|
||||
| type | string | true | Must be "cassandra-cql". |
|
||||
| source | string | true | Name of the source the CQL should execute on. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| statement | string | true | CQL statement to execute. |
|
||||
|
||||
@@ -25,9 +25,9 @@ capabilities for monitoring and debugging purposes.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
execute_sql_tool:
|
||||
kind: clickhouse-execute-sql
|
||||
kind: tools
|
||||
name: execute_sql_tool
|
||||
type: clickhouse-execute-sql
|
||||
source: my-clickhouse-instance
|
||||
description: Use this tool to execute SQL statements against ClickHouse.
|
||||
```
|
||||
@@ -42,6 +42,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|-------------------------------------------------------|
|
||||
| kind | string | true | Must be "clickhouse-execute-sql". |
|
||||
| type | string | true | Must be "clickhouse-execute-sql". |
|
||||
| source | string | true | Name of the ClickHouse source to execute SQL against. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -21,9 +21,9 @@ discovery and exploration tasks.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_clickhouse_databases:
|
||||
kind: clickhouse-list-databases
|
||||
kind: tools
|
||||
name: list_clickhouse_databases
|
||||
type: clickhouse-list-databases
|
||||
source: my-clickhouse-instance
|
||||
description: List all available databases in the ClickHouse instance
|
||||
```
|
||||
@@ -49,7 +49,7 @@ Example response:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------|:------------------:|:------------:|-------------------------------------------------------|
|
||||
| kind | string | true | Must be "clickhouse-list-databases". |
|
||||
| type | string | true | Must be "clickhouse-list-databases". |
|
||||
| source | string | true | Name of the ClickHouse source to list databases from. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| authRequired | array of string | false | Authentication services required to use this tool. |
|
||||
|
||||
@@ -21,9 +21,9 @@ user, making it useful for schema exploration and table discovery tasks.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
list_clickhouse_tables:
|
||||
kind: clickhouse-list-tables
|
||||
kind: tools
|
||||
name: list_clickhouse_tables
|
||||
type: clickhouse-list-tables
|
||||
source: my-clickhouse-instance
|
||||
description: List all tables in a specific ClickHouse database
|
||||
```
|
||||
@@ -56,7 +56,7 @@ Example response:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------|:------------------:|:------------:|---------------------------------------------------------|
|
||||
| kind | string | true | Must be "clickhouse-list-tables". |
|
||||
| type | string | true | Must be "clickhouse-list-tables". |
|
||||
| source | string | true | Name of the ClickHouse source to list tables from. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| authRequired | array of string | false | Authentication services required to use this tool. |
|
||||
|
||||
@@ -21,9 +21,9 @@ query execution capabilities.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
my_analytics_query:
|
||||
kind: clickhouse-sql
|
||||
kind: tools
|
||||
name: my_analytics_query
|
||||
type: clickhouse-sql
|
||||
source: my-clickhouse-instance
|
||||
description: Get user analytics for a specific date range
|
||||
statement: |
|
||||
@@ -48,9 +48,9 @@ tools:
|
||||
## Template Parameters Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
flexible_table_query:
|
||||
kind: clickhouse-sql
|
||||
kind: tools
|
||||
name: flexible_table_query
|
||||
type: clickhouse-sql
|
||||
source: my-clickhouse-instance
|
||||
description: Query any table with flexible columns
|
||||
statement: |
|
||||
@@ -74,7 +74,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|--------------------|:------------------:|:------------:|-------------------------------------------------------|
|
||||
| kind | string | true | Must be "clickhouse-sql". |
|
||||
| type | string | true | Must be "clickhouse-sql". |
|
||||
| source | string | true | Name of the ClickHouse source to execute SQL against. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
| statement | string | true | The SQL statement template to execute. |
|
||||
|
||||
@@ -18,9 +18,9 @@ The `cloud-gemini-data-analytics-query` tool allows you to send natural language
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
my-gda-query-tool:
|
||||
kind: cloud-gemini-data-analytics-query
|
||||
kind: tools
|
||||
name: my-gda-query-tool
|
||||
type: cloud-gemini-data-analytics-query
|
||||
source: my-gda-source
|
||||
description: "Use this tool to send natural language queries to the Gemini Data Analytics API and receive SQL, natural language answers, and explanations."
|
||||
location: ${your_database_location}
|
||||
@@ -87,7 +87,7 @@ How many accounts who have region in Prague are eligible for loans? A3 contains
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
| ----------------- | :------: | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| kind | string | true | Must be "cloud-gemini-data-analytics-query". |
|
||||
| type | string | true | Must be "cloud-gemini-data-analytics-query". |
|
||||
| source | string | true | The name of the `cloud-gemini-data-analytics` source to use. |
|
||||
| description | string | true | A description of the tool's purpose. |
|
||||
| location | string | true | The Google Cloud location of the target database resource (e.g., "us-central1"). This is used to construct the parent resource name in the API call. |
|
||||
|
||||
@@ -23,9 +23,9 @@ response bundle.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_fhir_store:
|
||||
kind: cloud-healthcare-fhir-fetch-page
|
||||
kind: tools
|
||||
name: get_fhir_store
|
||||
type: cloud-healthcare-fhir-fetch-page
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to fetch a page of FHIR resources from a FHIR Bundle's entry.link.url
|
||||
```
|
||||
@@ -34,7 +34,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-fhir-fetch-page". |
|
||||
| type | string | true | Must be "cloud-healthcare-fhir-fetch-page". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ types, or only resources that have been updated after a given time.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
fhir_patient_everything:
|
||||
kind: cloud-healthcare-fhir-patient-everything
|
||||
kind: tools
|
||||
name: fhir_patient_everything
|
||||
type: cloud-healthcare-fhir-patient-everything
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to retrieve all the information about a given patient.
|
||||
```
|
||||
@@ -33,7 +33,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|-----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-fhir-patient-everything". |
|
||||
| type | string | true | Must be "cloud-healthcare-fhir-patient-everything". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ given criteria.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
fhir_patient_search:
|
||||
kind: cloud-healthcare-fhir-patient-search
|
||||
kind: tools
|
||||
name: fhir_patient_search
|
||||
type: cloud-healthcare-fhir-patient-search
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to search for patients in the FHIR store.
|
||||
```
|
||||
@@ -32,7 +32,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-fhir-patient-search". |
|
||||
| type | string | true | Must be "cloud-healthcare-fhir-patient-search". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ configured in the source. It takes no extra parameters.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_dataset:
|
||||
kind: cloud-healthcare-get-dataset
|
||||
kind: tools
|
||||
name: get_dataset
|
||||
type: cloud-healthcare-get-dataset
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to get healthcare dataset metadata.
|
||||
```
|
||||
@@ -32,6 +32,6 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:------------------------------------------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-get-dataset". |
|
||||
| type | string | true | Must be "cloud-healthcare-get-dataset". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
@@ -20,9 +20,9 @@ store. It's compatible with the following sources:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_dicom_store_metrics:
|
||||
kind: cloud-healthcare-get-dicom-store-metrics
|
||||
kind: tools
|
||||
name: get_dicom_store_metrics
|
||||
type: cloud-healthcare-get-dicom-store-metrics
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to get metrics for a DICOM store.
|
||||
```
|
||||
@@ -31,7 +31,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|-----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-get-dicom-store-metrics". |
|
||||
| type | string | true | Must be "cloud-healthcare-get-dicom-store-metrics". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
|
||||
@@ -20,9 +20,9 @@ compatible with the following sources:
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_dicom_store:
|
||||
kind: cloud-healthcare-get-dicom-store
|
||||
kind: tools
|
||||
name: get_dicom_store
|
||||
type: cloud-healthcare-get-dicom-store
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to get information about a DICOM store.
|
||||
```
|
||||
@@ -31,7 +31,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-get-dicom-store". |
|
||||
| type | string | true | Must be "cloud-healthcare-get-dicom-store". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
|
||||
@@ -23,9 +23,9 @@ by its type and ID.
|
||||
## Example
|
||||
|
||||
```yaml
|
||||
tools:
|
||||
get_fhir_resource:
|
||||
kind: cloud-healthcare-get-fhir-resource
|
||||
kind: tools
|
||||
name: get_fhir_resource
|
||||
type: cloud-healthcare-get-fhir-resource
|
||||
source: my-healthcare-source
|
||||
description: Use this tool to retrieve a specific FHIR resource.
|
||||
```
|
||||
@@ -34,7 +34,7 @@ tools:
|
||||
|
||||
| **field** | **type** | **required** | **description** |
|
||||
|-------------|:--------:|:------------:|----------------------------------------------------|
|
||||
| kind | string | true | Must be "cloud-healthcare-get-fhir-resource". |
|
||||
| type | string | true | Must be "cloud-healthcare-get-fhir-resource". |
|
||||
| source | string | true | Name of the healthcare source. |
|
||||
| description | string | true | Description of the tool that is passed to the LLM. |
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user