History

Move Google and Microsoft onto the OpenAPI plugin (#1366)

* Add openapi provider catalog design notes * Add OpenAPI spec format adapter support * Add Google and Microsoft spec format adapters * Preserve streaming spec format refresh * Move provider add surfaces into catalog presets * Fix provider catalog health checks * Fix Google Directory health check args * Format design notes * Add openapi provider service split migration * Fix service split blob migration * Read all provider operation rows for the migration plan * Assign provider operations by fresh-add spec ownership * Fix Microsoft service split ownership * Map singular mail folder and users profile segments * Seed add form identity from the catalog preset name * Use OIDC id token for OAuth identity labels * Handle OAuth health without probes * Canonicalize Microsoft scopes and decode JWT claims as UTF-8 * Update lockfile for provider package dependency changes * Package provider service split migration * Retarget orphan guardrail policies as dormant rows in the cloud runner * Retarget orphan approve policies too * Fold provider catalogs into openapi

Rhys Sullivan committed 4 months ago

Commit 55a24631 parent 93b000a148 files · +8259 −6034Browse files

Showing the changes to examples/all-plugins/src (1 of 148 files). Show all

Unified · Split

examples/all-plugins/src/main.ts+13−4
@@ -33,12 +33,19 @@ import { · 32 unmodified lines
33} from "@executor-js/sdk";33} from "@executor-js/sdk";
34 34
35import { fileSecretsPlugin } from "@executor-js/plugin-file-secrets";35import { fileSecretsPlugin } from "@executor-js/plugin-file-secrets";
36import { googlePlugin } from "@executor-js/plugin-google";36import {
37 googleCatalog,
38 googleDiscoveryAdapter,
39} from "@executor-js/plugin-openapi/providers/google";
37import { graphqlPlugin } from "@executor-js/plugin-graphql";40import { graphqlPlugin } from "@executor-js/plugin-graphql";
38import { keychainPlugin } from "@executor-js/plugin-keychain";41import { keychainPlugin } from "@executor-js/plugin-keychain";
39import { mcpPlugin } from "@executor-js/plugin-mcp";42import { mcpPlugin } from "@executor-js/plugin-mcp";
40import { onepasswordPlugin } from "@executor-js/plugin-onepassword";43import { onepasswordPlugin } from "@executor-js/plugin-onepassword";
41import { openApiPlugin, variable } from "@executor-js/plugin-openapi";44import { openApiPlugin, variable } from "@executor-js/plugin-openapi";
45import {
46 microsoftCatalog,
47 microsoftGraphAdapter,
48} from "@executor-js/plugin-openapi/providers/microsoft";
42import { workosVaultPlugin } from "@executor-js/plugin-workos-vault";49import { workosVaultPlugin } from "@executor-js/plugin-workos-vault";
43 50
44// ---------------------------------------------------------------------------51// ---------------------------------------------------------------------------
@@ -78,10 +85,12 @@ const plugins = [ · 33 unmodified lines
78 // Integration plugins — these declare their own schemas (tables), register85 // Integration plugins — these declare their own schemas (tables), register
79 // integrations via their extension methods (`addSpec` / `addServer` /86 // integrations via their extension methods (`addSpec` / `addServer` /
80 // `addIntegration`), and produce tools per connection.87 // `addIntegration`), and produce tools per connection.
81 googlePlugin(),
82 graphqlPlugin(),88 graphqlPlugin(),
83 mcpPlugin({ dangerouslyAllowStdioMCP: false }),89 mcpPlugin({ dangerouslyAllowStdioMCP: false }),
84 openApiPlugin(),90 openApiPlugin({
91 presets: [...googleCatalog, ...microsoftCatalog],
92 specFormats: [googleDiscoveryAdapter, microsoftGraphAdapter],
93 }),
85 94
86 // workos-vault is a cloud-hosted credential provider. It would contribute a95 // workos-vault is a cloud-hosted credential provider. It would contribute a
87 // "workos-vault" provider if credentials were available. We skip it here96 // "workos-vault" provider if credentials were available. We skip it here
@@ -418,7 +427,7 @@ const program = Effect.gen(function* () { · 330 unmodified lines
418 console.log(" executor.fileSecrets.filePath: ", executor.fileSecrets.filePath);427 console.log(" executor.fileSecrets.filePath: ", executor.fileSecrets.filePath);
419 428
420 // executor.mcp.addServer({ transport: "remote", name: "...", endpoint: "...", slug: "..." });429 // executor.mcp.addServer({ transport: "remote", name: "...", endpoint: "...", slug: "..." });
421 // executor.google.addBundle({ urls: ["..."], slug: "google" });430 // Google catalog rows are added through executor.openapi.addSpec with specFormat "google-discovery".
422 // executor.onepassword.configure({ auth: { kind: "desktop-app", accountName: "..." }, vaultId: "..." });431 // executor.onepassword.configure({ auth: { kind: "desktop-app", accountName: "..." }, vaultId: "..." });
423 432
424 // -------------------------------------------------------------------------433 // -------------------------------------------------------------------------