-
Notifications
You must be signed in to change notification settings - Fork 1.1k
feat(sources/bigquery): add support for user-credential passthrough #1067
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ff4f652 to
75b5fa6
Compare
internal/tools/bigquery/bigquerygetdatasetinfo/bigquerygetdatasetinfo.go
Outdated
Show resolved
Hide resolved
|
This is great. If I understand correctly this is just capturing the token from the request header recieved by the toolbox, then putting it into the request made to bigquery. Once this lands I will do the same for Looker. I already figured out how to get Gemini-CLI to authenticate with Looker like this in That should make Gemini-CLI pass the authentication token to the looker tools. |
|
I'm looking at the code and I think we need to add something to capture the Authorization when called via internal/server/mcp/* paths. |
|
I figured out how to get the token when being used as an MCP server... |
|
I confirmed that I successfully get passed the proper authorization token when called from Gemini-CLI. The trick for the Looker implementation now is passing the token to the Looker SDK. There is no provision in the Looker SDK to accept a token so I might need to enhance the SDK a bit. |
caf8e42 to
74d6db2
Compare
0cef7b4 to
82fc59c
Compare
Add `RequiresClientAuthorization()` method to the `Tool` interface. Currently returning false for all tools. Supports: #1067
7c99781 to
a8a544f
Compare
…leapis#1217) Add `RequiresClientAuthorization()` method to the `Tool` interface. Currently returning false for all tools. Supports: googleapis#1067 b1abbeb
|
🧨 Preview deployments removed. |
…hrough (googleapis#1067) Support end-user credential passthrough with the BigQuery source and the `bigquery-sql` tool. Support for other BQ tools will be added in subsequent PRs. Issue: googleapis#813 650e2e2
🤖 I have created a release *beep* *boop* --- ## [0.13.0](v0.12.0...v0.13.0) (2025-08-27) ### ⚠ BREAKING CHANGES * **prebuilt/alloydb:** Add bearer token support for alloydb-wait-for-operation ([#1183](#1183)) ### Features * Add capability to set default for environment variable in config ([#1248](#1248)) ([5bcd52e](5bcd52e)) * **firebird:** Add Firebird SQL 2.5+ source and tool ([#1011](#1011)) ([4f6b806](4f6b806)) * **oceanbase:** Add Oceanbase source and tool ([#895](#895)) ([6fc4982](6fc4982)) * **server/mcp:** Support `ping` mechanism ([#1178](#1178)) ([5dcc66c](5dcc66c)) * **server:** Fail-fast on environment variable substitution ([#1177](#1177)) ([212aaba](212aaba)) * **server:** Implement Tool call auth error propagation ([#1235](#1235)) ([b94a021](b94a021)) * **sources/bigquery:** Add support for user-credential passthrough ([#1067](#1067)) ([650e2e2](650e2e2)) * **tool/looker:** Add support for `description` field in looker tool ([#1199](#1199)) ([97f0dd2](97f0dd2)) * **tools/bigquery-ask-data-insights:** Add bigquery `ask-data-insights` tool ([#932](#932)) ([7651357](7651357)) * **tools/bigquery-forecast:** Add bigqueryforecast tool ([#1148](#1148)) ([2ad0ccf](2ad0ccf)) * **tools/firestore-add-documents:** Add firestore-add-documents tool ([#1107](#1107)) ([ee4a70a](ee4a70a)) * **tools/firestore-update-document:** Add firestore-update-document tool ([#1191](#1191)) ([0010123](0010123)) * **tools/looker:** Control over whether hidden objects are surfaced ([#1222](#1222)) ([bc91559](bc91559)) * **trino:** Add Trino source and tools ([#948](#948)) ([7dd123b](7dd123b)) ### Bug Fixes * **tools/looker:** Lookergetdashboards uses proper Authorized helper func ([#1255](#1255)) ([00866bc](00866bc)) * **tools/mongodb-find-one:** ProjectPayload unmarshaling ([#1167](#1167)) ([8ea6a98](8ea6a98)) * **tools/mysql:** Fix encoded text for mysql ([#1161](#1161)) ([a37cfa8](a37cfa8)), closes [#840](#840) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- ## [0.13.0](v0.12.0...v0.13.0) (2025-08-27) ### ⚠ BREAKING CHANGES * **prebuilt/alloydb:** Add bearer token support for alloydb-wait-for-operation ([#1183](#1183)) ### Features * Add capability to set default for environment variable in config ([#1248](#1248)) ([5bcd52e](5bcd52e)) * **firebird:** Add Firebird SQL 2.5+ source and tool ([#1011](#1011)) ([4f6b806](4f6b806)) * **oceanbase:** Add Oceanbase source and tool ([#895](#895)) ([6fc4982](6fc4982)) * **server/mcp:** Support `ping` mechanism ([#1178](#1178)) ([5dcc66c](5dcc66c)) * **server:** Fail-fast on environment variable substitution ([#1177](#1177)) ([212aaba](212aaba)) * **server:** Implement Tool call auth error propagation ([#1235](#1235)) ([b94a021](b94a021)) * **sources/bigquery:** Add support for user-credential passthrough ([#1067](#1067)) ([650e2e2](650e2e2)) * **tool/looker:** Add support for `description` field in looker tool ([#1199](#1199)) ([97f0dd2](97f0dd2)) * **tools/bigquery-ask-data-insights:** Add bigquery `ask-data-insights` tool ([#932](#932)) ([7651357](7651357)) * **tools/bigquery-forecast:** Add bigqueryforecast tool ([#1148](#1148)) ([2ad0ccf](2ad0ccf)) * **tools/firestore-add-documents:** Add firestore-add-documents tool ([#1107](#1107)) ([ee4a70a](ee4a70a)) * **tools/firestore-update-document:** Add firestore-update-document tool ([#1191](#1191)) ([0010123](0010123)) * **tools/looker:** Control over whether hidden objects are surfaced ([#1222](#1222)) ([bc91559](bc91559)) * **trino:** Add Trino source and tools ([#948](#948)) ([7dd123b](7dd123b)) ### Bug Fixes * **tools/looker:** Lookergetdashboards uses proper Authorized helper func ([#1255](#1255)) ([00866bc](00866bc)) * **tools/mongodb-find-one:** ProjectPayload unmarshaling ([#1167](#1167)) ([8ea6a98](8ea6a98)) * **tools/mysql:** Fix encoded text for mysql ([#1161](#1161)) ([a37cfa8](a37cfa8)), closes [#840](#840) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 1a6dfe8
🤖 I have created a release *beep* *boop* --- ## [0.13.0](googleapis/genai-toolbox@v0.12.0...v0.13.0) (2025-08-27) ### ⚠ BREAKING CHANGES * **prebuilt/alloydb:** Add bearer token support for alloydb-wait-for-operation ([googleapis#1183](googleapis#1183)) ### Features * Add capability to set default for environment variable in config ([googleapis#1248](googleapis#1248)) ([5bcd52e](googleapis@5bcd52e)) * **firebird:** Add Firebird SQL 2.5+ source and tool ([googleapis#1011](googleapis#1011)) ([4f6b806](googleapis@4f6b806)) * **oceanbase:** Add Oceanbase source and tool ([googleapis#895](googleapis#895)) ([6fc4982](googleapis@6fc4982)) * **server/mcp:** Support `ping` mechanism ([googleapis#1178](googleapis#1178)) ([5dcc66c](googleapis@5dcc66c)) * **server:** Fail-fast on environment variable substitution ([googleapis#1177](googleapis#1177)) ([212aaba](googleapis@212aaba)) * **server:** Implement Tool call auth error propagation ([googleapis#1235](googleapis#1235)) ([b94a021](googleapis@b94a021)) * **sources/bigquery:** Add support for user-credential passthrough ([googleapis#1067](googleapis#1067)) ([650e2e2](googleapis@650e2e2)) * **tool/looker:** Add support for `description` field in looker tool ([googleapis#1199](googleapis#1199)) ([97f0dd2](googleapis@97f0dd2)) * **tools/bigquery-ask-data-insights:** Add bigquery `ask-data-insights` tool ([googleapis#932](googleapis#932)) ([7651357](googleapis@7651357)) * **tools/bigquery-forecast:** Add bigqueryforecast tool ([googleapis#1148](googleapis#1148)) ([2ad0ccf](googleapis@2ad0ccf)) * **tools/firestore-add-documents:** Add firestore-add-documents tool ([googleapis#1107](googleapis#1107)) ([ee4a70a](googleapis@ee4a70a)) * **tools/firestore-update-document:** Add firestore-update-document tool ([googleapis#1191](googleapis#1191)) ([0010123](googleapis@0010123)) * **tools/looker:** Control over whether hidden objects are surfaced ([googleapis#1222](googleapis#1222)) ([bc91559](googleapis@bc91559)) * **trino:** Add Trino source and tools ([googleapis#948](googleapis#948)) ([7dd123b](googleapis@7dd123b)) ### Bug Fixes * **tools/looker:** Lookergetdashboards uses proper Authorized helper func ([googleapis#1255](googleapis#1255)) ([00866bc](googleapis@00866bc)) * **tools/mongodb-find-one:** ProjectPayload unmarshaling ([googleapis#1167](googleapis#1167)) ([8ea6a98](googleapis@8ea6a98)) * **tools/mysql:** Fix encoded text for mysql ([googleapis#1161](googleapis#1161)) ([a37cfa8](googleapis@a37cfa8)), closes [googleapis#840](googleapis#840) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> 1a6dfe8
Support end-user credential passthrough with the BigQuery source and the
bigquery-sqltool.Support for other BQ tools will be added in subsequent PRs.
Issue: #813