You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: DEVELOPER.md
+15-59Lines changed: 15 additions & 59 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,85 +10,46 @@ Before you begin, ensure you have the following:
10
10
1.**Gemini CLI:** Install the Gemini CLI version v0.6.0 or above. Installation
11
11
instructions can be found on the official Gemini CLI documentation. You can
12
12
verify your version by running `gemini --version`.
13
-
2.**OracleDB Cluster & Instance:** For testing data plane tools, you will need access to an active
13
+
2.**OracleDB Cluster & Instance:** For testing data plane tools, you will need access to an active
14
14
Oracle DB instance. We recommend using Public IP to eliminate the need to create and use a workspace
15
-
within the same VPC network as the database.
15
+
within the same VPC network as the database.
16
16
17
17
## Developing the Extension
18
18
19
19
### Running from Local Source
20
20
21
-
The core logic for this extension is handled by a pre-built `toolbox` binary. The development process involves installing the extension locally into the Gemini CLI to test changes.
# For Windows, you will need to download the .exe file and rename it to `toolbox`.
44
-
# The `chmod` command is not required on Windows.
31
+
gemini extensions install .
45
32
```
46
33
47
-
3. **Link the Extension Locally:** Use the Gemini CLI to install the
48
-
extension from your local directory.
49
-
50
-
```bash
51
-
gemini extensions link .
52
-
```
53
-
The CLI will prompt you to confirm the linking. Accept it to proceed.
34
+
The CLI will prompt you to confirm the installation and enter your configuration.
54
35
55
-
4. **Testing Changes:** After linking, start the Gemini CLI (`gemini`).
56
-
You can now interact with the `oracledb` tools to manually test your changes
57
-
against your connected database.
36
+
3. **Testing Changes:** After installation, start the Gemini CLI (`gemini`). You can now interact with the `oracledb` skills to manually test your changes against your connected database.
58
37
59
38
## Testing
60
39
61
40
### Automated Presubmit Checks
62
41
63
-
A GitHub Actions workflow (`.github/workflows/presubmit-tests.yml`) is triggered
64
-
for every pull request. This workflow primarily verifies that the extension can
65
-
be successfully installed by the Gemini CLI.
42
+
A GitHub Actions workflow (`.github/workflows/presubmit-tests.yml`) is triggered for every pull request. This workflow primarily verifies that the extension can be successfully installed by the Gemini CLI.
66
43
67
-
Currently, there are no automated unit or integration test suites
68
-
within this repository. All functional testing must be performed manually. All tools
69
-
are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
44
+
All skills are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
70
45
71
-
### Other GitHub Checks
72
-
73
-
***License Header Check:** A workflow ensures all necessary files contain the
74
-
proper license header.
75
-
***Conventional Commits:** This repository uses
76
-
[Release Please](https://github.com/googleapis/release-please) to manage
GitHub Actions workflow when a new release is created. Manual building is not
91
-
required.
50
+
- **License Header Check:** A workflow ensures all necessary files contain the proper license header.
51
+
- **Conventional Commits:** This repository uses [Release Please](https://github.com/googleapis/release-please) to manage releases. Your commit messages must adhere to the [Conventional Commits](https://www.conventionalcommits.org/) specification.
52
+
- **Dependency Updates:** [Renovate](https://github.com/apps/forking-renovate) is configured to automatically create pull requests for dependency updates.
92
53
93
54
## Maintainer Information
94
55
@@ -97,8 +58,8 @@ required.
97
58
The primary maintainers forthis repository are definedin the
98
59
[`.github/CODEOWNERS`](.github/CODEOWNERS) file:
99
60
100
-
* `@gemini-cli-extensions/senseai-eco`
101
-
* `@gemini-cli-extensions/oracledb-maintainers`
61
+
-`@gemini-cli-extensions/senseai-eco`
62
+
-`@gemini-cli-extensions/oracledb-maintainers`
102
63
103
64
### Releasing
104
65
@@ -120,7 +81,6 @@ The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-
120
81
3. **Filtering:** These release notes are filtered to include only changes
121
82
relevant to this extension. The relevance is determined by a keyword (e.g.,
122
83
`oracledb`), passed as an environment variable in the workflow file.
123
-
`oracledb`), passed as an environment variable in the workflow file.
124
84
4. **Changelog Injection:** The script formats the filtered entries as
125
85
conventional commits and injects them into the PR body within a
126
86
`BEGIN_COMMIT_OVERRIDE` block.
@@ -145,7 +105,3 @@ The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-
145
105
2. **Merge Release PR:** A maintainer approves and merges the Release PR. This
146
106
action triggers `release-please` to create a new GitHub tag and a
147
107
corresponding GitHub Release.
148
-
3. **Package and Upload:** The new release triggers the
149
-
`package-and-upload-assets.yml` workflow. This workflow builds the
150
-
platform-specific extension archives and uploads them as assets to the
## Oracle Database MCP Server (Data Plane: Connecting and Querying)
7
-
This section covers connecting to a Oracle Database instance in different deployments and client configurations.
7
+
## Oracle Database Agent Skills (Data Plane: Connecting and Querying)
8
+
9
+
This section covers connecting to an Oracle Database instance.
8
10
9
-
### 1. Authentication
10
-
Set the following environment variables before starting the Gemini CLI.
11
+
1.**Extension Configuration**: This extension requires several settings (e.g., Connection String, Username, Password, and optionally Wallet Path and Use OCI). These values are gathered via prompts when you first install or link the extension:
11
12
13
+
*`ORACLE_CONNECTION_STRING`: The connection string for your Oracle Database (e.g., `host:port/service_name` or TNS alias).
12
14
*`ORACLE_USERNAME`: Your Oracle database username.
13
15
*`ORACLE_PASSWORD`: Your Oracle database password.
16
+
*`ORACLE_WALLET`: (Optional) Path to the directory containing your Oracle Wallet files.
17
+
*`ORACLE_USE_OCI`: (Optional) Set to `true` to use the OCI (thick client) driver.
14
18
15
-
### 2. Connection Method
16
-
*`ORACLE_CONNECTION_STRING`: The connection string for your Oracle Database (e.g., `host:port/service_name` or TNS alias).
19
+
If you need to update any of these values later, use the `gemini extensions config oracledb` command.
17
20
18
-
### 3. Optional Configuration
19
-
*`ORACLE_WALLET`: Path to the directory containing your Oracle Wallet files.
20
-
*`ORACLE_USE_OCI`: Set to `true` to use the OCI (thick client) driver.
21
+
2.**Handle Missing Variables**: If a command fails with an error related to a missing configuration, it signifies a missing environment variable. Inform the user which variable is missing and instruct them to set it.
21
22
22
-
### 4. Troubleshooting
23
-
***Missing Variables**: If a command fails with an error related to a missing configuration, it signifies a missing environment variable. Please review the setup instructions and ensure the necessary variables are set.
24
-
***Permission Errors**: If you encounter permission errors, ensure the user has the required database-level permissions. `CREATE SESSION` is required for any user to connect. For monitoring and diagnostic tools, `SELECT` privileges on various `V$` (Dynamic Performance Views) and `DBA_` (Data Dictionary Views) are often necessary.
23
+
3.**Handle Permission Errors**: If you encounter permission errors, ensure the user has the required database-level permissions. `CREATE SESSION` is required for any user to connect. For monitoring and diagnostic skills, `SELECT` privileges on various `V$` (Dynamic Performance Views) and `DBA_` (Data Dictionary Views) are often necessary.
25
24
26
25
## Oracle DB Permisions
27
26
This section covers administrative operations like managing clusters, instances, and users.
@@ -40,14 +39,15 @@ This section covers administrative operations like managing clusters, instances,
40
39
41
40
# Usage Guidelines
42
41
## Connecting to New Resources
43
-
When you create a new Oracle DB instance, or database using the available tools, the connection is not automatically established. You will need to perform the following steps:
42
+
When you create a new Oracle DB instance, or database using the available skills, the connection is not automatically established. You will need to perform the following steps:
44
43
45
44
1.**(Optional) Save your conversation:** To avoid losing your progress, save the current session by running the command: `/chat save <your-tag>`
46
45
2.**Stop the CLI:** Terminate the Gemini CLI.
47
-
3.**Update Environment Variables:**Set or update your environment variables (e.g. `ORACLE_CONNECTION_STRING`, `ORACLE_USERNAME`) to point to the new resource.
46
+
3.**Update Extension Configuration:**Use the command `gemini extensions config oracledb` to update your settings (e.g. `ORACLE_CONNECTION_STRING`, `ORACLE_USERNAME`) to point to the new resource.
48
47
4.**Restart:** Relaunch the Gemini CLI
49
48
5.**(Optional) Resume conversation:** Resume your conversation with the command: `/chat resume <your-tag>`
50
49
51
50
**Important:** Do not assume a connection to a newly created resource is active. Always follow the steps above to reconfigure your connection.
52
-
Instead of prompting the user for these values for specific tool calls, prompt the user to verify reuse of a specific value.
53
-
Make sure to not use the environment variable names like `ORACLE_CONNECTION_STRING`, `${ORACLE_CONNECTION_STRING}`, or `$ORACLE_CONNECTION_STRING`. The value can be found by using command: `echo $ORACLE_USERNAME`.
51
+
Instead of prompting the user for these values for specific skill calls, prompt the user to verify the reuse of a specific setting value.
52
+
Make sure to not use the environment variable names like `ORACLE_CONNECTION_STRING`, `${ORACLE_CONNECTION_STRING}`, or `$ORACLE_CONNECTION_STRING`.
53
+
The value can be verified by the user using the `gemini extensions config oracledb` command or by checking their local settings.
0 commit comments