Compare commits

...

2 Commits

Author SHA1 Message Date
Anubhav Dhawan
362ed8df41 docs: migrate to toolbox-adk and simplified ToolboxToolset (#2211)
Updates all quickstart guides and samples to use the new `toolbox-adk`
package instead of the legacy `toolbox-core`. Also updates
`ToolboxToolset` usage to rely on the simplified constructor (implicit
authentication) and ensures correct dependency installation.

> [!NOTE]
> The integration tests are failing because the `google-adk` package is
not released yet with the newer changes from `toolbox-adk`. This is
expected behavior until the [package update](cl/853799009) is released.
2026-01-28 11:26:13 +05:30
Yuan Teoh
293c1d6889 feat!: update configuration file v2 (#2369)
This PR introduces a significant update to the Toolbox configuration
file format, which is one of the primary **breaking changes** required
for the implementation of the Advanced Control Plane.

# Summary of Changes
The configuration schema has been updated to enforce resource isolation
and facilitate atomic, incremental updates.
* Resource Isolation: Resource definitions are now separated into
individual blocks, using a distinct structure for each resource type
(Source, Tool, Toolset, etc.). This improves readability, management,
and auditing of configuration files.
* Field Name Modification: Internal field names have been modified to
align with declarative methodologies. Specifically, the configuration
now separates kind (general resource type, e.g., Source) from type
(specific implementation, e.g., Postgres).

# User Impact
Existing tools.yaml configuration files are now in an outdated format.
Users must eventually update their files to the new YAML format.

# Mitigation & Compatibility
Backward compatibility is maintained during this transition to ensure no
immediate user action is required for existing files.
* Immediate Backward Compatibility: The source code includes a
pre-processing layer that automatically detects outdated configuration
files (v1 format) and converts them to the new v2 format under the hood.
* [COMING SOON] Migration Support: The new toolbox migrate subcommand
will be introduced to allow users to automatically convert their old
configuration files to the latest format.

# Example
Example for config file v2:
```
kind: sources
name: my-pg-instance
type: cloud-sql-postgres
project: my-project
region: my-region
instance: my-instance
database: my_db
user: my_user
password: my_pass
---
kind: authServices
name: my-google-auth
type: google
clientId: testing-id
---
kind: tools
name: example_tool
type: postgres-sql
source: my-pg-instance
description: some description
statement: SELECT * FROM SQL_STATEMENT;
parameters:
- name: country
  type: string
  description: some description
---
kind: tools
name: example_tool_2
type: postgres-sql
source: my-pg-instance
description: returning the number one
statement: SELECT 1;
---
kind: toolsets
name: example_toolset
tools:
- example_tool
```

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Averi Kitsch <akitsch@google.com>
2026-01-27 16:58:43 -08:00
779 changed files with 15031 additions and 15456 deletions

View File

@@ -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 `newdb.go`. Create a `Config` struct to include all the necessary parameters
for connecting to the database (e.g., host, port, username, password, database 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) 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 * **Implement the
[`SourceConfig`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/sources/sources.go#L57) [`SourceConfig`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/sources/sources.go#L57)
interface**. This interface requires two methods: 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"`). data source (e.g., `"newdb"`).
* `Initialize(ctx context.Context, tracer trace.Tracer) (Source, error)`: * `Initialize(ctx context.Context, tracer trace.Tracer) (Source, error)`:
Creates a new instance of your data source and establishes a connection to 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 * **Implement the
[`Source`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/sources/sources.go#L63) [`Source`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/sources/sources.go#L63)
interface**. This interface requires one method: 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 `init()`** to register the new Source.
* **Implement Unit Tests** in a file named `newdb_test.go`. * **Implement Unit Tests** in a file named `newdb_test.go`.
@@ -126,7 +126,7 @@ tools.
* **Implement the * **Implement the
[`ToolConfig`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/tools/tools.go#L61) [`ToolConfig`](https://github.com/googleapis/genai-toolbox/blob/fd300dc606d88bf9f7bba689e2cee4e3565537dd/internal/tools/tools.go#L61)
interface**. This interface requires one method: 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"`). (e.g., `"newdb-tool"`).
* `Initialize(sources map[string]Source) (Tool, error)`: Creates a new * `Initialize(sources map[string]Source) (Tool, error)`: Creates a new
instance of your tool and validates that it can connect to the specified 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). | | 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 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`). `tools/mssql-sql`).
Ideally, **each PR covers only one scope**, if this is Ideally, **each PR covers only one scope**, if this is

View File

@@ -47,12 +47,13 @@ Before you begin, ensure you have the following:
### Tool Naming Conventions ### Tool Naming Conventions
This section details the purpose and conventions for MCP Toolbox's tools naming 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: tools
kind: postgres-sql <- tool kind name: cancel_hotel <- tool name
source: my_pg_source type: postgres-sql <- tool type
source: my_pg_source
``` ```
#### Tool Name #### Tool Name
@@ -76,17 +77,17 @@ The following guidelines apply to tool names:
to a function) until they can be validated through extensive testing to ensure to a function) until they can be validated through extensive testing to ensure
they do not negatively impact agent's performances. 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`). `firestore_list_colelctions`).
* Should use product name in name (e.g. `firestore-list-collections` over * Should use product name in name (e.g. `firestore-list-collections` over
`list-collections`). `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 ## Testing

View File

@@ -940,14 +940,14 @@ Toolbox should have access to. Most tools will have at least one source to
execute against. execute against.
```yaml ```yaml
sources: kind: sources
my-pg-source: name: my-pg-source
kind: postgres type: postgres
host: 127.0.0.1 host: 127.0.0.1
port: 5432 port: 5432
database: toolbox_db database: toolbox_db
user: toolbox_user user: toolbox_user
password: my-password password: my-password
``` ```
For more details on configuring different types of sources, see the For more details on configuring different types of sources, see the
@@ -956,19 +956,19 @@ For more details on configuring different types of sources, see the
### Tools ### Tools
The `tools` section of a `tools.yaml` define the actions an agent can take: what 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 ```yaml
tools: kind: tools
search-hotels-by-name: name: search-hotels-by-name
kind: postgres-sql type: postgres-sql
source: my-pg-source source: my-pg-source
description: Search for hotels based on name. description: Search for hotels based on name.
parameters: parameters:
- name: name - name: name
type: string type: string
description: The name of the hotel. description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%'; statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
``` ```
For more details on configuring different types of tools, see the For more details on configuring different types of tools, see the

View File

@@ -15,6 +15,7 @@
package cmd package cmd
import ( import (
"bytes"
"context" "context"
_ "embed" _ "embed"
"fmt" "fmt"
@@ -396,7 +397,6 @@ func NewCommand(opts ...Option) *Command {
type ToolsFile struct { type ToolsFile struct {
Sources server.SourceConfigs `yaml:"sources"` Sources server.SourceConfigs `yaml:"sources"`
AuthSources server.AuthServiceConfigs `yaml:"authSources"` // Deprecated: Kept for compatibility.
AuthServices server.AuthServiceConfigs `yaml:"authServices"` AuthServices server.AuthServiceConfigs `yaml:"authServices"`
EmbeddingModels server.EmbeddingModelConfigs `yaml:"embeddingModels"` EmbeddingModels server.EmbeddingModelConfigs `yaml:"embeddingModels"`
Tools server.ToolConfigs `yaml:"tools"` Tools server.ToolConfigs `yaml:"tools"`
@@ -427,6 +427,129 @@ func parseEnv(input string) (string, error) {
return output, err 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. // parseToolsFile parses the provided yaml into appropriate configs.
func parseToolsFile(ctx context.Context, raw []byte) (ToolsFile, error) { func parseToolsFile(ctx context.Context, raw []byte) (ToolsFile, error) {
var toolsFile ToolsFile var toolsFile ToolsFile
@@ -437,8 +560,13 @@ func parseToolsFile(ctx context.Context, raw []byte) (ToolsFile, error) {
} }
raw = []byte(output) raw = []byte(output)
raw, err = convertToolsFile(raw)
if err != nil {
return toolsFile, fmt.Errorf("error converting tools file: %s", err)
}
// Parse contents // 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 { if err != nil {
return toolsFile, err 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 // Check for conflicts and merge authServices
for name, authService := range file.AuthServices { for name, authService := range file.AuthServices {
if _, exists := merged.AuthServices[name]; exists { if _, exists := merged.AuthServices[name]; exists {
@@ -965,20 +1081,6 @@ func run(cmd *Command) error {
cmd.cfg.ToolsetConfigs = finalToolsFile.Toolsets cmd.cfg.ToolsetConfigs = finalToolsFile.Toolsets
cmd.cfg.PromptConfigs = finalToolsFile.Prompts 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) instrumentation, err := telemetry.CreateTelemetryInstrumentation(versionString)
if err != nil { if err != nil {
errMsg := fmt.Errorf("unable to create telemetry instrumentation: %w", err) errMsg := fmt.Errorf("unable to create telemetry instrumentation: %w", err)

File diff suppressed because it is too large Load Diff

View File

@@ -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? ## Can Toolbox be used for non-database tools?
**Yes!** While Toolbox is primarily focused on databases, it also supports generic **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. and other web services, enabling workflows that extend beyond database interactions.
For configuration details, see the [HTTP Tools documentation](../resources/tools/http/http.md). For configuration details, see the [HTTP Tools documentation](../resources/tools/http/http.md).

View File

@@ -64,7 +64,7 @@ The structured logging outputs log as JSON:
"timestamp":"2024-11-04T16:45:11.987299-08:00", "timestamp":"2024-11-04T16:45:11.987299-08:00",
"severity":"ERROR", "severity":"ERROR",
"logging.googleapis.com/sourceLocation":{...}, "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"
} }
``` ```

View File

@@ -300,50 +300,57 @@
"# You can also upload a tools file and use that to run toolbox.\n", "# You can also upload a tools file and use that to run toolbox.\n",
"tools_file_name = \"tools.yml\"\n", "tools_file_name = \"tools.yml\"\n",
"file_content = f\"\"\"\n", "file_content = f\"\"\"\n",
"sources:\n", "kind: sources\n",
" my-pg-source:\n", "name: my-pg-source\n",
" kind: postgres\n", "type: postgres\n",
" host: 127.0.0.1\n", "host: 127.0.0.1\n",
" port: 5432\n", "port: 5432\n",
" database: toolbox_db\n", "database: toolbox_db\n",
" user: toolbox_user\n", "user: toolbox_user\n",
" password: my-password\n", "password: my-password\n",
"tools:\n", "---\n",
" search-hotels-by-name:\n", "kind: tools\n",
" kind: postgres-sql\n", "name: search-hotels-by-name\n",
" source: my-pg-source\n", "type: postgres-sql\n",
" description: Search for hotels based on name.\n", "source: my-pg-source\n",
" parameters:\n", "description: Search for hotels based on name.\n",
"parameters:\n",
" - name: name\n", " - name: name\n",
" type: string\n", " type: string\n",
" description: The name of the hotel.\n", " description: The name of the hotel.\n",
" statement: SELECT * FROM hotels WHERE name ILIKE '%' || \\$1 || '%';\n", "statement: SELECT * FROM hotels WHERE name ILIKE '%' || \\$1 || '%';\n",
" search-hotels-by-location:\n", "---\n",
" kind: postgres-sql\n", "kind: tools\n",
" source: my-pg-source\n", "name: search-hotels-by-location\n",
" description: Search for hotels based on location.\n", "type: postgres-sql\n",
" parameters:\n", "source: my-pg-source\n",
"description: Search for hotels based on location.\n",
"parameters:\n",
" - name: location\n", " - name: location\n",
" type: string\n", " type: string\n",
" description: The location of the hotel.\n", " description: The location of the hotel.\n",
" statement: SELECT * FROM hotels WHERE location ILIKE '%' || \\$1 || '%';\n", "statement: SELECT * FROM hotels WHERE location ILIKE '%' || \\$1 || '%';\n",
" book-hotel:\n", "---\n",
" kind: postgres-sql\n", "kind: tools\n",
" source: my-pg-source\n", "name: book-hotel\n",
" description: >-\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", " Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not.\n",
" parameters:\n", "parameters:\n",
" - name: hotel_id\n", " - name: hotel_id\n",
" type: string\n", " type: string\n",
" description: The ID of the hotel to book.\n", " description: The ID of the hotel to book.\n",
" statement: UPDATE hotels SET booked = B'1' WHERE id = \\$1;\n", "statement: UPDATE hotels SET booked = B'1' WHERE id = \\$1;\n",
" update-hotel:\n", "---\n",
" kind: postgres-sql\n", "kind: tools\n",
" source: my-pg-source\n", "name: update-hotel\n",
" description: >-\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", " Update a hotel's check-in and check-out dates by its ID. Returns a message\n",
" indicating whether the hotel was successfully updated or not.\n", " indicating whether the hotel was successfully updated or not.\n",
" parameters:\n", "parameters:\n",
" - name: hotel_id\n", " - name: hotel_id\n",
" type: string\n", " type: string\n",
" description: The ID of the hotel to update.\n", " description: The ID of the hotel to update.\n",
@@ -353,20 +360,24 @@
" - name: checkout_date\n", " - name: checkout_date\n",
" type: string\n", " type: string\n",
" description: The new check-out date of the hotel.\n", " description: The new check-out date of the hotel.\n",
" statement: >-\n", "statement: >-\n",
" UPDATE hotels SET checkin_date = CAST(\\$2 as date), checkout_date = CAST(\\$3\n", " UPDATE hotels SET checkin_date = CAST(\\$2 as date), checkout_date = CAST(\\$3\n",
" as date) WHERE id = \\$1;\n", " as date) WHERE id = \\$1;\n",
" cancel-hotel:\n", "---\n",
" kind: postgres-sql\n", "kind: tools\n",
" source: my-pg-source\n", "name: cancel-hotel\n",
" description: Cancel a hotel by its ID.\n", "type: postgres-sql\n",
" parameters:\n", "source: my-pg-source\n",
"description: Cancel a hotel by its ID.\n",
"parameters:\n",
" - name: hotel_id\n", " - name: hotel_id\n",
" type: string\n", " type: string\n",
" description: The ID of the hotel to cancel.\n", " description: The ID of the hotel to cancel.\n",
" statement: UPDATE hotels SET booked = B'0' WHERE id = \\$1;\n", "statement: UPDATE hotels SET booked = B'0' WHERE id = \\$1;\n",
"toolsets:\n", "---\n",
" my-toolset:\n", "kind: toolsets\n",
"name: my-toolset\n",
"tools:\n",
" - search-hotels-by-name\n", " - search-hotels-by-name\n",
" - search-hotels-by-location\n", " - search-hotels-by-location\n",
" - book-hotel\n", " - book-hotel\n",
@@ -509,8 +520,7 @@
}, },
"outputs": [], "outputs": [],
"source": [ "source": [
"! pip install toolbox-core --quiet\n", "! pip install google-adk[toolbox] --quiet"
"! pip install google-adk --quiet"
] ]
}, },
{ {
@@ -525,14 +535,18 @@
"from google.adk.runners import Runner\n", "from google.adk.runners import Runner\n",
"from google.adk.sessions import InMemorySessionService\n", "from google.adk.sessions import InMemorySessionService\n",
"from google.adk.artifacts.in_memory_artifact_service import InMemoryArtifactService\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 google.genai import types\n",
"from toolbox_core import ToolboxSyncClient\n",
"\n", "\n",
"import os\n", "import os\n",
"# TODO(developer): replace this with your Google API key\n", "# TODO(developer): replace this with your Google API key\n",
"os.environ['GOOGLE_API_KEY'] = \"<GOOGLE_API_KEY>\"\n", "os.environ['GOOGLE_API_KEY'] = \"<GOOGLE_API_KEY>\"\n",
"\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", "\n",
"prompt = \"\"\"\n", "prompt = \"\"\"\n",
" You're a helpful hotel assistant. You handle hotel searching, booking and\n", " You're a helpful hotel assistant. You handle hotel searching, booking and\n",
@@ -549,7 +563,7 @@
" name='hotel_agent',\n", " name='hotel_agent',\n",
" description='A helpful AI assistant.',\n", " description='A helpful AI assistant.',\n",
" instruction=prompt,\n", " instruction=prompt,\n",
" tools=toolbox_client.load_toolset(\"my-toolset\"),\n", " tools=[toolset],\n",
")\n", ")\n",
"\n", "\n",
"session_service = InMemorySessionService()\n", "session_service = InMemorySessionService()\n",

View File

@@ -36,14 +36,14 @@ Toolbox should have access to. Most tools will have at least one source to
execute against. execute against.
```yaml ```yaml
sources: kind: sources
my-pg-source: name: my-pg-source
kind: postgres type: postgres
host: 127.0.0.1 host: 127.0.0.1
port: 5432 port: 5432
database: toolbox_db database: toolbox_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
``` ```
For more details on configuring different types of sources, see the For more details on configuring different types of sources, see the
@@ -52,20 +52,20 @@ For more details on configuring different types of sources, see the
### Tools ### Tools
The `tools` section of your `tools.yaml` defines the actions your agent can 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. uses, etc.
```yaml ```yaml
tools: kind: tools
search-hotels-by-name: name: search-hotels-by-name
kind: postgres-sql type: postgres-sql
source: my-pg-source source: my-pg-source
description: Search for hotels based on name. description: Search for hotels based on name.
parameters: parameters:
- name: name - name: name
type: string type: string
description: The name of the hotel. description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%'; statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%';
``` ```
For more details on configuring different types of tools, see the For more details on configuring different types of tools, see the
@@ -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. different sets for different agents or different applications.
```yaml ```yaml
toolsets: kind: toolsets
my_first_toolset: name: my_first_toolset
tools:
- my_first_tool - my_first_tool
- my_second_tool - my_second_tool
my_second_toolset: ---
kind: toolsets
name: my_second_toolset
tools:
- my_second_tool - my_second_tool
- my_third_tool - my_third_tool
``` ```
@@ -103,12 +107,12 @@ The `prompts` section of your `tools.yaml` defines the templates containing
structured messages and instructions for interacting with language models. structured messages and instructions for interacting with language models.
```yaml ```yaml
prompts: kind: prompts
code_review: name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements." description: "Asks the LLM to analyze code quality and suggest improvements."
messages: messages:
- content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}" - content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"
arguments: arguments:
- name: "code" - name: "code"
description: "The code to review" description: "The code to review"
``` ```

View File

@@ -16,6 +16,12 @@ Databases” as its initial development predated MCP, but was renamed to align
with recently added MCP compatibility. with recently added MCP compatibility.
{{< /notice >}} {{< /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? ## Why Toolbox?
Toolbox helps you build Gen AI tools that let your agents access data in your Toolbox helps you build Gen AI tools that let your agents access data in your

View File

@@ -52,7 +52,7 @@ runtime](https://research.google.com/colaboratory/local-runtimes.html).
{{< tabpane persist=header >}} {{< tabpane persist=header >}}
{{< tab header="ADK" lang="bash" >}} {{< tab header="ADK" lang="bash" >}}
pip install toolbox-core pip install google-adk[toolbox]
{{< /tab >}} {{< /tab >}}
{{< tab header="Langchain" lang="bash" >}} {{< tab header="Langchain" lang="bash" >}}
@@ -73,7 +73,7 @@ pip install toolbox-core
{{< tabpane persist=header >}} {{< tabpane persist=header >}}
{{< tab header="ADK" lang="bash" >}} {{< tab header="ADK" lang="bash" >}}
pip install google-adk # No other dependencies required for ADK
{{< /tab >}} {{< /tab >}}
{{< tab header="Langchain" lang="bash" >}} {{< tab header="Langchain" lang="bash" >}}

View File

@@ -125,17 +125,18 @@ In this section, we will download Toolbox, configure our tools in a
{{< /notice >}} {{< /notice >}}
```yaml ```yaml
sources: kind: sources
my-pg-source: name: my-pg-source
kind: postgres type: postgres
host: 127.0.0.1 host: 127.0.0.1
port: 5432 port: 5432
database: toolbox_db database: toolbox_db
user: toolbox_user user: toolbox_user
password: my-password password: my-password
tools: ---
search-hotels-by-name: kind: tools
kind: postgres-sql name: search-hotels-by-name
type: postgres-sql
source: my-pg-source source: my-pg-source
description: Search for hotels based on name. description: Search for hotels based on name.
parameters: parameters:
@@ -143,8 +144,10 @@ In this section, we will download Toolbox, configure our tools in a
type: string type: string
description: The name of the hotel. description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%'; 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 source: my-pg-source
description: Search for hotels based on location. description: Search for hotels based on location.
parameters: parameters:
@@ -152,8 +155,10 @@ In this section, we will download Toolbox, configure our tools in a
type: string type: string
description: The location of the hotel. description: The location of the hotel.
statement: SELECT * FROM hotels WHERE location ILIKE '%' || $1 || '%'; 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 source: my-pg-source
description: >- description: >-
Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not. 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 type: string
description: The ID of the hotel to book. description: The ID of the hotel to book.
statement: UPDATE hotels SET booked = B'1' WHERE id = $1; 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 source: my-pg-source
description: >- description: >-
Update a hotel's check-in and check-out dates by its ID. Returns a message 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: >- statement: >-
UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3 UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3
as date) WHERE id = $1; as date) WHERE id = $1;
cancel-hotel: ---
kind: postgres-sql kind: tools
name: cancel-hotel
type: postgres-sql
source: my-pg-source source: my-pg-source
description: Cancel a hotel by its ID. description: Cancel a hotel by its ID.
parameters: parameters:
@@ -190,8 +199,10 @@ In this section, we will download Toolbox, configure our tools in a
type: string type: string
description: The ID of the hotel to cancel. description: The ID of the hotel to cancel.
statement: UPDATE hotels SET booked = B'0' WHERE id = $1; 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-name
- search-hotels-by-location - search-hotels-by-location
- book-hotel - book-hotel

View File

@@ -157,54 +157,60 @@ Create a file named `tools.yaml`. This file defines the database connection, the
SQL tools available, and the prompts the agents will use. SQL tools available, and the prompts the agents will use.
```yaml ```yaml
sources: kind: sources
my-foodiefind-db: name: my-foodiefind-db
kind: postgres type: postgres
host: 127.0.0.1 host: 127.0.0.1
port: 5432 port: 5432
database: toolbox_db database: toolbox_db
user: toolbox_user user: toolbox_user
password: my-password password: my-password
tools: ---
find_user_by_email: kind: tools
kind: postgres-sql name: find_user_by_email
source: my-foodiefind-db type: postgres-sql
description: Find a user's ID by their email address. source: my-foodiefind-db
parameters: description: Find a user's ID by their email address.
parameters:
- name: email - name: email
type: string type: string
description: The email address of the user to find. description: The email address of the user to find.
statement: SELECT id FROM users WHERE email = $1; statement: SELECT id FROM users WHERE email = $1;
find_restaurant_by_name: ---
kind: postgres-sql kind: tools
source: my-foodiefind-db name: find_restaurant_by_name
description: Find a restaurant's ID by its exact name. type: postgres-sql
parameters: source: my-foodiefind-db
description: Find a restaurant's ID by its exact name.
parameters:
- name: name - name: name
type: string type: string
description: The name of the restaurant to find. description: The name of the restaurant to find.
statement: SELECT id FROM restaurants WHERE name = $1; statement: SELECT id FROM restaurants WHERE name = $1;
find_review_by_user_and_restaurant: ---
kind: postgres-sql kind: tools
source: my-foodiefind-db name: find_review_by_user_and_restaurant
description: Find the full record for a specific review using the user's ID and the restaurant's ID. type: postgres-sql
parameters: source: my-foodiefind-db
description: Find the full record for a specific review using the user's ID and the restaurant's ID.
parameters:
- name: user_id - name: user_id
type: integer type: integer
description: The numerical ID of the user. description: The numerical ID of the user.
- name: restaurant_id - name: restaurant_id
type: integer type: integer
description: The numerical ID of the restaurant. description: The numerical ID of the restaurant.
statement: SELECT * FROM reviews WHERE user_id = $1 AND restaurant_id = $2; statement: SELECT * FROM reviews WHERE user_id = $1 AND restaurant_id = $2;
prompts: ---
investigate_missing_review: kind: prompts
description: "Investigates a user's missing review by finding the user, restaurant, and the review itself, then analyzing its status." name: investigate_missing_review
arguments: description: "Investigates a user's missing review by finding the user, restaurant, and the review itself, then analyzing its status."
arguments:
- name: "user_email" - name: "user_email"
description: "The email of the user who wrote the review." description: "The email of the user who wrote the review."
- name: "restaurant_name" - name: "restaurant_name"
description: "The name of the restaurant being reviewed." description: "The name of the restaurant being reviewed."
messages: messages:
- content: >- - content: >-
**Goal:** Find the review written by the user with email '{{.user_email}}' for the restaurant named '{{.restaurant_name}}' and understand its status. **Goal:** Find the review written by the user with email '{{.user_email}}' for the restaurant named '{{.restaurant_name}}' and understand its status.
**Workflow:** **Workflow:**

View File

@@ -1,15 +1,17 @@
from google.adk import Agent from google.adk import Agent
from google.adk.apps import App 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 # 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( root_agent = Agent(
name='root_agent', name='root_agent',
model='gemini-2.5-flash', model='gemini-2.5-flash',
instruction="You are a helpful AI assistant designed to provide accurate and useful information.", 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") app = App(root_agent=root_agent, name="my_agent")

View File

@@ -1,3 +1,2 @@
google-adk==1.21.0 google-adk[toolbox]==1.23.0
toolbox-core==0.5.4
pytest==9.0.2 pytest==9.0.2

View File

@@ -33,17 +33,18 @@ In this section, we will download Toolbox, configure our tools in a
{{< /notice >}} {{< /notice >}}
```yaml ```yaml
sources: kind: sources
my-pg-source: name: my-pg-source
kind: postgres type: postgres
host: 127.0.0.1 host: 127.0.0.1
port: 5432 port: 5432
database: toolbox_db database: toolbox_db
user: ${USER_NAME} user: toolbox_user
password: ${PASSWORD} password: my-password
tools: ---
search-hotels-by-name: kind: tools
kind: postgres-sql name: search-hotels-by-name
type: postgres-sql
source: my-pg-source source: my-pg-source
description: Search for hotels based on name. description: Search for hotels based on name.
parameters: parameters:
@@ -51,8 +52,10 @@ In this section, we will download Toolbox, configure our tools in a
type: string type: string
description: The name of the hotel. description: The name of the hotel.
statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%'; 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 source: my-pg-source
description: Search for hotels based on location. description: Search for hotels based on location.
parameters: parameters:
@@ -60,8 +63,10 @@ In this section, we will download Toolbox, configure our tools in a
type: string type: string
description: The location of the hotel. description: The location of the hotel.
statement: SELECT * FROM hotels WHERE location ILIKE '%' || $1 || '%'; 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 source: my-pg-source
description: >- description: >-
Book a hotel by its ID. If the hotel is successfully booked, returns a NULL, raises an error if not. 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 type: string
description: The ID of the hotel to book. description: The ID of the hotel to book.
statement: UPDATE hotels SET booked = B'1' WHERE id = $1; 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 source: my-pg-source
description: >- description: >-
Update a hotel's check-in and check-out dates by its ID. Returns a message 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: >- statement: >-
UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3 UPDATE hotels SET checkin_date = CAST($2 as date), checkout_date = CAST($3
as date) WHERE id = $1; as date) WHERE id = $1;
cancel-hotel: ---
kind: postgres-sql kind: tools
name: cancel-hotel
type: postgres-sql
source: my-pg-source source: my-pg-source
description: Cancel a hotel by its ID. description: Cancel a hotel by its ID.
parameters: parameters:
@@ -98,8 +107,10 @@ In this section, we will download Toolbox, configure our tools in a
type: string type: string
description: The ID of the hotel to cancel. description: The ID of the hotel to cancel.
statement: UPDATE hotels SET booked = B'0' WHERE id = $1; 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-name
- search-hotels-by-location - search-hotels-by-location
- book-hotel - book-hotel

View File

@@ -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 process will generate deployment configuration files (like a `Makefile` and
`Dockerfile`) in your project directory. `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 ```bash
uv add toolbox-core uv add google-adk[toolbox]
``` ```
## Step 3: Configure Google Cloud Authentication ## Step 3: Configure Google Cloud Authentication
@@ -95,22 +95,23 @@ authentication token.
```python ```python
from google.adk import Agent from google.adk import Agent
from google.adk.apps import App 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 # TODO(developer): Replace with your Toolbox Cloud Run Service URL
TOOLBOX_URL = "https://your-toolbox-service-xyz.a.run.app" TOOLBOX_URL = "https://your-toolbox-service-xyz.a.run.app"
# Initialize the client with the Cloud Run URL and Auth headers # Initialize the toolset with Workload Identity (generates ID token for the URL)
client = ToolboxSyncClient( toolset = ToolboxToolset(
TOOLBOX_URL, server_url=TOOLBOX_URL,
client_headers={"Authorization": auth_methods.get_google_id_token(TOOLBOX_URL)} credentials=CredentialStrategy.workload_identity(target_audience=TOOLBOX_URL)
) )
root_agent = Agent( root_agent = Agent(
name='root_agent', name='root_agent',
model='gemini-2.5-flash', model='gemini-2.5-flash',
instruction="You are a helpful AI assistant designed to provide accurate and useful information.", 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") app = App(root_agent=root_agent, name="my_agent")

View File

@@ -28,17 +28,19 @@ The following configurations are placed at the top level of a `tools.yaml` file.
{{< notice tip >}} {{< notice tip >}}
If you are accessing Toolbox with multiple applications, each If you are accessing Toolbox with multiple applications, each
application should register their own Client ID even if they use the same application should register their own Client ID even if they use the same
"kind" of auth provider. "type" of auth provider.
{{< /notice >}} {{< /notice >}}
```yaml ```yaml
authServices: kind: authServices
my_auth_app_1: name: my_auth_app_1
kind: google type: google
clientId: ${YOUR_CLIENT_ID_1} clientId: ${YOUR_CLIENT_ID_1}
my_auth_app_2: ---
kind: google kind: authServices
clientId: ${YOUR_CLIENT_ID_2} name: my_auth_app_2
type: google
clientId: ${YOUR_CLIENT_ID_2}
``` ```
{{< notice tip >}} {{< notice tip >}}

View File

@@ -40,10 +40,10 @@ id-token][provided-claims] can be used for the parameter.
## Example ## Example
```yaml ```yaml
authServices: kind: authServices
my-google-auth: name: my-google-auth
kind: google type: google
clientId: ${YOUR_GOOGLE_CLIENT_ID} clientId: ${YOUR_GOOGLE_CLIENT_ID}
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -55,5 +55,5 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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. | | clientId | string | true | Client ID of your application from registering your application. |

View File

@@ -54,12 +54,12 @@ ${ENV_NAME} instead of hardcoding your API keys into the configuration file.
Define an embedding model in the `embeddingModels` section: Define an embedding model in the `embeddingModels` section:
```yaml ```yaml
embeddingModels: kind: embeddingModels
gemini-model: # Name of the embedding model name: gemini-model # Name of the embedding model
kind: gemini type: gemini
model: gemini-embedding-001 model: gemini-embedding-001
apiKey: ${GOOGLE_API_KEY} apiKey: ${GOOGLE_API_KEY}
dimension: 768 dimension: 768
``` ```
### Step 2 - Embed Tool Parameters ### Step 2 - Embed Tool Parameters
@@ -68,15 +68,15 @@ Use the defined embedding model, embed your query parameters using the
`embeddedBy` field. Only string-typed parameters can be embedded: `embeddedBy` field. Only string-typed parameters can be embedded:
```yaml ```yaml
tools: # Vector ingestion tool
# Vector ingestion tool kind: tools
insert_embedding: name: insert_embedding
kind: postgres-sql type: postgres-sql
source: my-pg-instance source: my-pg-instance
statement: | statement: |
INSERT INTO documents (content, embedding) INSERT INTO documents (content, embedding)
VALUES ($1, $2); VALUES ($1, $2);
parameters: parameters:
- name: content - name: content
type: string type: string
description: The raw text content to be stored in the database. description: The raw text content to be stored in the database.
@@ -86,16 +86,17 @@ tools:
# It automatically copies the value from 'content' and embeds it. # It automatically copies the value from 'content' and embeds it.
valueFromParam: content valueFromParam: content
embeddedBy: gemini-model embeddedBy: gemini-model
---
# Semantic search tool # Semantic search tool
search_embedding: kind: tools
kind: postgres-sql name: search_embedding
source: my-pg-instance type: postgres-sql
statement: | source: my-pg-instance
statement: |
SELECT id, content, embedding <-> $1 AS distance SELECT id, content, embedding <-> $1 AS distance
FROM documents FROM documents
ORDER BY distance LIMIT 1 ORDER BY distance LIMIT 1
parameters: parameters:
- name: semantic_search_string - name: semantic_search_string
type: string type: string
description: The search query that will be converted to a vector. description: The search query that will be converted to a vector.

View File

@@ -50,12 +50,12 @@ information.
## Example ## Example
```yaml ```yaml
embeddingModels: kind: embeddingModels
gemini-model: name: gemini-model
kind: gemini type: gemini
model: gemini-embedding-001 model: gemini-embedding-001
apiKey: ${GOOGLE_API_KEY} apiKey: ${GOOGLE_API_KEY}
dimension: 768 dimension: 768
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -67,7 +67,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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`). | | model | string | true | The Gemini model ID to use (e.g., `gemini-embedding-001`). |
| apiKey | string | false | Your API Key from Google AI Studio. | | apiKey | string | false | Your API Key from Google AI Studio. |
| dimension | integer | false | The number of dimensions in the output vector (e.g., `768`). | | dimension | integer | false | The number of dimensions in the output vector (e.g., `768`). |

View File

@@ -16,12 +16,12 @@ can be sent to a Large Language Model (LLM). The Toolbox server implements the
specification, allowing clients to discover and retrieve these prompts. specification, allowing clients to discover and retrieve these prompts.
```yaml ```yaml
prompts: kind: prompts
code_review: name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements." description: "Asks the LLM to analyze code quality and suggest improvements."
messages: messages:
- content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}" - content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"
arguments: arguments:
- name: "code" - name: "code"
description: "The code to review" description: "The code to review"
``` ```
@@ -31,7 +31,7 @@ prompts:
| **field** | **type** | **required** | **description** | | **field** | **type** | **required** | **description** |
|-------------|--------------------------------|--------------|--------------------------------------------------------------------------| |-------------|--------------------------------|--------------|--------------------------------------------------------------------------|
| description | string | No | A brief explanation of what the prompt does. | | 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. | | 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. | | arguments | [][Argument](#argument-schema) | No | A list of arguments that can be interpolated into the prompt's content. |

View File

@@ -17,12 +17,12 @@ Here is an example of a simple prompt that takes a single argument, code, and
asks an LLM to review it. asks an LLM to review it.
```yaml ```yaml
prompts: kind: prompts
code_review: name: code_review
description: "Asks the LLM to analyze code quality and suggest improvements." description: "Asks the LLM to analyze code quality and suggest improvements."
messages: messages:
- content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}" - content: "Please review the following code for quality, correctness, and potential improvements: \n\n{{.code}}"
arguments: arguments:
- name: "code" - name: "code"
description: "The code to review" description: "The code to review"
``` ```
@@ -33,15 +33,15 @@ You can define prompts with multiple messages to set up more complex
conversational contexts, like a role-playing scenario. conversational contexts, like a role-playing scenario.
```yaml ```yaml
prompts: kind: prompts
roleplay_scenario: name: roleplay_scenario
description: "Sets up a roleplaying scenario with initial messages." description: "Sets up a roleplaying scenario with initial messages."
arguments: arguments:
- name: "character" - name: "character"
description: "The character the AI should embody." description: "The character the AI should embody."
- name: "situation" - name: "situation"
description: "The initial situation for the roleplay." description: "The initial situation for the roleplay."
messages: messages:
- role: "user" - role: "user"
content: "Let's roleplay. You are {{.character}}. The situation is: {{.situation}}" content: "Let's roleplay. You are {{.character}}. The situation is: {{.situation}}"
- role: "assistant" - role: "assistant"
@@ -54,7 +54,7 @@ prompts:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | 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. | | arguments | [][Argument](#argument-schema) | No | A list of arguments that can be interpolated into the prompt's content. |

View File

@@ -17,15 +17,15 @@ instead of hardcoding your secrets into the configuration file.
{{< /notice >}} {{< /notice >}}
```yaml ```yaml
sources: kind: sources
my-cloud-sql-source: name: my-cloud-sql-source
kind: cloud-sql-postgres type: cloud-sql-postgres
project: my-project-id project: my-project-id
region: us-central1 region: us-central1
instance: my-instance-name instance: my-instance-name
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
``` ```
In implementation, each source is a different connection pool or client that used In implementation, each source is a different connection pool or client that used

View File

@@ -25,19 +25,20 @@ Authentication can be handled in two ways:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-alloydb-admin: name: my-alloydb-admin
kind: alloy-admin type: alloydb-admin
---
my-oauth-alloydb-admin: kind: sources
kind: alloydb-admin name: my-oauth-alloydb-admin
useClientOAuth: true type: alloydb-admin
useClientOAuth: true
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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`. | | useClientOAuth | boolean | false | If true, the source will use client-side OAuth for authorization. Otherwise, it will use Application Default Credentials. Defaults to `false`. |

View File

@@ -176,17 +176,17 @@ To connect using IAM authentication:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-alloydb-pg-source: name: my-alloydb-pg-source
kind: alloydb-postgres type: alloydb-postgres
project: my-project-id project: my-project-id
region: us-central1 region: us-central1
cluster: my-cluster cluster: my-cluster
instance: my-instance instance: my-instance
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# ipType: "public" # ipType: "public"
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -198,7 +198,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | 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"). | | 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"). | | cluster | string | true | Name of the AlloyDB cluster (e.g. "my-cluster"). |

View File

@@ -121,47 +121,47 @@ identity used has been granted the correct IAM permissions.
Initialize a BigQuery source that uses ADC: Initialize a BigQuery source that uses ADC:
```yaml ```yaml
sources: kind: sources
my-bigquery-source: name: my-bigquery-source
kind: "bigquery" type: "bigquery"
project: "my-project-id" project: "my-project-id"
# location: "US" # Optional: Specifies the location for query jobs. # location: "US" # Optional: Specifies the location for query jobs.
# writeMode: "allowed" # One of: allowed, blocked, protected. Defaults to "allowed". # writeMode: "allowed" # One of: allowed, blocked, protected. Defaults to "allowed".
# allowedDatasets: # Optional: Restricts tool access to a specific list of datasets. # allowedDatasets: # Optional: Restricts tool access to a specific list of datasets.
# - "my_dataset_1" # - "my_dataset_1"
# - "other_project.my_dataset_2" # - "other_project.my_dataset_2"
# impersonateServiceAccount: "service-account@project-id.iam.gserviceaccount.com" # Optional: Service account to impersonate # impersonateServiceAccount: "service-account@project-id.iam.gserviceaccount.com" # Optional: Service account to impersonate
# scopes: # Optional: List of OAuth scopes to request. # scopes: # Optional: List of OAuth scopes to request.
# - "https://www.googleapis.com/auth/bigquery" # - "https://www.googleapis.com/auth/bigquery"
# - "https://www.googleapis.com/auth/drive.readonly" # - "https://www.googleapis.com/auth/drive.readonly"
# maxQueryResultRows: 50 # Optional: Limits the number of rows returned by queries. Defaults to 50. # maxQueryResultRows: 50 # Optional: Limits the number of rows returned by queries. Defaults to 50.
``` ```
Initialize a BigQuery source that uses the client's access token: Initialize a BigQuery source that uses the client's access token:
```yaml ```yaml
sources: kind: sources
my-bigquery-client-auth-source: name: my-bigquery-client-auth-source
kind: "bigquery" type: "bigquery"
project: "my-project-id" project: "my-project-id"
useClientOAuth: true useClientOAuth: true
# location: "US" # Optional: Specifies the location for query jobs. # location: "US" # Optional: Specifies the location for query jobs.
# writeMode: "allowed" # One of: allowed, blocked, protected. Defaults to "allowed". # writeMode: "allowed" # One of: allowed, blocked, protected. Defaults to "allowed".
# allowedDatasets: # Optional: Restricts tool access to a specific list of datasets. # allowedDatasets: # Optional: Restricts tool access to a specific list of datasets.
# - "my_dataset_1" # - "my_dataset_1"
# - "other_project.my_dataset_2" # - "other_project.my_dataset_2"
# impersonateServiceAccount: "service-account@project-id.iam.gserviceaccount.com" # Optional: Service account to impersonate # impersonateServiceAccount: "service-account@project-id.iam.gserviceaccount.com" # Optional: Service account to impersonate
# scopes: # Optional: List of OAuth scopes to request. # scopes: # Optional: List of OAuth scopes to request.
# - "https://www.googleapis.com/auth/bigquery" # - "https://www.googleapis.com/auth/bigquery"
# - "https://www.googleapis.com/auth/drive.readonly" # - "https://www.googleapis.com/auth/drive.readonly"
# maxQueryResultRows: 50 # Optional: Limits the number of rows returned by queries. Defaults to 50. # maxQueryResultRows: 50 # Optional: Limits the number of rows returned by queries. Defaults to 50.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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) | | 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. | | 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. |

View File

@@ -59,17 +59,17 @@ applying IAM permissions and roles to an identity.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-bigtable-source: name: my-bigtable-source
kind: "bigtable" type: "bigtable"
project: "my-project-id" project: "my-project-id"
instance: "test-instance" instance: "test-instance"
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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"). | | 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. | | instance | string | true | Name of the Bigtable instance. |

View File

@@ -23,19 +23,19 @@ distributed architectures, and a flexible approach to schema definition.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-cassandra-source: name: my-cassandra-source
kind: cassandra type: cassandra
hosts: hosts:
- 127.0.0.1 - 127.0.0.1
keyspace: my_keyspace keyspace: my_keyspace
protoVersion: 4 protoVersion: 4
username: ${USER_NAME} username: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
caPath: /path/to/ca.crt # Optional: path to CA certificate caPath: /path/to/ca.crt # Optional: path to CA certificate
certPath: /path/to/client.crt # Optional: path to client certificate certPath: /path/to/client.crt # Optional: path to client certificate
keyPath: /path/to/client.key # Optional: path to client key keyPath: /path/to/client.key # Optional: path to client key
enableHostVerification: true # Optional: enable host verification enableHostVerification: true # Optional: enable host verification
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -47,7 +47,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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. | | 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"). | | 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). | | protoVersion | integer | false | Protocol version for the Cassandra connection (e.g., 4). |

View File

@@ -46,31 +46,31 @@ ClickHouse supports multiple protocols:
### Secure Connection Example ### Secure Connection Example
```yaml ```yaml
sources: kind: sources
secure-clickhouse-source: name: secure-clickhouse-source
kind: clickhouse type: clickhouse
host: clickhouse.example.com host: clickhouse.example.com
port: "8443" port: "8443"
database: analytics database: analytics
user: ${CLICKHOUSE_USER} user: ${CLICKHOUSE_USER}
password: ${CLICKHOUSE_PASSWORD} password: ${CLICKHOUSE_PASSWORD}
protocol: https protocol: https
secure: true secure: true
``` ```
### HTTP Protocol Example ### HTTP Protocol Example
```yaml ```yaml
sources: kind: sources
http-clickhouse-source: name: http-clickhouse-source
kind: clickhouse type: clickhouse
host: localhost host: localhost
port: "8123" port: "8123"
database: logs database: logs
user: ${CLICKHOUSE_USER} user: ${CLICKHOUSE_USER}
password: ${CLICKHOUSE_PASSWORD} password: ${CLICKHOUSE_PASSWORD}
protocol: http protocol: http
secure: false secure: false
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -82,7 +82,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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") | | 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) | | 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"). | | database | string | true | Name of the ClickHouse database to connect to (e.g. "my_database"). |

View File

@@ -20,21 +20,22 @@ Authentication can be handled in two ways:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-gda-source: name: my-gda-source
kind: cloud-gemini-data-analytics type: cloud-gemini-data-analytics
projectId: my-project-id projectId: my-project-id
---
my-oauth-gda-source: kind: sources
kind: cloud-gemini-data-analytics name: my-oauth-gda-source
projectId: my-project-id type: cloud-gemini-data-analytics
useClientOAuth: true projectId: my-project-id
useClientOAuth: true
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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`. | | 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`. |

View File

@@ -123,41 +123,41 @@ identity used has been granted the correct IAM permissions.
Initialize a Cloud Healthcare API source that uses ADC: Initialize a Cloud Healthcare API source that uses ADC:
```yaml ```yaml
sources: kind: sources
my-healthcare-source: name: my-healthcare-source
kind: "cloud-healthcare" type: "cloud-healthcare"
project: "my-project-id" project: "my-project-id"
region: "us-central1" region: "us-central1"
dataset: "my-healthcare-dataset-id" dataset: "my-healthcare-dataset-id"
# allowedFhirStores: # Optional: Restricts tool access to a specific list of FHIR store IDs. # allowedFhirStores: # Optional: Restricts tool access to a specific list of FHIR store IDs.
# - "my_fhir_store_1" # - "my_fhir_store_1"
# allowedDicomStores: # Optional: Restricts tool access to a specific list of DICOM store IDs. # allowedDicomStores: # Optional: Restricts tool access to a specific list of DICOM store IDs.
# - "my_dicom_store_1" # - "my_dicom_store_1"
# - "my_dicom_store_2" # - "my_dicom_store_2"
``` ```
Initialize a Cloud Healthcare API source that uses the client's access token: Initialize a Cloud Healthcare API source that uses the client's access token:
```yaml ```yaml
sources: kind: sources
my-healthcare-client-auth-source: name: my-healthcare-client-auth-source
kind: "cloud-healthcare" type: "cloud-healthcare"
project: "my-project-id" project: "my-project-id"
region: "us-central1" region: "us-central1"
dataset: "my-healthcare-dataset-id" dataset: "my-healthcare-dataset-id"
useClientOAuth: true useClientOAuth: true
# allowedFhirStores: # Optional: Restricts tool access to a specific list of FHIR store IDs. # allowedFhirStores: # Optional: Restricts tool access to a specific list of FHIR store IDs.
# - "my_fhir_store_1" # - "my_fhir_store_1"
# allowedDicomStores: # Optional: Restricts tool access to a specific list of DICOM store IDs. # allowedDicomStores: # Optional: Restricts tool access to a specific list of DICOM store IDs.
# - "my_dicom_store_1" # - "my_dicom_store_1"
# - "my_dicom_store_2" # - "my_dicom_store_2"
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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) | | 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. | | dataset | string | true | ID of the healthcare dataset. |

View File

@@ -25,18 +25,19 @@ Authentication can be handled in two ways:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-cloud-monitoring: name: my-cloud-monitoring
kind: cloud-monitoring type: cloud-monitoring
---
my-oauth-cloud-monitoring: kind: sources
kind: cloud-monitoring name: my-oauth-cloud-monitoring
useClientOAuth: true type: cloud-monitoring
useClientOAuth: true
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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`. | | useClientOAuth | boolean | false | If true, the source will use client-side OAuth for authorization. Otherwise, it will use Application Default Credentials. Defaults to `false`. |

View File

@@ -24,19 +24,20 @@ Authentication can be handled in two ways:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-cloud-sql-admin: name: my-cloud-sql-admin
kind: cloud-sql-admin type: cloud-sql-admin
---
my-oauth-cloud-sql-admin: kind: sources
kind: cloud-sql-admin name: my-oauth-cloud-sql-admin
useClientOAuth: true type: cloud-sql-admin
useClientOAuth: true
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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`. | | useClientOAuth | boolean | false | If true, the source will use client-side OAuth for authorization. Otherwise, it will use Application Default Credentials. Defaults to `false`. |

View File

@@ -87,16 +87,16 @@ Currently, this source only uses standard authentication. You will need to
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-cloud-sql-mssql-instance: name: my-cloud-sql-mssql-instance
kind: cloud-sql-mssql type: cloud-sql-mssql
project: my-project project: my-project
region: my-region region: my-region
instance: my-instance instance: my-instance
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# ipType: private # ipType: private
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -108,7 +108,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | 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"). | | 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"). | | instance | string | true | Name of the Cloud SQL instance within the cluster (e.g. "my-instance"). |

View File

@@ -128,16 +128,16 @@ To connect using IAM authentication:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-cloud-sql-mysql-source: name: my-cloud-sql-mysql-source
kind: cloud-sql-mysql type: cloud-sql-mysql
project: my-project-id project: my-project-id
region: us-central1 region: us-central1
instance: my-instance instance: my-instance
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# ipType: "private" # ipType: "private"
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -149,7 +149,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | 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"). | | 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"). | | instance | string | true | Name of the Cloud SQL instance within the cluster (e.g. "my-instance"). |

View File

@@ -178,16 +178,16 @@ To connect using IAM authentication:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-cloud-sql-pg-source: name: my-cloud-sql-pg-source
kind: cloud-sql-postgres type: cloud-sql-postgres
project: my-project-id project: my-project-id
region: us-central1 region: us-central1
instance: my-instance instance: my-instance
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# ipType: "private" # ipType: "private"
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -199,7 +199,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | 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"). | | 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"). | | instance | string | true | Name of the Cloud SQL instance within the cluster (e.g. "my-instance"). |

View File

@@ -19,14 +19,14 @@ allowing tools to execute SQL queries against it.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-couchbase-instance: name: my-couchbase-instance
kind: couchbase type: couchbase
connectionString: couchbase://localhost connectionString: couchbase://localhost
bucket: travel-sample bucket: travel-sample
scope: inventory scope: inventory
username: Administrator username: Administrator
password: password password: password
``` ```
{{< notice note >}} {{< notice note >}}
@@ -38,7 +38,7 @@ Connections](https://docs.couchbase.com/java-sdk/current/howtos/managing-connect
| **field** | **type** | **required** | **description** | | **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. | | connectionString | string | true | Connection string for the Couchbase cluster. |
| bucket | string | true | Name of the bucket to connect to. | | bucket | string | true | Name of the bucket to connect to. |
| scope | string | true | Name of the scope within the bucket. | | scope | string | true | Name of the scope within the bucket. |

View File

@@ -23,10 +23,10 @@ applying artificial intelligence and machine learning.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-dataplex-source: name: my-dataplex-source
kind: "dataplex" type: "dataplex"
project: "my-project-id" project: "my-project-id"
``` ```
## Sample System Prompt ## Sample System Prompt
@@ -355,5 +355,5 @@ This abbreviated syntax works for the qualified predicates except for `label` in
| **field** | **type** | **required** | **description** | | **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").| | project | string | true | ID of the GCP project used for quota and billing purposes (e.g. "my-project-id").|

View File

@@ -51,14 +51,14 @@ and user credentials for that namespace.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-dgraph-source: name: my-dgraph-source
kind: dgraph type: dgraph
dgraphUrl: https://xxxx.cloud.dgraph.io dgraphUrl: https://xxxx.cloud.dgraph.io
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
apiKey: ${API_KEY} apiKey: ${API_KEY}
namespace : 0 namespace : 0
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -70,7 +70,7 @@ instead of hardcoding your secrets into the configuration file.
| **Field** | **Type** | **Required** | **Description** | | **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>"). | | 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"). | | 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"). | | password | string | false | Password of the Dgraph user (e.g., "password"). |

View File

@@ -59,18 +59,18 @@ applying permissions to an API key.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-elasticsearch-source: name: my-elasticsearch-source
kind: "elasticsearch" type: "elasticsearch"
addresses: addresses:
- "http://localhost:9200" - "http://localhost:9200"
apikey: "my-api-key" apikey: "my-api-key"
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | addresses | []string | true | List of Elasticsearch hosts to connect to. |
| apikey | string | true | The API key to use for authentication. | | apikey | string | true | The API key to use for authentication. |

View File

@@ -36,14 +36,14 @@ user][fb-users] to login to the database with.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my_firebird_db: name: my_firebird_db
kind: firebird type: firebird
host: "localhost" host: "localhost"
port: 3050 port: 3050
database: "/path/to/your/database.fdb" database: "/path/to/your/database.fdb"
user: ${FIREBIRD_USER} user: ${FIREBIRD_USER}
password: ${FIREBIRD_PASS} password: ${FIREBIRD_PASS}
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -55,7 +55,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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") | | host | string | true | IP address to connect to (e.g. "127.0.0.1") |
| port | string | true | Port to connect to (e.g. "3050") | | 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"). | | database | string | true | Path to the Firebird database file (e.g. "/var/lib/firebird/data/test.fdb"). |

View File

@@ -61,17 +61,17 @@ database named `(default)` will be used.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-firestore-source: name: my-firestore-source
kind: "firestore" type: "firestore"
project: "my-project-id" project: "my-project-id"
# database: "my-database" # Optional, defaults to "(default)" # database: "my-database" # Optional, defaults to "(default)"
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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"). | | 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. | | database | string | false | Name of the Firestore database to connect to. Defaults to "(default)" if not specified. |

View File

@@ -21,18 +21,18 @@ and other HTTP-accessible resources.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-http-source: name: my-http-source
kind: http type: http
baseUrl: https://api.example.com/data baseUrl: https://api.example.com/data
timeout: 10s # default to 30s timeout: 10s # default to 30s
headers: headers:
Authorization: Bearer ${API_KEY} Authorization: Bearer ${API_KEY}
Content-Type: application/json Content-Type: application/json
queryParams: queryParams:
param1: value1 param1: value1
param2: value2 param2: value2
# disableSslVerification: false # disableSslVerification: false
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -44,7 +44,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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`). | | 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. | | 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. | | headers | map[string]string | false | Default headers to include in the HTTP requests. |

View File

@@ -56,16 +56,16 @@ To initialize the application default credential run `gcloud auth login
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-looker-source: name: my-looker-source
kind: looker type: looker
base_url: http://looker.example.com base_url: http://looker.example.com
client_id: ${LOOKER_CLIENT_ID} client_id: ${LOOKER_CLIENT_ID}
client_secret: ${LOOKER_CLIENT_SECRET} client_secret: ${LOOKER_CLIENT_SECRET}
project: ${LOOKER_PROJECT} project: ${LOOKER_PROJECT}
location: ${LOOKER_LOCATION} location: ${LOOKER_LOCATION}
verify_ssl: true verify_ssl: true
timeout: 600s timeout: 600s
``` ```
The Looker base url will look like "https://looker.example.com", don't include The Looker base url will look like "https://looker.example.com", don't include
@@ -93,7 +93,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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 /. | | base_url | string | true | The URL of your Looker server with no trailing /. |
| client_id | string | false | The client id assigned by Looker. | | client_id | string | false | The client id assigned by Looker. |
| client_secret | string | false | The client secret assigned by Looker. | | client_secret | string | false | The client secret assigned by Looker. |

View File

@@ -45,18 +45,18 @@ MariaDB user][mariadb-users] to log in to the database.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my_mariadb_db: name: my_mariadb_db
kind: mysql type: mysql
host: 127.0.0.1 host: 127.0.0.1
port: 3306 port: 3306
database: my_db database: my_db
user: ${MARIADB_USER} user: ${MARIADB_USER}
password: ${MARIADB_PASS} password: ${MARIADB_PASS}
# Optional TLS and other driver parameters. For example, enable preferred TLS: # Optional TLS and other driver parameters. For example, enable preferred TLS:
# queryParams: # queryParams:
# tls: preferred # tls: preferred
queryTimeout: 30s # Optional: query timeout duration queryTimeout: 30s # Optional: query timeout duration
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -68,7 +68,7 @@ Use environment variables instead of committing credentials to source files.
| **field** | **type** | **required** | **description** | | **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"). | | host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
| port | string | true | Port to connect to (e.g. "3307"). | | 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"). | | database | string | true | Name of the MariaDB database to connect to (e.g. "my_db"). |

View File

@@ -125,15 +125,15 @@ can omit the password field.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-mindsdb-source: name: my-mindsdb-source
kind: mindsdb type: mindsdb
host: 127.0.0.1 host: 127.0.0.1
port: 3306 port: 3306
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} # Optional: omit if MindsDB is configured without authentication password: ${PASSWORD} # Optional: omit if MindsDB is configured without authentication
queryTimeout: 30s # Optional: query timeout duration queryTimeout: 30s # Optional: query timeout duration
``` ```
### Working Configuration Example ### Working Configuration Example
@@ -141,13 +141,13 @@ sources:
Here's a working configuration that has been tested: Here's a working configuration that has been tested:
```yaml ```yaml
sources: kind: sources
my-pg-source: name: my-pg-source
kind: mindsdb type: mindsdb
host: 127.0.0.1 host: 127.0.0.1
port: 47335 port: 47335
database: files database: files
user: mindsdb user: mindsdb
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -176,7 +176,7 @@ With MindsDB integration, you can:
| **field** | **type** | **required** | **description** | | **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"). | | host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
| port | string | true | Port to connect to (e.g. "3306"). | | 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"). | | database | string | true | Name of the MindsDB database to connect to (e.g. "my_db"). |

View File

@@ -17,10 +17,10 @@ flexible, JSON-like documents, making it easy to develop and scale applications.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-mongodb: name: my-mongodb
kind: mongodb type: mongodb
uri: "mongodb+srv://username:password@host.mongodb.net" uri: "mongodb+srv://username:password@host.mongodb.net"
``` ```
@@ -28,5 +28,5 @@ sources:
| **field** | **type** | **required** | **description** | | **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 | | uri | string | true | connection string to connect to MongoDB |

View File

@@ -39,15 +39,15 @@ SQL Server user][mssql-users] to login to the database with.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-mssql-source: name: my-mssql-source
kind: mssql type: mssql
host: 127.0.0.1 host: 127.0.0.1
port: 1433 port: 1433
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# encrypt: strict # encrypt: strict
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -59,7 +59,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
| port | string | true | Port to connect to (e.g. "1433"). | | 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"). | | database | string | true | Name of the SQL Server database to connect to (e.g. "my_db"). |

