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 (2 of 13 files). Show all

Unified · Split

2 files
  1. apps/cloud/src/engine/execution-stack.ts +13 −0
  2. apps/marketing/src/pages/privacy.astro +20 −0
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 : []),
apps/marketing/src/pages/privacy.astro+20−0
@@ -53,6 +53,26 @@ import LegalLayout from "../components/LegalLayout.astro"; · 52 unmodified lines
5353 a call, run code, or execute a workflow.
5454 </p>
5555
56+ <h3>Google Workspace API data</h3>
57+ <p>
58+ If you connect a Google Workspace service, Executor uses the permissions you grant to perform the actions you
59+ request through that integration. Depending on the service and permissions you choose, this may include accessing
60+ or modifying Google Calendar events, Google Sheets spreadsheets, or other Google Workspace content. Executor stores
61+ OAuth credentials and connection metadata so the integration can continue working, and processes Google Workspace
62+ content when carrying out your requested tool calls and returning their results to you or the agent you directed to
63+ make the call.
64+ </p>
65+ <p>
66+ We do not use Google Workspace API data for advertising or to train generalized artificial-intelligence or
67+ machine-learning models. We disclose it only as needed to provide the user-requested integration, operate and secure
68+ the Services, comply with law, or as otherwise described in this Policy with the user&apos;s consent.
69+ </p>
70+ <p>
71+ Executor&apos;s use and transfer of information received from Google Workspace APIs adheres to the
72+ <a href="https://developers.google.com/terms/api-services-user-data-policy">Google API Services User Data Policy</a>,
73+ including its Limited Use requirements.
74+ </p>
75+
5676 <h3>Website inputs and support communications</h3>
5777 <p>
5878 If you submit a URL to our website&apos;s API detection tool, contact us by email, or otherwise communicate with us,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t