Skip to content

feat(source/bigquery): add service account impersonation support for bigquery#1641

Merged
drstrangelooker merged 7 commits intogoogleapis:mainfrom
Gravity-Foundation:google/feat/bigquery_sa_impersonation
Oct 31, 2025
Merged

feat(source/bigquery): add service account impersonation support for bigquery#1641
drstrangelooker merged 7 commits intogoogleapis:mainfrom
Gravity-Foundation:google/feat/bigquery_sa_impersonation

Conversation

@jcpistell-gf
Copy link
Copy Markdown
Contributor

@jcpistell-gf jcpistell-gf commented Oct 6, 2025

Description

This change adds service account impersonation support to Bigquery. Users can now optionally supply an impersonateServiceAccount field in their bigquery-source config to enable impersonation.


Should include a concise description of the changes (bug or feature), it's
impact, along with a summary of the solution

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:

  • Make sure you reviewed
    CONTRIBUTING.md
  • Make sure to open an issue as a
    bug/issue
    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 #906

@jcpistell-gf jcpistell-gf requested a review from a team October 6, 2025 22:46
@duwenxin99
Copy link
Copy Markdown
Contributor

@Genesis929, could you take a loot at this? Thank you!

@Genesis929 Genesis929 self-requested a review October 13, 2025 20:08
@jcpistell-gf
Copy link
Copy Markdown
Contributor Author

I've addressed the PR comments but I don't seem to be able to trigger CI. Could a repo maintainer help out here?

@jcpistell-gf
Copy link
Copy Markdown
Contributor Author

/gcbrun

1 similar comment
@drstrangelooker
Copy link
Copy Markdown
Contributor

/gcbrun

@kurtisvg kurtisvg added the tests: run Label to trigger Github Action tests. label Oct 29, 2025
@kurtisvg
Copy link
Copy Markdown
Collaborator

/gcbrun

@github-actions github-actions bot removed the tests: run Label to trigger Github Action tests. label Oct 29, 2025
@drstrangelooker drstrangelooker added the tests: run Label to trigger Github Action tests. label Oct 29, 2025
@github-actions github-actions bot removed the tests: run Label to trigger Github Action tests. label Oct 29, 2025
@drstrangelooker
Copy link
Copy Markdown
Contributor

/gcbrun

1 similar comment
@drstrangelooker
Copy link
Copy Markdown
Contributor

/gcbrun

@jcpistell-gf
Copy link
Copy Markdown
Contributor Author

How are we doing here folks? I see we're now getting different integration test failures, but i'm still unable to access any logs or retrigger the tests myself.

@jcpistell-gf
Copy link
Copy Markdown
Contributor Author

fwiw I just resynced to main... could a maintainer trigger the tests again?

@drstrangelooker
Copy link
Copy Markdown
Contributor

/gcbrun

@drstrangelooker drstrangelooker added the tests: run Label to trigger Github Action tests. label Oct 30, 2025
@github-actions github-actions bot removed the tests: run Label to trigger Github Action tests. label Oct 30, 2025
@jcpistell-gf
Copy link
Copy Markdown
Contributor Author

woohoo! looks like we're through testing - could i get a stamp please?

github-actions bot pushed a commit to Sathwikshetty16/genai-toolbox that referenced this pull request Nov 10, 2025
🤖 I have created a release *beep* *boop*
---

##
[0.19.1](googleapis/mcp-toolbox@v0.19.0...v0.19.1)
(2025-11-07)

### ⚠ BREAKING CHANGES