View File

@@ -49,18 +49,18 @@ MySQL user][mysql-users] to login to the database with.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-mysql-source: name: my-mysql-source
kind: mysql type: mysql
host: 127.0.0.1 host: 127.0.0.1
port: 3306 port: 3306
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# Optional TLS and other driver parameters. For example, enable preferred TLS: # Optional TLS and other driver parameters. For example, enable preferred TLS:
# queryParams: # queryParams:
# tls: preferred # tls: preferred
queryTimeout: 30s # Optional: query timeout duration queryTimeout: 30s # Optional: query timeout duration
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -72,7 +72,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
| port | string | true | Port to connect to (e.g. "3306"). | | 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"). | | database | string | true | Name of the MySQL database to connect to (e.g. "my_db"). |

View File

@@ -33,13 +33,13 @@ user if available.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-neo4j-source: name: my-neo4j-source
kind: neo4j type: neo4j
uri: neo4j+s://xxxx.databases.neo4j.io:7687 uri: neo4j+s://xxxx.databases.neo4j.io:7687
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
database: "neo4j" database: "neo4j"
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -51,7 +51,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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") | | 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"). | | 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"). | | password | string | true | Password of the Neo4j user (e.g. "my-password"). |

View File

@@ -33,15 +33,15 @@ with SSL).
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-oceanbase-source: name: my-oceanbase-source
kind: oceanbase type: oceanbase
host: 127.0.0.1 host: 127.0.0.1
port: 2881 port: 2881
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
queryTimeout: 30s # Optional: query timeout duration queryTimeout: 30s # Optional: query timeout duration
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -53,7 +53,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
| port | string | true | Port to connect to (e.g. "2881"). | | 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"). | | database | string | true | Name of the OceanBase database to connect to (e.g. "my_db"). |

