Skip to content

feat: add 11 Google Workspace apps and inline BYOC config dialog#140

Merged
guyb1 merged 1 commit intomainfrom
feat/google-workspace-apps
Apr 1, 2026
Merged

feat: add 11 Google Workspace apps and inline BYOC config dialog#140
guyb1 merged 1 commit intomainfrom
feat/google-workspace-apps

Conversation

@guyb1
Copy link
Copy Markdown
Contributor

@guyb1 guyb1 commented Apr 1, 2026

Summary

  • 11 new Google Workspace apps: Docs, Sheets, Slides, Tasks, Forms, Classroom, Admin, Analytics, Search Console, Meet, Photos — all using the same Google OAuth flow
  • Shared Google OAuth helpers: Extract buildGoogleAuthUrl, exchangeGoogleCode, googleConfigFields into google-oauth.ts to eliminate duplication across 13 app definitions
  • Scope downgrades: Gmail uses gmail.readonly/modify/send, Calendar uses calendar.readonly/events, Drive/Docs/Sheets/Slides use drive.readonly/drive.file — matching approved Google verification scopes
  • BYOC-only apps: Tasks, Forms, Classroom, Admin, Analytics, Search Console, Meet, Photos have no platform defaults — users must provide their own OAuth credentials
  • Inline BYOC config dialog: Clicking Connect on an unconfigured app shows a Client ID/Secret form directly, then opens the OAuth popup after saving
  • Gateway multi-rule injection fix: Providers with multiple host rules on the same host (e.g., Drive /drive/ + /upload/drive/) now produce separate injection rules for each path prefix via new build_app_injection_rules function
  • Shared RefreshConfig: Single GOOGLE_REFRESH constant replaces 13 identical inline blocks
  • Optional envDefaults: configurable.envDefaults is now optional for BYOC-only apps

Test plan

  • pnpm check passes (lint, types, format)
  • cargo test passes (126 tests including new Drive multi-rule test + workspace provider tests)
  • All 16 apps appear in the connections page
  • Apps with platform defaults (Gmail, Calendar, Drive, Docs, Sheets, Slides) connect directly via OAuth popup
  • BYOC-only apps (Tasks, Forms, etc.) show the config dialog when clicking Connect
  • After configuring BYOC, clicking Connect opens the OAuth popup
  • Gateway injects credentials for both /drive/* and /upload/drive/* paths
  • Token refresh works for all Google apps

- Add Google Docs, Sheets, Slides, Tasks, Forms, Classroom, Admin,
  Analytics, Search Console, Meet, and Photos as OAuth integrations
- Extract shared Google OAuth helpers (buildAuthUrl, exchangeCode)
  to reduce duplication across 13 Google app definitions
- Downgrade scopes to match approved Google verification: Gmail uses
  gmail.readonly/modify/send, Calendar uses calendar.readonly/events,
  Drive/Docs/Sheets/Slides use drive.readonly/drive.file
- Apps without approved scopes (Tasks, Forms, etc.) require BYOC
  credentials — no platform defaults
- Add inline BYOC config dialog: clicking Connect on an unconfigured
  app shows a Client ID/Secret form, then opens the OAuth popup
- Fix gateway multi-rule injection: providers with multiple host rules
  on the same host (e.g., Drive /drive/ + /upload/drive/) now produce
  separate injection rules for each path prefix
- Extract shared RefreshConfig constant for all Google providers
- Make envDefaults optional in AppDefinition for BYOC-only apps
@guyb1 guyb1 merged commit 82c717a into main Apr 1, 2026
1 check passed
@guyb1 guyb1 deleted the feat/google-workspace-apps branch April 1, 2026 13:12
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.

1 participant