* **tools/alloydbainl:** update AlloyDB AI NL statement order
([googleapis#1753](googleapis#1753))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([googleapis#1675](googleapis#1675))
([ef28e39](googleapis@ef28e39))
* **tools/bigquery-get-dataset-info:** add allowed dataset support
([googleapis#1654](googleapis#1654))

### Features

* Support `excludeValues` for parameters
([googleapis#1818](googleapis#1818))
([a8e98dc](googleapis@a8e98dc))
* **elasticsearch:** Add Elasticsearch source and tools
([googleapis#1109](googleapis#1109))
([5367285](googleapis@5367285))
* **mindsdb:** Add MindsDB Source and Tools
([googleapis#878](googleapis#878))
([1b2cca9](googleapis@1b2cca9))
* **cloud-healthcare:** Add support for healthcare source, tool and
prebuilt config
([googleapis#1853](googleapis#1853))
([1f833fb](googleapis@1f833fb))
* **singlestore:** Add SingleStore Source and Tools
([googleapis#1333](googleapis#1333))
([40b9dba](googleapis@40b9dba))
* **source/bigquery:** Add client cache for user-passed credentials
([googleapis#1119](googleapis#1119))
([cf7012a](googleapis@cf7012a))
* **source/bigquery:** Add service account impersonation support for
bigquery
([googleapis#1641](googleapis#1641))
([e09d182](googleapis@e09d182))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([googleapis#1675](googleapis#1675))
([ef28e39](googleapis@ef28e39))
* **tools/bigquery-get-dataset-info:** Add allowed dataset support
([googleapis#1654](googleapis#1654))
([a2006ad](googleapis@a2006ad))
* **tools/looker-run-dashboard:** New `run_dashboard` tool
([googleapis#1858](googleapis#1858))
([30857c2](googleapis@30857c2))
* **tools/looker-run-look:** Modify run_look to show query origin
([googleapis#1860](googleapis#1860))
([991e539](googleapis@991e539))
* **tools/looker:** Tools to retrieve the connections, schemas,
databases, and column metadata from a looker system.
([googleapis#1804](googleapis#1804))
([d7d1b03](googleapis@d7d1b03))
* **tools/mongodb:** Make MongoDB tools' `filterParams` field optional
([googleapis#1614](googleapis#1614))
([208ab92](googleapis@208ab92))
* **tools/neo4j-execute-cypher:** Add dry_run parameter to validate
Cypher queries
([googleapis#1769](googleapis#1769))
([f475da6](googleapis@f475da6))
* **tools/postgres-list-schemas:** Add new postgres-list-schemas tool
([googleapis#1741](googleapis#1741))
([1a19cac](googleapis@1a19cac))
* **tools/postgres-list-views:** Add new postgres-list-views tool
([googleapis#1709](googleapis#1709))
([e8c7fe0](googleapis@e8c7fe0))
* **tools/serverless-spark:** Add cancel-batch tool
([googleapis#1827](https://github.com/googleapis/genai-toolbox/pull/1827))([2881683](https://github.com/googleapis/genai-toolbox/commit/28816832265250de97d84e6ba38bf6c35e040796))
* **tools/serverless-spark:** Add get_batch tool
([googleapis#1783](https://github.com/googleapis/genai-toolbox/pull/1783))([7ad1072](https://github.com/googleapis/genai-toolbox/commit/7ad10720b4638324cd77d8aa410cbd1ccf0cc93f))
* **tools/serverless-spark:** Add serverless-spark source with
list_batches tool
([googleapis#1690](https://github.com/googleapis/genai-toolbox/pull/1690))([816dbce](https://github.com/googleapis/genai-toolbox/commit/816dbce268392046e54767732bd31488c6e89bdb))

### Bug Fixes

* Bigquery execute_sql to assign values to array
([googleapis#1884](googleapis#1884))
([559e2a2](googleapis@559e2a2))
* **cloudmonitoring:** Populate `authRequired` in tool manifest
([googleapis#1800](googleapis#1800))
([954152c](googleapis@954152c))
* Update debug logs statements
([googleapis#1828](googleapis#1828))
([3cff915](googleapis@3cff915))
* Instructions to quote filters that include commas
([googleapis#1794](googleapis#1794))
([4b01720](googleapis@4b01720))
* **source/cloud-sql-mssql:** Remove `ipAddress` field
([googleapis#1822](googleapis#1822))
([38d535d](googleapis@38d535d))
* **tools/alloydbainl:** AlloyDB AI NL execute_sql statement order
([googleapis#1753](googleapis#1753))
([9723cad](googleapis@9723cad))
* **tools/postgres-execute-sql:** Do not ignore SQL failure
([googleapis#1829](googleapis#1829))
([8984287](googleapis@8984287))

---
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> cd8d68d
github-actions bot pushed a commit to Sathwikshetty16/genai-toolbox that referenced this pull request Nov 10, 2025
🤖 I have created a release *beep* *boop*
---

##
[0.19.1](googleapis/mcp-toolbox@v0.19.0...v0.19.1)
(2025-11-07)

### ⚠ BREAKING CHANGES

* **tools/alloydbainl:** update AlloyDB AI NL statement order
([googleapis#1753](googleapis#1753))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([googleapis#1675](googleapis#1675))
([ef28e39](googleapis@ef28e39))
* **tools/bigquery-get-dataset-info:** add allowed dataset support
([googleapis#1654](googleapis#1654))

### Features

* Support `excludeValues` for parameters
([googleapis#1818](googleapis#1818))
([a8e98dc](googleapis@a8e98dc))
* **elasticsearch:** Add Elasticsearch source and tools
([googleapis#1109](googleapis#1109))
([5367285](googleapis@5367285))
* **mindsdb:** Add MindsDB Source and Tools
([googleapis#878](googleapis#878))
([1b2cca9](googleapis@1b2cca9))
* **cloud-healthcare:** Add support for healthcare source, tool and
prebuilt config
([googleapis#1853](googleapis#1853))
([1f833fb](googleapis@1f833fb))
* **singlestore:** Add SingleStore Source and Tools
([googleapis#1333](googleapis#1333))
([40b9dba](googleapis@40b9dba))
* **source/bigquery:** Add client cache for user-passed credentials
([googleapis#1119](googleapis#1119))
([cf7012a](googleapis@cf7012a))
* **source/bigquery:** Add service account impersonation support for
bigquery
([googleapis#1641](googleapis#1641))
([e09d182](googleapis@e09d182))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([googleapis#1675](googleapis#1675))
([ef28e39](googleapis@ef28e39))
* **tools/bigquery-get-dataset-info:** Add allowed dataset support
([googleapis#1654](googleapis#1654))
([a2006ad](googleapis@a2006ad))
* **tools/looker-run-dashboard:** New `run_dashboard` tool
([googleapis#1858](googleapis#1858))
([30857c2](googleapis@30857c2))
* **tools/looker-run-look:** Modify run_look to show query origin
([googleapis#1860](googleapis#1860))
([991e539](googleapis@991e539))
* **tools/looker:** Tools to retrieve the connections, schemas,
databases, and column metadata from a looker system.
([googleapis#1804](googleapis#1804))
([d7d1b03](googleapis@d7d1b03))
* **tools/mongodb:** Make MongoDB tools' `filterParams` field optional
([googleapis#1614](googleapis#1614))
([208ab92](googleapis@208ab92))
* **tools/neo4j-execute-cypher:** Add dry_run parameter to validate
Cypher queries
([googleapis#1769](googleapis#1769))
([f475da6](googleapis@f475da6))
* **tools/postgres-list-schemas:** Add new postgres-list-schemas tool
([googleapis#1741](googleapis#1741))
([1a19cac](googleapis@1a19cac))
* **tools/postgres-list-views:** Add new postgres-list-views tool
([googleapis#1709](googleapis#1709))
([e8c7fe0](googleapis@e8c7fe0))
* **tools/serverless-spark:** Add cancel-batch tool
([googleapis#1827](https://github.com/googleapis/genai-toolbox/pull/1827))([2881683](https://github.com/googleapis/genai-toolbox/commit/28816832265250de97d84e6ba38bf6c35e040796))
* **tools/serverless-spark:** Add get_batch tool
([googleapis#1783](https://github.com/googleapis/genai-toolbox/pull/1783))([7ad1072](https://github.com/googleapis/genai-toolbox/commit/7ad10720b4638324cd77d8aa410cbd1ccf0cc93f))
* **tools/serverless-spark:** Add serverless-spark source with
list_batches tool
([googleapis#1690](https://github.com/googleapis/genai-toolbox/pull/1690))([816dbce](https://github.com/googleapis/genai-toolbox/commit/816dbce268392046e54767732bd31488c6e89bdb))

### Bug Fixes

* Bigquery execute_sql to assign values to array
([googleapis#1884](googleapis#1884))
([559e2a2](googleapis@559e2a2))
* **cloudmonitoring:** Populate `authRequired` in tool manifest
([googleapis#1800](googleapis#1800))
([954152c](googleapis@954152c))
* Update debug logs statements
([googleapis#1828](googleapis#1828))
([3cff915](googleapis@3cff915))
* Instructions to quote filters that include commas
([googleapis#1794](googleapis#1794))
([4b01720](googleapis@4b01720))
* **source/cloud-sql-mssql:** Remove `ipAddress` field
([googleapis#1822](googleapis#1822))
([38d535d](googleapis@38d535d))
* **tools/alloydbainl:** AlloyDB AI NL execute_sql statement order
([googleapis#1753](googleapis#1753))
([9723cad](googleapis@9723cad))
* **tools/postgres-execute-sql:** Do not ignore SQL failure
([googleapis#1829](googleapis#1829))
([8984287](googleapis@8984287))

---
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> cd8d68d
rahulpinto19 pushed a commit that referenced this pull request Nov 18, 2025
…bigquery (#1641)

## Description

This change adds service account impersonation support to Bigquery.
Users can now optionally supply an `impersonateServiceAccount` field in
their `bigquery-source` config to enable impersonation.

---
> Should include a concise description of the changes (bug or feature),
it's
> impact, along with a summary of the solution

## 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

🛠️ Fixes #906
rahulpinto19 pushed a commit that referenced this pull request Nov 18, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.19.0](v0.18.0...v0.19.0)
(2025-11-07)


### ⚠ BREAKING CHANGES

* **tools/alloydbainl:** update AlloyDB AI NL statement order
([#1753](#1753))
* **tools/bigquery-get-dataset-info:** add allowed dataset support
([#1654](#1654))

### Features

* Support `excludeValues` for parameters
([#1818](#1818))
([a8e98dc](a8e98dc))
* **elasticsearch:** Add Elasticsearch source and tools
([#1109](#1109))
([5367285](5367285))
* **mindsdb:** Add MindsDB Source and Tools
([#878](#878))
([1b2cca9](1b2cca9))
* **cloud-healthcare:** Add support for healthcare source, tool and
prebuilt config
([#1853](#1853))
([1f833fb](1f833fb))
* **singlestore:** Add SingleStore Source and Tools
([#1333](#1333))
([40b9dba](40b9dba))
* **source/bigquery:** Add client cache for user-passed credentials
([#1119](#1119))
([cf7012a](cf7012a))
* **source/bigquery:** Add service account impersonation support for
bigquery
([#1641](#1641))
([e09d182](e09d182))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([#1675](#1675))
([ef28e39](ef28e39))
* **tools/bigquery-get-dataset-info:** Add allowed dataset support
([#1654](#1654))
([a2006ad](a2006ad))
* **tools/looker-run-dashboard:** New `run_dashboard` tool
([#1858](#1858))
([30857c2](30857c2))
* **tools/looker-run-look:** Modify run_look to show query origin
([#1860](#1860))
([991e539](991e539))
* **tools/looker:** Tools to retrieve the connections, schemas,
databases, and column metadata from a looker system.
([#1804](#1804))
([d7d1b03](d7d1b03))
* **tools/mongodb:** Make MongoDB tools' `filterParams` field optional
([#1614](#1614))
([208ab92](208ab92))
* **tools/neo4j-execute-cypher:** Add dry_run parameter to validate
Cypher queries
([#1769](#1769))
([f475da6](f475da6))
* **tools/postgres-list-schemas:** Add new postgres-list-schemas tool
([#1741](#1741))
([1a19cac](1a19cac))
* **tools/postgres-list-views:** Add new postgres-list-views tool
([#1709](#1709))
([e8c7fe0](e8c7fe0))
* **tools/serverless-spark:** Add cancel-batch tool
([2881683](2881683))
* **tools/serverless-spark:** Add get_batch tool
([7ad1072](7ad1072))
* **tools/serverless-spark:** Add serverless-spark source with
list_batches tool
([816dbce](816dbce))


### Bug Fixes

* Bigquery execute_sql to assign values to array
([#1884](#1884))
([559e2a2](559e2a2))
* **cloudmonitoring:** Populate `authRequired` in tool manifest
([#1800](#1800))
([954152c](954152c))
* Update debug logs statements
([#1828](#1828))
([3cff915](3cff915))
* Instructions to quote filters that include commas
([#1794](#1794))
([4b01720](4b01720))
* **source/cloud-sql-mssql:** Remove `ipAddress` field
([#1822](#1822))
([38d535d](38d535d))
* **tools/alloydbainl:** AlloyDB AI NL execute_sql statement order
([#1753](#1753))
([9723cad](9723cad))
* **tools/postgres-execute-sql:** Do not ignore SQL failure
([#1829](#1829))
([8984287](8984287))


---
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>
rahulpinto19 pushed a commit that referenced this pull request Nov 18, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.19.1](v0.19.0...v0.19.1)
(2025-11-07)


### ⚠ BREAKING CHANGES

* **tools/alloydbainl:** update AlloyDB AI NL statement order
([#1753](#1753))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([#1675](#1675))
([ef28e39](ef28e39))
* **tools/bigquery-get-dataset-info:** add allowed dataset support
([#1654](#1654))

### Features

* Support `excludeValues` for parameters
([#1818](#1818))
([a8e98dc](a8e98dc))
* **elasticsearch:** Add Elasticsearch source and tools
([#1109](#1109))
([5367285](5367285))
* **mindsdb:** Add MindsDB Source and Tools
([#878](#878))
([1b2cca9](1b2cca9))
* **cloud-healthcare:** Add support for healthcare source, tool and
prebuilt config
([#1853](#1853))
([1f833fb](1f833fb))
* **singlestore:** Add SingleStore Source and Tools
([#1333](#1333))
([40b9dba](40b9dba))
* **source/bigquery:** Add client cache for user-passed credentials
([#1119](#1119))
([cf7012a](cf7012a))
* **source/bigquery:** Add service account impersonation support for
bigquery
([#1641](#1641))
([e09d182](e09d182))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([#1675](#1675))
([ef28e39](ef28e39))
* **tools/bigquery-get-dataset-info:** Add allowed dataset support
([#1654](#1654))
([a2006ad](a2006ad))
* **tools/looker-run-dashboard:** New `run_dashboard` tool
([#1858](#1858))
([30857c2](30857c2))
* **tools/looker-run-look:** Modify run_look to show query origin
([#1860](#1860))
([991e539](991e539))
* **tools/looker:** Tools to retrieve the connections, schemas,
databases, and column metadata from a looker system.
([#1804](#1804))
([d7d1b03](d7d1b03))
* **tools/mongodb:** Make MongoDB tools' `filterParams` field optional
([#1614](#1614))
([208ab92](208ab92))
* **tools/neo4j-execute-cypher:** Add dry_run parameter to validate
Cypher queries
([#1769](#1769))
([f475da6](f475da6))
* **tools/postgres-list-schemas:** Add new postgres-list-schemas tool
([#1741](#1741))
([1a19cac](1a19cac))
* **tools/postgres-list-views:** Add new postgres-list-views tool
([#1709](#1709))
([e8c7fe0](e8c7fe0))
* **tools/serverless-spark:** Add cancel-batch tool
([#1827](https://github.com/googleapis/genai-toolbox/pull/1827))([2881683](https://github.com/googleapis/genai-toolbox/commit/28816832265250de97d84e6ba38bf6c35e040796))
* **tools/serverless-spark:** Add get_batch tool
([#1783](https://github.com/googleapis/genai-toolbox/pull/1783))([7ad1072](https://github.com/googleapis/genai-toolbox/commit/7ad10720b4638324cd77d8aa410cbd1ccf0cc93f))
* **tools/serverless-spark:** Add serverless-spark source with
list_batches tool
([#1690](https://github.com/googleapis/genai-toolbox/pull/1690))([816dbce](https://github.com/googleapis/genai-toolbox/commit/816dbce268392046e54767732bd31488c6e89bdb))


### Bug Fixes

* Bigquery execute_sql to assign values to array
([#1884](#1884))
([559e2a2](559e2a2))
* **cloudmonitoring:** Populate `authRequired` in tool manifest
([#1800](#1800))
([954152c](954152c))
* Update debug logs statements
([#1828](#1828))
([3cff915](3cff915))
* Instructions to quote filters that include commas
([#1794](#1794))
([4b01720](4b01720))
* **source/cloud-sql-mssql:** Remove `ipAddress` field
([#1822](#1822))
([38d535d](38d535d))
* **tools/alloydbainl:** AlloyDB AI NL execute_sql statement order
([#1753](#1753))
([9723cad](9723cad))
* **tools/postgres-execute-sql:** Do not ignore SQL failure
([#1829](#1829))
([8984287](8984287))

---
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>
NightStack15 added a commit to NightStack15/googleapis-_-genai-toolbox that referenced this pull request Mar 20, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.19.0](googleapis/mcp-toolbox@v0.18.0...v0.19.0)
(2025-11-07)


### ⚠ BREAKING CHANGES

* **tools/alloydbainl:** update AlloyDB AI NL statement order
([#1753](googleapis/mcp-toolbox#1753))
* **tools/bigquery-get-dataset-info:** add allowed dataset support
([#1654](googleapis/mcp-toolbox#1654))

### Features

* Support `excludeValues` for parameters
([#1818](googleapis/mcp-toolbox#1818))
([a8e98dc](googleapis/mcp-toolbox@a8e98dc))
* **elasticsearch:** Add Elasticsearch source and tools
([#1109](googleapis/mcp-toolbox#1109))
([5367285](googleapis/mcp-toolbox@5367285))
* **mindsdb:** Add MindsDB Source and Tools
([#878](googleapis/mcp-toolbox#878))
([1b2cca9](googleapis/mcp-toolbox@1b2cca9))
* **cloud-healthcare:** Add support for healthcare source, tool and
prebuilt config
([#1853](googleapis/mcp-toolbox#1853))
([1f833fb](googleapis/mcp-toolbox@1f833fb))
* **singlestore:** Add SingleStore Source and Tools
([#1333](googleapis/mcp-toolbox#1333))
([40b9dba](googleapis/mcp-toolbox@40b9dba))
* **source/bigquery:** Add client cache for user-passed credentials
([#1119](googleapis/mcp-toolbox#1119))
([cf7012a](googleapis/mcp-toolbox@cf7012a))
* **source/bigquery:** Add service account impersonation support for
bigquery
([#1641](googleapis/mcp-toolbox#1641))
([e09d182](googleapis/mcp-toolbox@e09d182))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([#1675](googleapis/mcp-toolbox#1675))
([ef28e39](googleapis/mcp-toolbox@ef28e39))
* **tools/bigquery-get-dataset-info:** Add allowed dataset support
([#1654](googleapis/mcp-toolbox#1654))
([a2006ad](googleapis/mcp-toolbox@a2006ad))
* **tools/looker-run-dashboard:** New `run_dashboard` tool
([#1858](googleapis/mcp-toolbox#1858))
([30857c2](googleapis/mcp-toolbox@30857c2))
* **tools/looker-run-look:** Modify run_look to show query origin
([#1860](googleapis/mcp-toolbox#1860))
([991e539](googleapis/mcp-toolbox@991e539))
* **tools/looker:** Tools to retrieve the connections, schemas,
databases, and column metadata from a looker system.
([#1804](googleapis/mcp-toolbox#1804))
([d7d1b03](googleapis/mcp-toolbox@d7d1b03))
* **tools/mongodb:** Make MongoDB tools' `filterParams` field optional
([#1614](googleapis/mcp-toolbox#1614))
([208ab92](googleapis/mcp-toolbox@208ab92))
* **tools/neo4j-execute-cypher:** Add dry_run parameter to validate
Cypher queries
([#1769](googleapis/mcp-toolbox#1769))
([f475da6](googleapis/mcp-toolbox@f475da6))
* **tools/postgres-list-schemas:** Add new postgres-list-schemas tool
([#1741](googleapis/mcp-toolbox#1741))
([1a19cac](googleapis/mcp-toolbox@1a19cac))
* **tools/postgres-list-views:** Add new postgres-list-views tool
([#1709](googleapis/mcp-toolbox#1709))
([e8c7fe0](googleapis/mcp-toolbox@e8c7fe0))
* **tools/serverless-spark:** Add cancel-batch tool
([2881683](googleapis/mcp-toolbox@2881683))
* **tools/serverless-spark:** Add get_batch tool
([7ad1072](googleapis/mcp-toolbox@7ad1072))
* **tools/serverless-spark:** Add serverless-spark source with
list_batches tool
([816dbce](googleapis/mcp-toolbox@816dbce))


### Bug Fixes

* Bigquery execute_sql to assign values to array
([#1884](googleapis/mcp-toolbox#1884))
([559e2a2](googleapis/mcp-toolbox@559e2a2))
* **cloudmonitoring:** Populate `authRequired` in tool manifest
([#1800](googleapis/mcp-toolbox#1800))
([954152c](googleapis/mcp-toolbox@954152c))
* Update debug logs statements
([#1828](googleapis/mcp-toolbox#1828))
([3cff915](googleapis/mcp-toolbox@3cff915))
* Instructions to quote filters that include commas
([#1794](googleapis/mcp-toolbox#1794))
([4b01720](googleapis/mcp-toolbox@4b01720))
* **source/cloud-sql-mssql:** Remove `ipAddress` field
([#1822](googleapis/mcp-toolbox#1822))
([38d535d](googleapis/mcp-toolbox@38d535d))
* **tools/alloydbainl:** AlloyDB AI NL execute_sql statement order
([#1753](googleapis/mcp-toolbox#1753))
([9723cad](googleapis/mcp-toolbox@9723cad))
* **tools/postgres-execute-sql:** Do not ignore SQL failure
([#1829](googleapis/mcp-toolbox#1829))
([8984287](googleapis/mcp-toolbox@8984287))


---
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>
NightStack15 added a commit to NightStack15/googleapis-_-genai-toolbox that referenced this pull request Mar 20, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.19.1](googleapis/mcp-toolbox@v0.19.0...v0.19.1)
(2025-11-07)


### ⚠ BREAKING CHANGES

* **tools/alloydbainl:** update AlloyDB AI NL statement order
([#1753](googleapis/mcp-toolbox#1753))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([#1675](googleapis/mcp-toolbox#1675))
([ef28e39](googleapis/mcp-toolbox@ef28e39))
* **tools/bigquery-get-dataset-info:** add allowed dataset support
([#1654](googleapis/mcp-toolbox#1654))

### Features

* Support `excludeValues` for parameters
([#1818](googleapis/mcp-toolbox#1818))
([a8e98dc](googleapis/mcp-toolbox@a8e98dc))
* **elasticsearch:** Add Elasticsearch source and tools
([#1109](googleapis/mcp-toolbox#1109))
([5367285](googleapis/mcp-toolbox@5367285))
* **mindsdb:** Add MindsDB Source and Tools
([#878](googleapis/mcp-toolbox#878))
([1b2cca9](googleapis/mcp-toolbox@1b2cca9))
* **cloud-healthcare:** Add support for healthcare source, tool and
prebuilt config
([#1853](googleapis/mcp-toolbox#1853))
([1f833fb](googleapis/mcp-toolbox@1f833fb))
* **singlestore:** Add SingleStore Source and Tools
([#1333](googleapis/mcp-toolbox#1333))
([40b9dba](googleapis/mcp-toolbox@40b9dba))
* **source/bigquery:** Add client cache for user-passed credentials
([#1119](googleapis/mcp-toolbox#1119))
([cf7012a](googleapis/mcp-toolbox@cf7012a))
* **source/bigquery:** Add service account impersonation support for
bigquery
([#1641](googleapis/mcp-toolbox#1641))
([e09d182](googleapis/mcp-toolbox@e09d182))
* **tools/bigquery-analyze-contribution:** Add allowed dataset support
([#1675](googleapis/mcp-toolbox#1675))
([ef28e39](googleapis/mcp-toolbox@ef28e39))
* **tools/bigquery-get-dataset-info:** Add allowed dataset support
([#1654](googleapis/mcp-toolbox#1654))
([a2006ad](googleapis/mcp-toolbox@a2006ad))
* **tools/looker-run-dashboard:** New `run_dashboard` tool
([#1858](googleapis/mcp-toolbox#1858))
([30857c2](googleapis/mcp-toolbox@30857c2))
* **tools/looker-run-look:** Modify run_look to show query origin
([#1860](googleapis/mcp-toolbox#1860))
([991e539](googleapis/mcp-toolbox@991e539))
* **tools/looker:** Tools to retrieve the connections, schemas,
databases, and column metadata from a looker system.
([#1804](googleapis/mcp-toolbox#1804))
([d7d1b03](googleapis/mcp-toolbox@d7d1b03))
* **tools/mongodb:** Make MongoDB tools' `filterParams` field optional
([#1614](googleapis/mcp-toolbox#1614))
([208ab92](googleapis/mcp-toolbox@208ab92))
* **tools/neo4j-execute-cypher:** Add dry_run parameter to validate
Cypher queries
([#1769](googleapis/mcp-toolbox#1769))
([f475da6](googleapis/mcp-toolbox@f475da6))
* **tools/postgres-list-schemas:** Add new postgres-list-schemas tool
([#1741](googleapis/mcp-toolbox#1741))
([1a19cac](googleapis/mcp-toolbox@1a19cac))
* **tools/postgres-list-views:** Add new postgres-list-views tool
([#1709](googleapis/mcp-toolbox#1709))
([e8c7fe0](googleapis/mcp-toolbox@e8c7fe0))
* **tools/serverless-spark:** Add cancel-batch tool
([#1827](https://github.com/googleapis/genai-toolbox/pull/1827))([2881683](https://github.com/googleapis/genai-toolbox/commit/28816832265250de97d84e6ba38bf6c35e040796))
* **tools/serverless-spark:** Add get_batch tool
([#1783](https://github.com/googleapis/genai-toolbox/pull/1783))([7ad1072](https://github.com/googleapis/genai-toolbox/commit/7ad10720b4638324cd77d8aa410cbd1ccf0cc93f))
* **tools/serverless-spark:** Add serverless-spark source with
list_batches tool
([#1690](https://github.com/googleapis/genai-toolbox/pull/1690))([816dbce](https://github.com/googleapis/genai-toolbox/commit/816dbce268392046e54767732bd31488c6e89bdb))


### Bug Fixes

* Bigquery execute_sql to assign values to array
([#1884](googleapis/mcp-toolbox#1884))
([559e2a2](googleapis/mcp-toolbox@559e2a2))
* **cloudmonitoring:** Populate `authRequired` in tool manifest
([#1800](googleapis/mcp-toolbox#1800))
([954152c](googleapis/mcp-toolbox@954152c))
* Update debug logs statements
([#1828](googleapis/mcp-toolbox#1828))
([3cff915](googleapis/mcp-toolbox@3cff915))
* Instructions to quote filters that include commas
([#1794](googleapis/mcp-toolbox#1794))
([4b01720](googleapis/mcp-toolbox@4b01720))
* **source/cloud-sql-mssql:** Remove `ipAddress` field
([#1822](googleapis/mcp-toolbox#1822))
([38d535d](googleapis/mcp-toolbox@38d535d))
* **tools/alloydbainl:** AlloyDB AI NL execute_sql statement order
([#1753](googleapis/mcp-toolbox#1753))
([9723cad](googleapis/mcp-toolbox@9723cad))
* **tools/postgres-execute-sql:** Do not ignore SQL failure
([#1829](googleapis/mcp-toolbox#1829))
([8984287](googleapis/mcp-toolbox@8984287))

---
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>
duwenxin99 added a commit that referenced this pull request Mar 27, 2026
## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in #1641 / #906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes #2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
github-actions bot pushed a commit that referenced this pull request Mar 27, 2026
…ig (#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in #1641 / #906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes #2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit that referenced this pull request Mar 27, 2026
…ig (#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in #1641 / #906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes #2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 27, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 27, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to pepe57/genai-toolbox that referenced this pull request Mar 27, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to pepe57/genai-toolbox that referenced this pull request Mar 27, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to Jaleel-zhu/genai-toolbox that referenced this pull request Mar 27, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to Jaleel-zhu/genai-toolbox that referenced this pull request Mar 27, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to xaas-cloud/genai-toolbox that referenced this pull request Mar 28, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to xaas-cloud/genai-toolbox that referenced this pull request Mar 28, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to CrazyForks/genai-toolbox that referenced this pull request Mar 28, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to CrazyForks/genai-toolbox that referenced this pull request Mar 28, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to azaj01/genai-toolbox that referenced this pull request Mar 29, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to azaj01/genai-toolbox that referenced this pull request Mar 29, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to bhardwajRahul/genai-toolbox that referenced this pull request Mar 29, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to bhardwajRahul/genai-toolbox that referenced this pull request Mar 29, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
github-actions bot pushed a commit to NirajNandre/genai-toolbox-fork that referenced this pull request Mar 29, 2026
…ig (googleapis#2770)

## Summary

Add `BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT` env var support to the
prebuilt BigQuery configuration, enabling service account impersonation
without requiring a custom `--tools-file`.

## Problem

The BigQuery source already supports `impersonateServiceAccount` (added
in googleapis#1641 / googleapis#906), but the prebuilt config at
`internal/prebuiltconfigs/tools/bigquery.yaml` does not expose it via an
environment variable. This forces users who need impersonation to
abandon `--prebuilt bigquery` entirely and create a custom
`--tools-file` that manually redefines all 9 tools — just to set one
field on the source.

This is a common need for organizations that use service account
impersonation to scope permissions for AI agents, rather than granting
broad access to individual user accounts.

## Solution

Add a single line to the prebuilt BigQuery YAML:

```yaml
impersonateServiceAccount: ${BIGQUERY_IMPERSONATE_SERVICE_ACCOUNT:}
```

The empty default (`:`) means existing users are unaffected — the field
is ignored when the env var is not set, preserving full backward
compatibility.

## Validation

Built the patched binary locally and confirmed:
- Without the env var: `SESSION_USER()` returns the personal account
(unchanged behavior)
- With the env var: `SESSION_USER()` returns the impersonated service
account

## PR Checklist

- [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

🛠️ Fixes googleapis#2769

---------

Co-authored-by: kkeefer1 <kyle_keefer@intuit.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 9c3a748
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bigquery] Provide way to pass impersonated service account

5 participants