View File

@@ -90,27 +90,27 @@ using a TNS (Transparent Network Substrate) alias.
This example demonstrates the four connection methods you could choose from: This example demonstrates the four connection methods you could choose from:
```yaml ```yaml
sources: kind: sources
my-oracle-source: name: my-oracle-source
kind: oracle type: oracle
# --- Choose one connection method --- # --- Choose one connection method ---
# 1. Host, Port, and Service Name # 1. Host, Port, and Service Name
host: 127.0.0.1 host: 127.0.0.1
port: 1521 port: 1521
serviceName: XEPDB1 serviceName: XEPDB1
# 2. Direct Connection String # 2. Direct Connection String
connectionString: "127.0.0.1:1521/XEPDB1" connectionString: "127.0.0.1:1521/XEPDB1"
# 3. TNS Alias (requires tnsnames.ora) # 3. TNS Alias (requires tnsnames.ora)
tnsAlias: "MY_DB_ALIAS" tnsAlias: "MY_DB_ALIAS"
tnsAdmin: "/opt/oracle/network/admin" # Optional: overrides TNS_ADMIN env var tnsAdmin: "/opt/oracle/network/admin" # Optional: overrides TNS_ADMIN env var
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# Optional: Set to true to use the OCI-based driver for advanced features (Requires Oracle Instant Client) # Optional: Set to true to use the OCI-based driver for advanced features (Requires Oracle Instant Client)
``` ```
### Using an Oracle Wallet ### Using an Oracle Wallet
@@ -122,15 +122,15 @@ 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. The `go-ora` driver uses the `walletLocation` field to connect to a database secured with an Oracle Wallet without standard username and password.
```yaml ```yaml
sources: kind: sources
pure-go-wallet: name: pure-go-wallet
kind: oracle type: oracle
connectionString: "127.0.0.1:1521/XEPDB1" connectionString: "127.0.0.1:1521/XEPDB1"
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
# The TNS Alias is often required to connect to a service registered in tnsnames.ora # The TNS Alias is often required to connect to a service registered in tnsnames.ora
tnsAlias: "SECURE_DB_ALIAS" tnsAlias: "SECURE_DB_ALIAS"
walletLocation: "/path/to/my/wallet/directory" walletLocation: "/path/to/my/wallet/directory"
``` ```
#### OCI-Based Driver (`useOCI: true`) - Oracle Wallet #### OCI-Based Driver (`useOCI: true`) - Oracle Wallet
@@ -138,15 +138,15 @@ sources:
For the OCI-based driver, wallet authentication is triggered by setting tnsAdmin to the wallet directory and connecting via a tnsAlias. For the OCI-based driver, wallet authentication is triggered by setting tnsAdmin to the wallet directory and connecting via a tnsAlias.
```yaml ```yaml
sources: kind: sources
oci-wallet: name: oci-wallet
kind: oracle type: oracle
connectionString: "127.0.0.1:1521/XEPDB1" connectionString: "127.0.0.1:1521/XEPDB1"
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
tnsAlias: "WALLET_DB_ALIAS" tnsAlias: "WALLET_DB_ALIAS"
tnsAdmin: "/opt/oracle/wallet" # Directory containing tnsnames.ora, sqlnet.ora, and wallet files tnsAdmin: "/opt/oracle/wallet" # Directory containing tnsnames.ora, sqlnet.ora, and wallet files
useOCI: true useOCI: true
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -158,7 +158,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | 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"). | | 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`. | | host | string | false | IP address or hostname to connect to (e.g. "127.0.0.1"). Required if not using `connectionString` or `tnsAlias`. |

