mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-05-02 03:00:36 -04:00
## Description --- This PR updates the naming conventions across prebuilt tool configuration files to improve consistency: __Changes:__ - __Toolset names__: Changed from hyphen-separated to underscore-separated format (e.g., `firestore-database-tools` → `firestore_database_tools`) - __Tool names__: Removed product name prefixes for cleaner naming and using underscore-separated format (e.g., `firestore-get-documents` → `get_documents`, `alloydb-create-cluster` → `create_cluster`) - __Copyright headers__: Added missing copyright headers to configuration files - __Test updates__: Updated `cmd/root_test.go` to reflect the new naming conventions ## PR Checklist --- > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) - [x] Make sure to add `!` if this involve a breaking change
83 lines
4.1 KiB
YAML
83 lines
4.1 KiB
YAML
# Copyright 2025 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
sources:
|
|
firestore-source:
|
|
kind: firestore
|
|
project: ${FIRESTORE_PROJECT}
|
|
database: ${FIRESTORE_DATABASE:}
|
|
|
|
tools:
|
|
get_documents:
|
|
kind: firestore-get-documents
|
|
source: firestore-source
|
|
description: Gets multiple documents from Firestore by their paths
|
|
add_documents:
|
|
kind: firestore-add-documents
|
|
source: firestore-source
|
|
description: |
|
|
Adds a new document to a Firestore collection. Please follow the best practices :
|
|
1. Always use typed values in the documentData: Every field must be wrapped with its appropriate type indicator (e.g., {"stringValue": "text"})
|
|
2. Integer values can be strings in the documentData: The tool accepts integer values as strings (e.g., {"integerValue": "1500"})
|
|
3. Use returnData sparingly: Only set to true when you need to verify the exact data that was written
|
|
4. Validate data before sending: Ensure your data matches Firestore's native JSON format
|
|
5. Handle timestamps properly: Use RFC3339 format for timestamp strings
|
|
6. Base64 encode binary data: Binary data must be base64 encoded in the bytesValue field
|
|
7. Consider security rules: Ensure your Firestore security rules allow document creation in the target collection
|
|
update_document:
|
|
kind: firestore-update-document
|
|
source: firestore-source
|
|
description: |
|
|
Updates an existing document in Firestore. Supports both full document updates and selective field updates using an update mask. Please follow the best practices:
|
|
1. Use update masks for precision: When you only need to update specific fields, use the updateMask parameter to avoid unintended changes
|
|
2. Always use typed values in the documentData: Every field must be wrapped with its appropriate type indicator (e.g., {"stringValue": "text"})
|
|
3. Delete fields using update mask: To delete fields, include them in the updateMask but omit them from documentData
|
|
4. Integer values can be strings: The tool accepts integer values as strings (e.g., {"integerValue": "1500"})
|
|
5. Use returnData sparingly: Only set to true when you need to verify the exact data after the update
|
|
6. Handle timestamps properly: Use RFC3339 format for timestamp strings
|
|
7. Consider security rules: Ensure your Firestore security rules allow document updates
|
|
list_collections:
|
|
kind: firestore-list-collections
|
|
source: firestore-source
|
|
description: List Firestore collections for a given parent path
|
|
delete_documents:
|
|
kind: firestore-delete-documents
|
|
source: firestore-source
|
|
description: Delete multiple documents from Firestore
|
|
query_collection:
|
|
kind: firestore-query-collection
|
|
source: firestore-source
|
|
description: |
|
|
Retrieves one or more Firestore documents from a collection in a database in the current project by a collection with a full document path.
|
|
Use this if you know the exact path of a collection and the filtering clause you would like for the document.
|
|
get_rules:
|
|
kind: firestore-get-rules
|
|
source: firestore-source
|
|
description: Retrieves the active Firestore security rules for the current project
|
|
validate_rules:
|
|
kind: firestore-validate-rules
|
|
source: firestore-source
|
|
description: Checks the provided Firestore Rules source for syntax and validation errors. Provide the source code to validate.
|
|
|
|
toolsets:
|
|
firestore_database_tools:
|
|
- get_documents
|
|
- add_documents
|
|
- update_document
|
|
- list_collections
|
|
- delete_documents
|
|
- query_collection
|
|
- get_rules
|
|
- validate_rules
|