Skip to content

feat(bq_driver): add AllowedProjects DSN option to scope SQLTables - #1695

Closed
sachinpro wants to merge 4 commits into
mainfrom
feature-allowed-projects
Closed

sachinpro wants to merge 4 commits into
mainfrom
feature-allowed-projects

Conversation

@sachinpro

Copy link
Copy Markdown
Collaborator

No description provided.

Rigbyfab4 and others added 3 commits October 22, 2026 19:18
Power Query's Navigator opens a connection and immediately calls SQLTables
with wildcard catalog/schema arguments. GetFilteredProjectIds answers that by
enumerating every project the authenticated principal can reach via the
projects.list REST API, then listing datasets for each one.

In a large organization the principal can typically see far more projects
than it uses. #1241 made that enumeration tolerate projects it cannot read,
so the Navigator tree now builds, but it still contacts every visible
project: on one enterprise account it takes about 90 seconds before the
Navigator appears. #1627 and #1632 avoid enumeration when a concrete catalog
is known, but the Navigator's opening call passes SQL_ALL_CATALOGS, so
neither applies to that first load.

Add an AllowedProjects DSN option naming the projects to expose. When set,
GetFilteredProjectIds filters that list and skips projects.list entirely.
The existing filter semantics are preserved: entries are matched against the
catalog argument with the same LIKE pattern / SQL_ATTR_METADATA_ID rules
used elsewhere.

AllowedProjects and AdditionalProjects stay orthogonal and composable: if
both are set, enumeration starts from the allowlist and still appends the
AdditionalProjects ids on top.

The setting is exposed in the Advanced Options dialog as a single
comma-separated text field, following the MaximumBytesBilled field from
#1672. To fit it within the existing dialog height, the rows below Max
Retries are respaced to a uniform 25px and the Additional projects box is
reduced to the height of the Query properties box.

Tests: unit coverage for FilterAllowedProjects and ALLOWEDPROJECTS parsing,
a dialog round-trip test, and an integration test asserting that a project
the principal can reach but did not allow-list is absent from SQLTables.

This branch was successfully deployed

1 active deployment
internal — 3fcffb3f Deployed Oct 22, 2026 by sachinpro via Require Approval for External PRs #11037
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.

2 participants