View File

@@ -107,14 +107,14 @@ PostgreSQL user][pg-users] to login to the database with.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-pg-source: name: my-pg-source
kind: postgres type: postgres
host: 127.0.0.1 host: 127.0.0.1
port: 5432 port: 5432
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -126,7 +126,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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") | | host | string | true | IP address to connect to (e.g. "127.0.0.1") |
| port | string | true | Port to connect to (e.g. "5432") | | 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"). | | database | string | true | Name of the Postgres database to connect to (e.g. "my_db"). |

View File

@@ -34,16 +34,16 @@ connections must authenticate in order to connect.
Specify your AUTH string in the password field: Specify your AUTH string in the password field:
```yaml ```yaml
sources: kind: sources
my-redis-instance: name: my-redis-instance
kind: redis type: redis
address: address:
- 127.0.0.1:6379 - 127.0.0.1:6379
username: ${MY_USER_NAME} username: ${MY_USER_NAME}
password: ${MY_AUTH_STRING} # Omit this field if you don't have a password. password: ${MY_AUTH_STRING} # Omit this field if you don't have a password.
# database: 0 # database: 0
# clusterEnabled: false # clusterEnabled: false
# useGCPIAM: false # useGCPIAM: false
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -59,14 +59,14 @@ string.
Here is an example tools.yaml config with [AUTH][auth] enabled: Here is an example tools.yaml config with [AUTH][auth] enabled:
```yaml ```yaml
sources: kind: sources
my-redis-cluster-instance: name: my-redis-cluster-instance
kind: memorystore-redis type: memorystore-redis
address: address:
- 127.0.0.1:6379 - 127.0.0.1:6379
password: ${MY_AUTH_STRING} password: ${MY_AUTH_STRING}
# useGCPIAM: false # useGCPIAM: false
# clusterEnabled: false # clusterEnabled: false
``` ```
Memorystore Redis Cluster supports IAM authentication instead. Grant your Memorystore Redis Cluster supports IAM authentication instead. Grant your
@@ -76,13 +76,13 @@ Here is an example tools.yaml config for Memorystore Redis Cluster instances
using IAM authentication: using IAM authentication:
```yaml ```yaml
sources: kind: sources
my-redis-cluster-instance: name: my-redis-cluster-instance
kind: memorystore-redis type: memorystore-redis
address: address:
- 127.0.0.1:6379 - 127.0.0.1:6379
useGCPIAM: true useGCPIAM: true
clusterEnabled: true clusterEnabled: true
``` ```
[iam]: https://cloud.google.com/memorystore/docs/cluster/about-iam-auth [iam]: https://cloud.google.com/memorystore/docs/cluster/about-iam-auth
@@ -91,7 +91,7 @@ sources:
| **field** | **type** | **required** | **description** | | **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. | | 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 | | 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 | | password | string | false | If you have [Redis AUTH][auth] enabled, specify the AUTH string here |

