fix(auth): add cross-service Drive scopes for docs and sheets tools
Several docs tools (search_docs, get_doc_content, list_docs_in_folder, export_doc_to_pdf) and sheets tools (list_spreadsheets) internally use the Google Drive API but only receive docs/sheets-specific OAuth scopes when configured with `--tools docs sheets` (without `drive`). This adds the minimal required Drive scopes as cross-service dependencies: - docs: drive.readonly (metadata queries) + drive.file (PDF export) - sheets: drive.readonly (spreadsheet listing) This follows the existing pattern where appscript already includes DRIVE_FILE_SCOPE for its Drive API dependency. The alternative workaround of adding `--tools drive` exposes 14 full-access Drive tools which is undesirable from a security perspective. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -84,7 +84,7 @@ SCRIPT_METRICS_SCOPE = "https://www.googleapis.com/auth/script.metrics"
|
||||
BASE_SCOPES = [USERINFO_EMAIL_SCOPE, USERINFO_PROFILE_SCOPE, OPENID_SCOPE]
|
||||
|
||||
# Service-specific scope groups
|
||||
DOCS_SCOPES = [DOCS_READONLY_SCOPE, DOCS_WRITE_SCOPE]
|
||||
DOCS_SCOPES = [DOCS_READONLY_SCOPE, DOCS_WRITE_SCOPE, DRIVE_READONLY_SCOPE, DRIVE_FILE_SCOPE]
|
||||
|
||||
CALENDAR_SCOPES = [CALENDAR_SCOPE, CALENDAR_READONLY_SCOPE, CALENDAR_EVENTS_SCOPE]
|
||||
|
||||
@@ -101,7 +101,7 @@ GMAIL_SCOPES = [
|
||||
|
||||
CHAT_SCOPES = [CHAT_READONLY_SCOPE, CHAT_WRITE_SCOPE, CHAT_SPACES_SCOPE]
|
||||
|
||||
SHEETS_SCOPES = [SHEETS_READONLY_SCOPE, SHEETS_WRITE_SCOPE]
|
||||
SHEETS_SCOPES = [SHEETS_READONLY_SCOPE, SHEETS_WRITE_SCOPE, DRIVE_READONLY_SCOPE]
|
||||
|
||||
FORMS_SCOPES = [
|
||||
FORMS_BODY_SCOPE,
|
||||
@@ -148,8 +148,8 @@ TOOL_READONLY_SCOPES_MAP = {
|
||||
"gmail": [GMAIL_READONLY_SCOPE],
|
||||
"drive": [DRIVE_READONLY_SCOPE],
|
||||
"calendar": [CALENDAR_READONLY_SCOPE],
|
||||
"docs": [DOCS_READONLY_SCOPE],
|
||||
"sheets": [SHEETS_READONLY_SCOPE],
|
||||
"docs": [DOCS_READONLY_SCOPE, DRIVE_READONLY_SCOPE],
|
||||
"sheets": [SHEETS_READONLY_SCOPE, DRIVE_READONLY_SCOPE],
|
||||
"chat": [CHAT_READONLY_SCOPE],
|
||||
"forms": [FORMS_BODY_READONLY_SCOPE, FORMS_RESPONSES_READONLY_SCOPE],
|
||||
"slides": [SLIDES_READONLY_SCOPE],
|
||||
|
||||
Reference in New Issue
Block a user