History

Launch built-in Google OAuth for Calendar and Sheets

Rhys Sullivan committed 2 months ago

Commit ac3bea51 parent 67ee8a013 files · +313 −10Browse files

Showing the changes to apps/cloud/src/engine/execution-stack.ts (1 of 13 files). Show all

Unified · Split

apps/cloud/src/engine/execution-stack.ts+13−0
@@ -42,6 +42,7 @@ import { · 41 unmodified lines
4242 PluginsProvider,
4343 collectTables,
4444 } from "@executor-js/api/server";
45+import { googleCatalogOAuthScopesForPreset } from "@executor-js/plugin-openapi/providers/google";
4546 import { makeDynamicWorkerExecutor } from "@executor-js/runtime-dynamic-worker";
4647 import type { AnyPlugin, FirstPartyOAuthClientConfig } from "@executor-js/sdk";
4748
@@ -88,6 +89,17 @@ export const CloudPluginsProvider: Layer.Layer<PluginsProvider> = Layer.succeed( · 40 unmodified lines
8889 */
8990 export const CLOUD_MOUNT_PREFIX = "/api" as const;
9091
92+// Initial Google launch boundary. Calendar + Sheets are sensitive scopes but
93+// not restricted Workspace scopes; Gmail and account-wide Drive remain absent
94+// until their separate verification/security work is complete. The same scope
95+// source builds the catalog auth templates, preventing config drift.
96+const GOOGLE_FIRST_PARTY_ALLOWED_SCOPES: readonly string[] = [
97+ ...new Set([
98+ ...googleCatalogOAuthScopesForPreset("google-calendar"),
99+ ...googleCatalogOAuthScopesForPreset("google-sheets"),
100+ ]),
101+];
102+
91103 // Executor-owned provider apps, enabled per provider by setting BOTH env vars
92104 // (id + secret). Each provider-side registration must list
93105 // `${VITE_PUBLIC_SITE_URL}/api/oauth/callback` as its callback; the org slug
@@ -119,6 +131,7 @@ const cloudFirstPartyOAuthClients = (): readonly FirstPartyOAuthClientConfig[] = · 25 unmodified lines
119131 tokenUrl: "https://oauth2.googleapis.com/token",
120132 clientId: env.FIRST_PARTY_GOOGLE_CLIENT_ID,
121133 clientSecret: env.FIRST_PARTY_GOOGLE_CLIENT_SECRET,
134+ allowedScopes: GOOGLE_FIRST_PARTY_ALLOWED_SCOPES,
122135 },
123136 ]
124137 : []),