View File

@@ -49,17 +49,17 @@ set up your ADC.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-serverless-spark-source: name: my-serverless-spark-source
kind: serverless-spark type: serverless-spark
project: my-project-id project: my-project-id
location: us-central1 location: us-central1
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | project | string | true | ID of the GCP project with Serverless for Apache Spark resources. |
| location | string | true | Location containing Serverless for Apache Spark resources. | | location | string | true | Location containing Serverless for Apache Spark resources. |

View File

@@ -39,15 +39,15 @@ database user][singlestore-user] to login to the database with.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-singlestore-source: name: my-singlestore-source
kind: singlestore type: singlestore
host: 127.0.0.1 host: 127.0.0.1
port: 3306 port: 3306
database: my_db database: my_db
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
queryTimeout: 30s # Optional: query timeout duration queryTimeout: 30s # Optional: query timeout duration
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -59,7 +59,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | host | string | true | IP address to connect to (e.g. "127.0.0.1"). |
| port | string | true | Port to connect to (e.g. "3306"). | | 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"). | | database | string | true | Name of the SingleStore database to connect to (e.g. "my_db"). |

View File

@@ -31,16 +31,16 @@ Snowflake user to login to the database with.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-sf-source: name: my-sf-source
kind: snowflake type: snowflake
account: ${SNOWFLAKE_ACCOUNT} account: ${SNOWFLAKE_ACCOUNT}
user: ${SNOWFLAKE_USER} user: ${SNOWFLAKE_USER}
password: ${SNOWFLAKE_PASSWORD} password: ${SNOWFLAKE_PASSWORD}
database: ${SNOWFLAKE_DATABASE} database: ${SNOWFLAKE_DATABASE}
schema: ${SNOWFLAKE_SCHEMA} schema: ${SNOWFLAKE_SCHEMA}
warehouse: ${SNOWFLAKE_WAREHOUSE} warehouse: ${SNOWFLAKE_WAREHOUSE}
role: ${SNOWFLAKE_ROLE} role: ${SNOWFLAKE_ROLE}
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -52,7 +52,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **field** | **type** | **required** | **description** |
|-----------|:--------:|:------------:|------------------------------------------------------------------------| |-----------|:--------:|:------------:|------------------------------------------------------------------------|
| kind | string | true | Must be "snowflake". | | type | string | true | Must be "snowflake". |
| account | string | true | Your Snowflake account identifier. | | account | string | true | Your Snowflake account identifier. |
| user | string | true | Name of the Snowflake user to connect as (e.g. "my-sf-user"). | | 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"). | | password | string | true | Password of the Snowflake user (e.g. "my-password"). |

