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
Each service is split into read and write groups. Read groups have no side effects and use readonly scopes. Write groups perform mutations and require elevated scopes.
Services whose write scopes aren't in the published GCP project (Slides write, Sheets write, Tasks) default to OFF
Disabling a write group keeps the read tools available
Auth tools (auth.clear, auth.refreshToken) are always registered
Configuration via Environment Variables
# Disable specific feature groups (even if default ON)
WORKSPACE_DISABLED_FEATURES=gmail.write,chat.write
# Enable experimental feature groups (default OFF)
WORKSPACE_ENABLED_FEATURES=slides.write,tasks.read,tasks.write
Rules:
WORKSPACE_DISABLED_FEATURES takes precedence — disables even default-ON features
WORKSPACE_ENABLED_FEATURES enables default-OFF features
Disabling a feature group removes both its tools and its OAuth scopes
Re-enabling a previously disabled feature may require re-auth for the new scope
Impact on Contributors
Contributors adding new services would:
Define read and write feature group entries in the feature config registry
Set their default state (ON for scopes in the published project, OFF otherwise)
Gate their tool registrations on the feature config
This lets contributors develop and merge new features without being blocked by the published GCP project's scope configuration.
Questions for the Community
Is the read/write split the right granularity? Or would you prefer per-tool toggles?
Are environment variables sufficient for configuration, or would you also want a config file?
Are there other services or scopes you'd like to see supported?
Summary
We need a configuration mechanism to let users control which services and scopes the extension requests. This solves two problems:
Contributor PRs that need new scopes — PRs like feat(tasks): add support for Google Tasks #106 (Google Tasks), fix(slides): enable reliable Slides tool usage and write operations #237/feat(slides): add write tools for Google Slides #235 (Slides write), and Feat sheets insert text #233 (Sheets write) add features requiring scopes that aren't enabled in the published GCP project. Contributors should be able to develop and test these features with their own GCP projects, while the features remain opt-in for other users.
Users want scope control — Issue Gemini CLI Workspace Extension wants additional access to your Google Account #86: users who only need a few services don't want to auth for all scopes. Issue Feature Request: Add Support for Customizable OAuth Scopes to Prevent Unintended Email Operations #111: users want to restrict Gmail to read-only to prevent accidental sends.
Proposed Design: Read/Write Feature Groups
Each service is split into read and write groups. Read groups have no side effects and use readonly scopes. Write groups perform mutations and require elevated scopes.
docsdocumentsdocsdocuments,drivedrivedrive.readonlydrivedrivecalendarcalendar.readonlycalendarcalendarchatchat.spaces.readonly,chat.messages.readonly,chat.memberships.readonlychatchat.spaces,chat.messages,chat.membershipsgmailgmail.readonlygmailgmail.modifypeopleuserinfo.profile,directory.readonlyslidespresentations.readonlyslidespresentationssheetsspreadsheets.readonlysheetsspreadsheetstimetaskstasks.readonlytaskstasksKey points:
auth.clear,auth.refreshToken) are always registeredConfiguration via Environment Variables
Rules:
WORKSPACE_DISABLED_FEATUREStakes precedence — disables even default-ON featuresWORKSPACE_ENABLED_FEATURESenables default-OFF featuresImpact on Contributors
Contributors adding new services would:
This lets contributors develop and merge new features without being blocked by the published GCP project's scope configuration.
Questions for the Community
Related Issues & PRs