Skip to content

feat: add Google Calendar app and rename google to gmail#135

Merged
guyb1 merged 1 commit intomainfrom
feat/google-calendar-app
Mar 31, 2026
Merged

feat: add Google Calendar app and rename google to gmail#135
guyb1 merged 1 commit intomainfrom
feat/google-calendar-app

Conversation

@guyb1
Copy link
Copy Markdown
Contributor

@guyb1 guyb1 commented Mar 31, 2026

Summary

  • Rename google → gmail: The existing "google" provider is renamed to "gmail" for clarity, with a DB migration to update existing rows
  • Add Google Calendar: New OAuth app integration with calendar-specific scopes (https://www.googleapis.com/auth/calendar)
  • Path-prefix routing: Gateway now supports multiple providers on the same host (www.googleapis.com) using path prefixes (/gmail/* vs /calendar/*), enabling future Google services (Drive, Sheets, etc.)
  • Token refresh persistence: Refreshed OAuth tokens are now encrypted and written back to the database, preventing re-refresh on every cache miss
  • CryptoService.encrypt: New encrypt method on CryptoService for credential persistence after token refresh

Test plan

  • pnpm check passes (lint, types, format)
  • cargo test passes (gateway tests including new path-prefix and multi-provider tests)
  • Both Gmail and Google Calendar appear in the connections page
  • OAuth connect flow works for both apps (correct scopes in popup)
  • Gateway injects correct credentials for gmail.googleapis.com and www.googleapis.com/calendar/*
  • Token refresh persists updated credentials to database
  • Existing Gmail connections continue working after migration

- Rename "google" provider to "gmail" for clarity (migration included)
- Add Google Calendar as a new OAuth app with calendar-specific scopes
- Implement path-prefix routing in gateway so Gmail and Calendar share
  www.googleapis.com without conflicts (/gmail/* vs /calendar/*)
- Update multi-provider host resolution to support multiple providers
  on the same host with different path prefixes
- Persist refreshed OAuth tokens back to database after token refresh
- Add encrypt method to CryptoService for credential persistence
@guyb1 guyb1 merged commit 64e080c into main Mar 31, 2026
1 check passed
@guyb1 guyb1 deleted the feat/google-calendar-app branch March 31, 2026 12:01
@guyb1 guyb1 mentioned this pull request Mar 31, 2026
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