View File

@@ -64,20 +64,20 @@ applying IAM permissions and roles to an identity.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-spanner-source: name: my-spanner-source
kind: "spanner" type: "spanner"
project: "my-project-id" project: "my-project-id"
instance: "my-instance" instance: "my-instance"
database: "my_db" database: "my_db"
# dialect: "googlesql" # dialect: "googlesql"
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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"). | | 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. | | instance | string | true | Name of the Spanner instance. |
| database | string | true | Name of the database on the Spanner instance | | database | string | true | Name of the database on the Spanner instance |

View File

@@ -48,19 +48,19 @@ You need a SQLite database file. This can be:
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-sqlite-db: name: my-sqlite-db
kind: "sqlite" type: "sqlite"
database: "/path/to/database.db" database: "/path/to/database.db"
``` ```
For an in-memory database: For an in-memory database:
```yaml ```yaml
sources: kind: sources
my-sqlite-memory-db: name: my-sqlite-memory-db
kind: "sqlite" type: "sqlite"
database: ":memory:" database: ":memory:"
``` ```
## Reference ## Reference
@@ -69,7 +69,7 @@ sources:
| **field** | **type** | **required** | **description** | | **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. | | database | string | true | Path to SQLite database file, or ":memory:" for an in-memory database. |
### Connection Properties ### Connection Properties

View File

@@ -46,9 +46,9 @@ console.
- TiDB Cloud - TiDB Cloud
```yaml ```yaml
sources: kind: sources
my-tidb-cloud-source: name: my-tidb-cloud-source
kind: tidb type: tidb
host: gateway01.us-west-2.prod.aws.tidbcloud.com host: gateway01.us-west-2.prod.aws.tidbcloud.com
port: 4000 port: 4000
database: my_db database: my_db
@@ -60,9 +60,9 @@ console.
- Self-Hosted TiDB - Self-Hosted TiDB
```yaml ```yaml
sources: kind: sources
my-tidb-source: name: my-tidb-source
kind: tidb type: tidb
host: 127.0.0.1 host: 127.0.0.1
port: 4000 port: 4000
database: my_db database: my_db
@@ -80,7 +80,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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"). | | 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). | | 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"). | | database | string | true | Name of the TiDB database to connect to (e.g. "my_db"). |

View File

@@ -32,15 +32,15 @@ the catalogs and schemas you want to query.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-trino-source: name: my-trino-source
kind: trino type: trino
host: trino.example.com host: trino.example.com
port: "8080" port: "8080"
user: ${TRINO_USER} # Optional for anonymous access user: ${TRINO_USER} # Optional for anonymous access
password: ${TRINO_PASSWORD} # Optional password: ${TRINO_PASSWORD} # Optional
catalog: hive catalog: hive
schema: default schema: default
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -52,7 +52,7 @@ instead of hardcoding your secrets into the configuration file.
| **field** | **type** | **required** | **description** | | **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") | | host | string | true | Trino coordinator hostname (e.g. "trino.example.com") |
| port | string | true | Trino coordinator port (e.g. "8080", "8443") | | port | string | true | Trino coordinator port (e.g. "8080", "8443") |
| user | string | false | Username for authentication (e.g. "analyst"). Optional for anonymous access. | | user | string | false | Username for authentication (e.g. "analyst"). Optional for anonymous access. |

View File

@@ -27,16 +27,16 @@ the [official Valkey website](https://valkey.io/topics/quickstart/).
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-valkey-instance: name: my-valkey-instance
kind: valkey type: valkey
address: address:
- 127.0.0.1:6379 - 127.0.0.1:6379
username: ${YOUR_USERNAME} username: ${YOUR_USERNAME}
password: ${YOUR_PASSWORD} password: ${YOUR_PASSWORD}
# database: 0 # database: 0
# useGCPIAM: false # useGCPIAM: false
# disableCache: false # disableCache: false
``` ```
{{< notice tip >}} {{< notice tip >}}
@@ -51,12 +51,12 @@ authentication. Grant your account the required [IAM role][iam] and set
`useGCPIAM` to `true`: `useGCPIAM` to `true`:
```yaml ```yaml
sources: kind: sources
my-valkey-instance: name: my-valkey-instance
kind: valkey type: valkey
address: address:
- 127.0.0.1:6379 - 127.0.0.1:6379
useGCPIAM: true useGCPIAM: true
``` ```
[iam]: https://cloud.google.com/memorystore/docs/valkey/about-iam-auth [iam]: https://cloud.google.com/memorystore/docs/valkey/about-iam-auth
@@ -65,7 +65,7 @@ sources:
| **field** | **type** | **required** | **description** | | **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. | | 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 | | 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 | | password | string | false | Password for the Valkey instance |

View File

@@ -17,23 +17,23 @@ compatibility.
## Example ## Example
```yaml ```yaml
sources: kind: sources
my-yb-source: name: my-yb-source
kind: yugabytedb type: yugabytedb
host: 127.0.0.1 host: 127.0.0.1
port: 5433 port: 5433
database: yugabyte database: yugabyte
user: ${USER_NAME} user: ${USER_NAME}
password: ${PASSWORD} password: ${PASSWORD}
loadBalance: true loadBalance: true
topologyKeys: cloud.region.zone1:1,cloud.region.zone2:2 topologyKeys: cloud.region.zone1:1,cloud.region.zone2:2
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **field** | **type** | **required** | **description** |
|------------------------------|:--------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------| |------------------------------|:--------:|:------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| kind | string | true | Must be "yugabytedb". | | type | string | true | Must be "yugabytedb". |
| host | string | true | IP address to connect to. | | host | string | true | IP address to connect to. |
| port | integer | true | Port to connect to. The default port is 5433. | | 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. | | database | string | true | Name of the YugabyteDB database to connect to. The default database name is yugabyte. |

View File

@@ -12,16 +12,16 @@ 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: `tools.yaml` file. Typically, a tool will require a source to act on:
```yaml ```yaml
tools: kind: tools
search_flights_by_number: name: search_flights_by_number
kind: postgres-sql type: postgres-sql
source: my-pg-instance source: my-pg-instance
statement: | statement: |
SELECT * FROM flights SELECT * FROM flights
WHERE airline = $1 WHERE airline = $1
AND flight_number = $2 AND flight_number = $2
LIMIT 10 LIMIT 10
description: | description: |
Use this tool to get information for a specific flight. Use this tool to get information for a specific flight.
Takes an airline code and flight number and returns info on the flight. Takes an airline code and flight number and returns info on the flight.
Do NOT use this tool with a flight id. Do NOT guess an airline code or flight number. Do NOT use this tool with a flight id. Do NOT guess an airline code or flight number.
@@ -40,7 +40,7 @@ tools:
"airline": "DL", "airline": "DL",
"flight_number": "1234", "flight_number": "1234",
}} }}
parameters: parameters:
- name: airline - name: airline
type: string type: string
description: Airline unique 2 letter identifier description: Airline unique 2 letter identifier
@@ -55,7 +55,7 @@ Parameters for each Tool will define what inputs the agent will need to provide
to invoke them. Parameters should be pass as a list of Parameter objects: to invoke them. Parameters should be pass as a list of Parameter objects:
```yaml ```yaml
parameters: parameters:
- name: airline - name: airline
type: string type: string
description: Airline unique 2 letter identifier description: Airline unique 2 letter identifier
@@ -71,7 +71,7 @@ most cases, the description will be provided to the LLM as context on specifying
the parameter. the parameter.
```yaml ```yaml
parameters: parameters:
- name: airline - name: airline
type: string type: string
description: Airline unique 2 letter identifier description: Airline unique 2 letter identifier
@@ -97,7 +97,7 @@ To use the `array` type, you must also specify what kind of items are
in the list using the items field: in the list using the items field:
```yaml ```yaml
parameters: parameters:
- name: preferred_airlines - name: preferred_airlines
type: array type: array
description: A list of airline, ordered by preference. description: A list of airline, ordered by preference.
@@ -105,7 +105,7 @@ in the list using the items field:
name: name name: name
type: string type: string
description: Name of the airline. description: Name of the airline.
statement: | statement: |
SELECT * FROM airlines WHERE preferred_airlines = ANY($1); SELECT * FROM airlines WHERE preferred_airlines = ANY($1);
``` ```
@@ -141,7 +141,7 @@ This is the default behavior when valueType is omitted. It's useful for passing
a flexible group of settings. a flexible group of settings.
```yaml ```yaml
parameters: parameters:
- name: execution_context - name: execution_context
type: map type: map
description: A flexible set of key-value pairs for the execution environment. description: A flexible set of key-value pairs for the execution environment.
@@ -153,7 +153,7 @@ Specify valueType to ensure all values in the map are of the same type. An error
will be thrown in case of value type mismatch. will be thrown in case of value type mismatch.
```yaml ```yaml
parameters: parameters:
- name: user_scores - name: user_scores
type: map type: map
description: A map of user IDs to their scores. All scores must be integers. description: A map of user IDs to their scores. All scores must be integers.
@@ -171,13 +171,13 @@ the required [authServices](../authServices/) to specific claims within the
user's ID token. user's ID token.
```yaml ```yaml
tools: kind: tools
search_flights_by_user_id: name: search_flights_by_user_id
kind: postgres-sql type: postgres-sql
source: my-pg-instance source: my-pg-instance
statement: | statement: |
SELECT * FROM flights WHERE user_id = $1 SELECT * FROM flights WHERE user_id = $1
parameters: parameters:
- name: user_id - name: user_id
type: string type: string
description: Auto-populated from Google login description: Auto-populated from Google login
@@ -222,20 +222,20 @@ can use `minValue` and `maxValue` to define the allowable range.
{{< /notice >}} {{< /notice >}}
```yaml ```yaml
tools: kind: tools
select_columns_from_table: name: select_columns_from_table
kind: postgres-sql type: postgres-sql
source: my-pg-instance source: my-pg-instance
statement: | statement: |
SELECT {{array .columnNames}} FROM {{.tableName}} SELECT {{array .columnNames}} FROM {{.tableName}}
description: | description: |
Use this tool to list all information from a specific table. Use this tool to list all information from a specific table.
Example: Example:
{{ {{
"tableName": "flights", "tableName": "flights",
"columnNames": ["id", "name"] "columnNames": ["id", "name"]
}} }}
templateParameters: templateParameters:
- name: tableName - name: tableName
type: string type: string
description: Table to select from description: Table to select from
@@ -267,14 +267,14 @@ specifying an `authRequired` field. Specify a list of
[authServices](../authServices/) defined in the previous section. [authServices](../authServices/) defined in the previous section.
```yaml ```yaml
tools: kind: tools
search_all_flight: name: search_all_flight
kind: postgres-sql type: postgres-sql
source: my-pg-instance source: my-pg-instance
statement: | statement: |
SELECT * FROM flights SELECT * FROM flights
# A list of `authServices` defined previously # A list of `authServices` defined previously
authRequired: authRequired:
- my-google-auth - my-google-auth
- other-auth-service - other-auth-service
``` ```

