mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-01-11 00:18:17 -05:00
feat(tool/mysql): Set default host and port for MySQL source (#1922)
## Description This pull request addresses issue [#29](https://github.com/gemini-cli-extensions/mysql/issues/29) by implementing default connection values for the MySQL data source. When a user does not specify a host or port, the connection will now automatically default to localhost:3306. ### Detailed Changes 1. **internal/prebuiltconfigs/tools/mysql.yaml** - Added the default values to host and port.Specifically, they are now host: ${MYSQL_HOST:localhost} and port: ${MYSQL_PORT:3306}.This allows the configuration loader to directly use "localhost" or "3306" as a fallback if the MYSQL_HOST or MYSQL_PORT environment variables are not set. **Testing and Validation** To ensure the changes work correctly and are compatible with MySQL-like databases, the feature was manually tested against a MariaDB instance running in a Docker container. The testing process involved the following steps: 1. A local testdb database with a products table was created in the MariaDB container. 2. For Gemini CLI integration, the ~/.gemini/settings.json file was configured to point to a local build of the toolbox executable. 3. The toolbox was launched in UI mode using the **_./toolbox --prebuilt=mysql --ui_** command. 4. Two connection scenarios were tested to validate the new logic. **Test 1: Default Connection (Host/Port Unset)** The MYSQL_HOST and MYSQL_PORT environment variables were unset. The application correctly defaulted to localhost:3306 and successfully connected to the testdb database. <img width="2087" height="1102" alt="Screenshot 2025-11-11 11 31 45 PM" src="https://github.com/user-attachments/assets/a8ef5f92-eaca-472f-a0df-e2b3c0c027da" /> **Test 2: Explicit Connection (Host/Port Set)** The MYSQL_HOST and MYSQL_PORT environment variables were explicitly set. The application correctly used these values, overriding the defaults and establishing a successful connection. <img width="2073" height="958" alt="Screenshot 2025-11-11 6 12 44 PM" src="https://github.com/user-attachments/assets/4b9b8838-091f-4c78-9e3b-97768323693c" /> **Result:** In both scenarios, the list_tables prebuilt tool was executed via the Toolbox UI, which successfully returned the products table from the testdb database, confirming the changes work as expected. Screenshot of list_tables execution from the Toolbox UI: <img width="2251" height="1240" alt="result" src="https://github.com/user-attachments/assets/f1c5372d-acc0-4551-af2d-fa1ee4b228d7" /> ## 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 - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) - [ ] Make sure to add `!` if this involve a breaking change 🛠️ Fixes [#29](https://github.com/gemini-cli-extensions/mysql/issues/29) --------- Co-authored-by: prernakakkar-google <158031829+prernakakkar-google@users.noreply.github.com>
This commit is contained in:
@@ -15,8 +15,8 @@
|
||||
sources:
|
||||
mysql-source:
|
||||
kind: mysql
|
||||
host: ${MYSQL_HOST}
|
||||
port: ${MYSQL_PORT}
|
||||
host: ${MYSQL_HOST:localhost}
|
||||
port: ${MYSQL_PORT:3306}
|
||||
database: ${MYSQL_DATABASE}
|
||||
user: ${MYSQL_USER}
|
||||
password: ${MYSQL_PASSWORD}
|
||||
|
||||
Reference in New Issue
Block a user