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
42 PluginsProvider,42 PluginsProvider,
43 collectTables,43 collectTables,
44} from "@executor-js/api/server";44} from "@executor-js/api/server";
45import { googleCatalogOAuthScopesForPreset } from "@executor-js/plugin-openapi/providers/google";
45import { makeDynamicWorkerExecutor } from "@executor-js/runtime-dynamic-worker";46import { makeDynamicWorkerExecutor } from "@executor-js/runtime-dynamic-worker";
46import type { AnyPlugin, FirstPartyOAuthClientConfig } from "@executor-js/sdk";47import type { AnyPlugin, FirstPartyOAuthClientConfig } from "@executor-js/sdk";
47 48
@@ -88,6 +89,17 @@ export const CloudPluginsProvider: Layer.Layer<PluginsProvider> = Layer.succeed( · 40 unmodified lines
88 */89 */
89export const CLOUD_MOUNT_PREFIX = "/api" as const;90export const CLOUD_MOUNT_PREFIX = "/api" as const;
90 91
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.
96const GOOGLE_FIRST_PARTY_ALLOWED_SCOPES: readonly string[] = [
97 ...new Set([
98 ...googleCatalogOAuthScopesForPreset("google-calendar"),
99 ...googleCatalogOAuthScopesForPreset("google-sheets"),
100 ]),
101];
102
91// Executor-owned provider apps, enabled per provider by setting BOTH env vars103// Executor-owned provider apps, enabled per provider by setting BOTH env vars
92// (id + secret). Each provider-side registration must list104// (id + secret). Each provider-side registration must list
93// `${VITE_PUBLIC_SITE_URL}/api/oauth/callback` as its callback; the org slug105// `${VITE_PUBLIC_SITE_URL}/api/oauth/callback` as its callback; the org slug
@@ -119,6 +131,7 @@ const cloudFirstPartyOAuthClients = (): readonly FirstPartyOAuthClientConfig[] = · 25 unmodified lines
119 tokenUrl: "https://oauth2.googleapis.com/token",131 tokenUrl: "https://oauth2.googleapis.com/token",
120 clientId: env.FIRST_PARTY_GOOGLE_CLIENT_ID,132 clientId: env.FIRST_PARTY_GOOGLE_CLIENT_ID,
121 clientSecret: env.FIRST_PARTY_GOOGLE_CLIENT_SECRET,133 clientSecret: env.FIRST_PARTY_GOOGLE_CLIENT_SECRET,
134 allowedScopes: GOOGLE_FIRST_PARTY_ALLOWED_SCOPES,
122 },135 },
123 ]136 ]
124 : []),137 : []),
apps/marketing/src/pages/privacy.astro+20−0
@@ -53,6 +53,26 @@ import LegalLayout from "../components/LegalLayout.astro"; · 52 unmodified lines
53 a call, run code, or execute a workflow.53 a call, run code, or execute a workflow.
54 </p>54 </p>
55 55
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
56 <h3>Website inputs and support communications</h3>76 <h3>Website inputs and support communications</h3>
57 <p>77 <p>
58 If you submit a URL to our website&apos;s API detection tool, contact us by email, or otherwise communicate with us,78 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