View File

@@ -40,17 +40,17 @@ The tool takes the following input parameters:
## Example ## Example
```yaml ```yaml
tools: kind: tools
create_cluster: name: create_cluster
kind: alloydb-create-cluster type: alloydb-create-cluster
source: alloydb-admin-source source: alloydb-admin-source
description: Use this tool to create a new AlloyDB cluster in a given project and location. description: Use this tool to create a new AlloyDB cluster in a given project and location.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -45,17 +45,17 @@ The tool takes the following input parameters:
## Example ## Example
```yaml ```yaml
tools: kind: tools
create_instance: name: create_instance
kind: alloydb-create-instance type: alloydb-create-instance
source: alloydb-admin-source source: alloydb-admin-source
description: Use this tool to create a new AlloyDB instance within a specified cluster. description: Use this tool to create a new AlloyDB instance within a specified cluster.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -39,17 +39,17 @@ The tool takes the following input parameters:
## Example ## Example
```yaml ```yaml
tools: kind: tools
create_user: name: create_user
kind: alloydb-create-user type: alloydb-create-user
source: alloydb-admin-source source: alloydb-admin-source
description: Use this tool to create a new database user for an AlloyDB cluster. description: Use this tool to create a new database user for an AlloyDB cluster.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -3,7 +3,7 @@ title: alloydb-get-cluster
type: docs type: docs
weight: 1 weight: 1
description: "The \"alloydb-get-cluster\" tool retrieves details for a specific AlloyDB cluster.\n" 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 ## About
@@ -21,17 +21,17 @@ specified AlloyDB cluster. It is compatible with
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_specific_cluster: name: get_specific_cluster
kind: alloydb-get-cluster type: alloydb-get-cluster
source: my-alloydb-admin-source source: my-alloydb-admin-source
description: Use this tool to retrieve details for a specific AlloyDB cluster. description: Use this tool to retrieve details for a specific AlloyDB cluster.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -22,17 +22,17 @@ specified AlloyDB instance. It is compatible with
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_specific_instance: name: get_specific_instance
kind: alloydb-get-instance type: alloydb-get-instance
source: my-alloydb-admin-source source: my-alloydb-admin-source
description: Use this tool to retrieve details for a specific AlloyDB instance. description: Use this tool to retrieve details for a specific AlloyDB instance.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -22,17 +22,17 @@ specified AlloyDB user. It is compatible with
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_specific_user: name: get_specific_user
kind: alloydb-get-user type: alloydb-get-user
source: my-alloydb-admin-source source: my-alloydb-admin-source
description: Use this tool to retrieve details for a specific AlloyDB user. description: Use this tool to retrieve details for a specific AlloyDB user.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -24,17 +24,17 @@ location. The tool takes the following input parameters:
## Example ## Example
```yaml ```yaml
tools: kind: tools
list_clusters: name: list_clusters
kind: alloydb-list-clusters type: alloydb-list-clusters
source: alloydb-admin-source source: alloydb-admin-source
description: Use this tool to list all AlloyDB clusters in a given project and location. description: Use this tool to list all AlloyDB clusters in a given project and location.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -26,17 +26,17 @@ parameters:
## Example ## Example
```yaml ```yaml
tools: kind: tools
list_instances: name: list_instances
kind: alloydb-list-instances type: alloydb-list-instances
source: alloydb-admin-source source: alloydb-admin-source
description: Use this tool to list all AlloyDB instances for a given project, cluster and location. description: Use this tool to list all AlloyDB instances for a given project, cluster and location.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -22,17 +22,17 @@ The tool takes the following input parameters:
## Example ## Example
```yaml ```yaml
tools: kind: tools
list_users: name: list_users
kind: alloydb-list-users type: alloydb-list-users
source: alloydb-admin-source source: alloydb-admin-source
description: Use this tool to list all database users within an AlloyDB cluster description: Use this tool to list all database users within an AlloyDB cluster
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of an `alloydb-admin` source. |
| description | string | false | Description of the tool that is passed to the agent. | | description | string | false | Description of the tool that is passed to the agent. |

View File

@@ -25,22 +25,22 @@ and shouldn't be used for production agents.
## Example ## Example
```yaml ```yaml
tools: kind: tools
wait_for_operation: name: wait_for_operation
kind: alloydb-wait-for-operation type: alloydb-wait-for-operation
source: my-alloydb-admin-source 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." 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 delay: 1s
maxDelay: 4m maxDelay: 4m
multiplier: 2 multiplier: 2
maxRetries: 10 maxRetries: 10
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of a `alloydb-admin` source to use for authentication. |
| description | string | false | A description of the tool. | | description | string | false | A description of the tool. |
| delay | duration | false | The initial delay between polling requests (e.g., `3s`). Defaults to 3 seconds. | | delay | duration | false | The initial delay between polling requests (e.g., `3s`). Defaults to 3 seconds. |

View File

@@ -103,13 +103,13 @@ CREATE EXTENSION IF NOT EXISTS parameterized_views;
## Example ## Example
```yaml ```yaml
tools: kind: tools
ask_questions: name: ask_questions
kind: alloydb-ai-nl type: alloydb-ai-nl
source: my-alloydb-source source: my-alloydb-source
description: "Ask questions to check information about flights" description: "Ask questions to check information about flights"
nlConfig: "cymbal_air_nl_config" nlConfig: "cymbal_air_nl_config"
nlConfigParameters: nlConfigParameters:
- name: user_email - name: user_email
type: string type: string
description: User ID of the logged in user. description: User ID of the logged in user.
@@ -125,7 +125,7 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |
| nlConfig | string | true | The name of the `nl_config` in AlloyDB | | nlConfig | string | true | The name of the `nl_config` in AlloyDB |

View File

@@ -64,11 +64,11 @@ the `bigquery` source:
## Example ## Example
```yaml ```yaml
tools: kind: tools
contribution_analyzer: name: contribution_analyzer
kind: bigquery-analyze-contribution type: bigquery-analyze-contribution
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to run contribution analysis on a dataset in BigQuery. description: Use this tool to run contribution analysis on a dataset in BigQuery.
``` ```
## Sample Prompt ## Sample Prompt
@@ -88,6 +88,6 @@ And use the following sample prompts to call this tool:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -53,11 +53,11 @@ dataset specified in the `table_references` parameter.
## Example ## Example
```yaml ```yaml
tools: kind: tools
ask_data_insights: name: ask_data_insights
kind: bigquery-conversational-analytics type: bigquery-conversational-analytics
source: my-bigquery-source source: my-bigquery-source
description: | description: |
Use this tool to perform data analysis, get insights, or answer complex Use this tool to perform data analysis, get insights, or answer complex
questions about the contents of specific BigQuery tables. questions about the contents of specific BigQuery tables.
``` ```
@@ -66,6 +66,6 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the source for chat. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -54,17 +54,17 @@ layer of security by controlling which datasets can be accessed:
## Example ## Example
```yaml ```yaml
tools: kind: tools
execute_sql_tool: name: execute_sql_tool
kind: bigquery-execute-sql type: bigquery-execute-sql
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to execute sql statement. description: Use this tool to execute sql statement.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -58,11 +58,11 @@ the `bigquery` source:
## Example ## Example
```yaml ```yaml
tools: kind: tools
forecast_tool: name: forecast_tool
kind: bigquery-forecast type: bigquery-forecast
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to forecast time series data in BigQuery. description: Use this tool to forecast time series data in BigQuery.
``` ```
## Sample Prompt ## Sample Prompt
@@ -78,6 +78,6 @@ You can use the following sample prompts to call this tool:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -34,17 +34,17 @@ The tool's behavior regarding these parameters is influenced by the
## Example ## Example
```yaml ```yaml
tools: kind: tools
bigquery_get_dataset_info: name: bigquery_get_dataset_info
kind: bigquery-get-dataset-info type: bigquery-get-dataset-info
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to get dataset metadata. description: Use this tool to get dataset metadata.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -35,17 +35,17 @@ The tool's behavior regarding these parameters is influenced by the
## Example ## Example
```yaml ```yaml
tools: kind: tools
bigquery_get_table_info: name: bigquery_get_table_info
kind: bigquery-get-table-info type: bigquery-get-table-info
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to get table metadata. description: Use this tool to get table metadata.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -32,17 +32,17 @@ The tool's behavior regarding this parameter is influenced by the
## Example ## Example
```yaml ```yaml
tools: kind: tools
bigquery_list_dataset_ids: name: bigquery_list_dataset_ids
kind: bigquery-list-dataset-ids type: bigquery-list-dataset-ids
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to get dataset metadata. description: Use this tool to get dataset metadata.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -34,17 +34,17 @@ will be used as the default value for the `dataset` parameter.
## Example ## Example
```yaml ```yaml
tools: kind: tools
bigquery_list_table_ids: name: bigquery_list_table_ids
kind: bigquery-list-table-ids type: bigquery-list-table-ids
source: my-bigquery-source source: my-bigquery-source
description: Use this tool to get table metadata. description: Use this tool to get table metadata.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -48,17 +48,17 @@ applying IAM permissions and roles to an identity.
## Example ## Example
```yaml ```yaml
tools: kind: tools
search_catalog: name: search_catalog
kind: bigquery-search-catalog type: bigquery-search-catalog
source: bigquery-source source: bigquery-source
description: Use this tool to find tables, views, models, routines or connections. description: Use this tool to find tables, views, models, routines or connections.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -46,12 +46,12 @@ same query.
> identifiers, column names, table names, or other parts of the query. > identifiers, column names, table names, or other parts of the query.
```yaml ```yaml
tools: # Example: Querying a user table in BigQuery
# Example: Querying a user table in BigQuery kind: tools
search_users_bq: name: search_users_bq
kind: bigquery-sql type: bigquery-sql
source: my-bigquery-source source: my-bigquery-source
statement: | statement: |
SELECT SELECT
id, id,
name, name,
@@ -60,7 +60,7 @@ tools:
`my-project.my-dataset.users` `my-project.my-dataset.users`
WHERE WHERE
id = @id OR email = @email; id = @id OR email = @email;
description: | description: |
Use this tool to get information for a specific user. Use this tool to get information for a specific user.
Takes an id number or a name and returns info on the user. Takes an id number or a name and returns info on the user.
@@ -69,7 +69,7 @@ tools:
"id": 123, "id": 123,
"name": "Alice", "name": "Alice",
}} }}
parameters: parameters:
- name: id - name: id
type: integer type: integer
description: User ID description: User ID
@@ -87,19 +87,19 @@ tools:
> [templateParameters](../#template-parameters). > [templateParameters](../#template-parameters).
```yaml ```yaml
tools: kind: tools
list_table: name: list_table
kind: bigquery-sql type: bigquery-sql
source: my-bigquery-source source: my-bigquery-source
statement: | statement: |
SELECT * FROM {{.tableName}}; SELECT * FROM {{.tableName}};
description: | description: |
Use this tool to list all information from a specific table. Use this tool to list all information from a specific table.
Example: Example:
{{ {{
"tableName": "flights", "tableName": "flights",
}} }}
templateParameters: templateParameters:
- name: tableName - name: tableName
type: string type: string
description: Table to select from description: Table to select from
@@ -109,7 +109,7 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |
| statement | string | true | The GoogleSQL statement to execute. | | statement | string | true | The GoogleSQL statement to execute. |

View File

@@ -40,11 +40,11 @@ inserted according to their name: e.g. `@name`.
> names, or other parts of the query. > names, or other parts of the query.
```yaml ```yaml
tools: kind: tools
search_user_by_id_or_name: name: search_user_by_id_or_name
kind: bigtable-sql type: bigtable-sql
source: my-bigtable-instance source: my-bigtable-instance
statement: | statement: |
SELECT SELECT
TO_INT64(cf[ 'id' ]) as id, TO_INT64(cf[ 'id' ]) as id,
CAST(cf[ 'name' ] AS string) as name, CAST(cf[ 'name' ] AS string) as name,
@@ -53,7 +53,7 @@ tools:
WHERE WHERE
TO_INT64(cf[ 'id' ]) = @id TO_INT64(cf[ 'id' ]) = @id
OR CAST(cf[ 'name' ] AS string) = @name; OR CAST(cf[ 'name' ] AS string) = @name;
description: | description: |
Use this tool to get information for a specific user. Use this tool to get information for a specific user.
Takes an id number or a name and returns info on the user. Takes an id number or a name and returns info on the user.
@@ -62,7 +62,7 @@ tools:
"id": 123, "id": 123,
"name": "Alice", "name": "Alice",
}} }}
parameters: parameters:
- name: id - name: id
type: integer type: integer
description: User ID description: User ID
@@ -80,19 +80,19 @@ tools:
> [templateParameters](..#template-parameters). > [templateParameters](..#template-parameters).
```yaml ```yaml
tools: kind: tools
list_table: name: list_table
kind: bigtable-sql type: bigtable-sql
source: my-bigtable-instance source: my-bigtable-instance
statement: | statement: |
SELECT * FROM {{.tableName}}; SELECT * FROM {{.tableName}};
description: | description: |
Use this tool to list all information from a specific table. Use this tool to list all information from a specific table.
Example: Example:
{{ {{
"tableName": "flights", "tableName": "flights",
}} }}
templateParameters: templateParameters:
- name: tableName - name: tableName
type: string type: string
description: Table to select from description: Table to select from
@@ -102,7 +102,7 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |
| statement | string | true | SQL statement to execute on. | | statement | string | true | SQL statement to execute on. |

View File

@@ -31,15 +31,15 @@ the form of placeholders `?`.
> names, or other parts of the query. > names, or other parts of the query.
```yaml ```yaml
tools: kind: tools
search_users_by_email: name: search_users_by_email
kind: cassandra-cql type: cassandra-cql
source: my-cassandra-cluster source: my-cassandra-cluster
statement: | statement: |
SELECT user_id, email, first_name, last_name, created_at SELECT user_id, email, first_name, last_name, created_at
FROM users FROM users
WHERE email = ? WHERE email = ?
description: | description: |
Use this tool to retrieve specific user information by their email address. Use this tool to retrieve specific user information by their email address.
Takes an email address and returns user details including user ID, email, Takes an email address and returns user details including user ID, email,
first name, last name, and account creation timestamp. first name, last name, and account creation timestamp.
@@ -48,7 +48,7 @@ tools:
{{ {{
"email": "user@example.com", "email": "user@example.com",
}} }}
parameters: parameters:
- name: email - name: email
type: string type: string
description: User's email address description: User's email address
@@ -63,20 +63,20 @@ tools:
> [templateParameters](../#template-parameters). > [templateParameters](../#template-parameters).
```yaml ```yaml
tools: kind: tools
list_keyspace_table: name: list_keyspace_table
kind: cassandra-cql type: cassandra-cql
source: my-cassandra-cluster source: my-cassandra-cluster
statement: | statement: |
SELECT * FROM {{.keyspace}}.{{.tableName}}; SELECT * FROM {{.keyspace}}.{{.tableName}};
description: | description: |
Use this tool to list all information from a specific table in a keyspace. Use this tool to list all information from a specific table in a keyspace.
Example: Example:
{{ {{
"keyspace": "my_keyspace", "keyspace": "my_keyspace",
"tableName": "users", "tableName": "users",
}} }}
templateParameters: templateParameters:
- name: keyspace - name: keyspace
type: string type: string
description: Keyspace containing the table description: Keyspace containing the table
@@ -89,7 +89,7 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |
| statement | string | true | CQL statement to execute. | | statement | string | true | CQL statement to execute. |

View File

@@ -25,11 +25,11 @@ capabilities for monitoring and debugging purposes.
## Example ## Example
```yaml ```yaml
tools: kind: tools
execute_sql_tool: name: execute_sql_tool
kind: clickhouse-execute-sql type: clickhouse-execute-sql
source: my-clickhouse-instance source: my-clickhouse-instance
description: Use this tool to execute SQL statements against ClickHouse. description: Use this tool to execute SQL statements against ClickHouse.
``` ```
## Parameters ## Parameters
@@ -42,6 +42,6 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -21,11 +21,11 @@ discovery and exploration tasks.
## Example ## Example
```yaml ```yaml
tools: kind: tools
list_clickhouse_databases: name: list_clickhouse_databases
kind: clickhouse-list-databases type: clickhouse-list-databases
source: my-clickhouse-instance source: my-clickhouse-instance
description: List all available databases in the ClickHouse instance description: List all available databases in the ClickHouse instance
``` ```
## Return Value ## Return Value
@@ -49,7 +49,7 @@ Example response:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | 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. | | authRequired | array of string | false | Authentication services required to use this tool. |

View File

@@ -21,11 +21,11 @@ user, making it useful for schema exploration and table discovery tasks.
## Example ## Example
```yaml ```yaml
tools: kind: tools
list_clickhouse_tables: name: list_clickhouse_tables
kind: clickhouse-list-tables type: clickhouse-list-tables
source: my-clickhouse-instance source: my-clickhouse-instance
description: List all tables in a specific ClickHouse database description: List all tables in a specific ClickHouse database
``` ```
## Parameters ## Parameters
@@ -56,7 +56,7 @@ Example response:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | 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. | | authRequired | array of string | false | Authentication services required to use this tool. |

View File

@@ -21,12 +21,12 @@ query execution capabilities.
## Example ## Example
```yaml ```yaml
tools: kind: tools
my_analytics_query: name: my_analytics_query
kind: clickhouse-sql type: clickhouse-sql
source: my-clickhouse-instance source: my-clickhouse-instance
description: Get user analytics for a specific date range description: Get user analytics for a specific date range
statement: | statement: |
SELECT SELECT
user_id, user_id,
count(*) as event_count, count(*) as event_count,
@@ -36,7 +36,7 @@ tools:
GROUP BY user_id GROUP BY user_id
ORDER BY event_count DESC ORDER BY event_count DESC
LIMIT ? LIMIT ?
parameters: parameters:
- name: start_date - name: start_date
description: Start date for the query (YYYY-MM-DD format) description: Start date for the query (YYYY-MM-DD format)
- name: end_date - name: end_date
@@ -48,22 +48,22 @@ tools:
## Template Parameters Example ## Template Parameters Example
```yaml ```yaml
tools: kind: tools
flexible_table_query: name: flexible_table_query
kind: clickhouse-sql type: clickhouse-sql
source: my-clickhouse-instance source: my-clickhouse-instance
description: Query any table with flexible columns description: Query any table with flexible columns
statement: | statement: |
SELECT {{columns}} SELECT {{columns}}
FROM {{table_name}} FROM {{table_name}}
WHERE created_date >= ? WHERE created_date >= ?
LIMIT ? LIMIT ?
templateParameters: templateParameters:
- name: columns - name: columns
description: Comma-separated list of columns to select description: Comma-separated list of columns to select
- name: table_name - name: table_name
description: Name of the table to query description: Name of the table to query
parameters: parameters:
- name: start_date - name: start_date
description: Start date filter description: Start date filter
- name: limit - name: limit
@@ -74,7 +74,7 @@ tools:
| **field** | **type** | **required** | **description** | | **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. | | 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. | | description | string | true | Description of the tool that is passed to the LLM. |
| statement | string | true | The SQL statement template to execute. | | statement | string | true | The SQL statement template to execute. |

View File

@@ -18,13 +18,13 @@ The `cloud-gemini-data-analytics-query` tool allows you to send natural language
## Example ## Example
```yaml ```yaml
tools: kind: tools
my-gda-query-tool: name: my-gda-query-tool
kind: cloud-gemini-data-analytics-query type: cloud-gemini-data-analytics-query
source: my-gda-source 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." 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} location: ${your_database_location}
context: context:
datasourceReferences: datasourceReferences:
cloudSqlReference: cloudSqlReference:
databaseReference: databaseReference:
@@ -35,7 +35,7 @@ tools:
engine: "POSTGRESQL" engine: "POSTGRESQL"
agentContextReference: agentContextReference:
contextSetId: "${your_context_set_id}" # E.g. projects/${project_id}/locations/${context_set_location}/contextSets/${context_set_id} contextSetId: "${your_context_set_id}" # E.g. projects/${project_id}/locations/${context_set_location}/contextSets/${context_set_id}
generationOptions: generationOptions:
generateQueryResult: true generateQueryResult: true
generateNaturalLanguageAnswer: true generateNaturalLanguageAnswer: true
generateExplanation: true generateExplanation: true
@@ -87,7 +87,7 @@ How many accounts who have region in Prague are eligible for loans? A3 contains
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | The name of the `cloud-gemini-data-analytics` source to use. |
| description | string | true | A description of the tool's purpose. | | 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. | | 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. |

View File

@@ -23,18 +23,18 @@ response bundle.
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_fhir_store: name: get_fhir_store
kind: cloud-healthcare-fhir-fetch-page type: cloud-healthcare-fhir-fetch-page
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to fetch a page of FHIR resources from a FHIR Bundle's entry.link.url description: Use this tool to fetch a page of FHIR resources from a FHIR Bundle's entry.link.url
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -22,18 +22,18 @@ types, or only resources that have been updated after a given time.
## Example ## Example
```yaml ```yaml
tools: kind: tools
fhir_patient_everything: name: fhir_patient_everything
kind: cloud-healthcare-fhir-patient-everything type: cloud-healthcare-fhir-patient-everything
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to retrieve all the information about a given patient. description: Use this tool to retrieve all the information about a given patient.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -21,18 +21,18 @@ given criteria.
## Example ## Example
```yaml ```yaml
tools: kind: tools
fhir_patient_search: name: fhir_patient_search
kind: cloud-healthcare-fhir-patient-search type: cloud-healthcare-fhir-patient-search
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to search for patients in the FHIR store. description: Use this tool to search for patients in the FHIR store.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -21,17 +21,17 @@ configured in the source. It takes no extra parameters.
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_dataset: name: get_dataset
kind: cloud-healthcare-get-dataset type: cloud-healthcare-get-dataset
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to get healthcare dataset metadata. description: Use this tool to get healthcare dataset metadata.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -20,18 +20,18 @@ store. It's compatible with the following sources:
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_dicom_store_metrics: name: get_dicom_store_metrics
kind: cloud-healthcare-get-dicom-store-metrics type: cloud-healthcare-get-dicom-store-metrics
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to get metrics for a DICOM store. description: Use this tool to get metrics for a DICOM store.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -20,18 +20,18 @@ compatible with the following sources:
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_dicom_store: name: get_dicom_store
kind: cloud-healthcare-get-dicom-store type: cloud-healthcare-get-dicom-store
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to get information about a DICOM store. description: Use this tool to get information about a DICOM store.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | description | string | true | Description of the tool that is passed to the LLM. |

View File

@@ -23,18 +23,18 @@ by its type and ID.
## Example ## Example
```yaml ```yaml
tools: kind: tools
get_fhir_resource: name: get_fhir_resource
kind: cloud-healthcare-get-fhir-resource type: cloud-healthcare-get-fhir-resource
source: my-healthcare-source source: my-healthcare-source
description: Use this tool to retrieve a specific FHIR resource. description: Use this tool to retrieve a specific FHIR resource.
``` ```
## Reference ## Reference
| **field** | **type** | **required** | **description** | | **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. | | source | string | true | Name of the healthcare source. |
| description | string | true | Description of the tool that is passed to the LLM. | | 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