Unified · Split
| @@ -118,7 +118,6 @@ · 117 unmodified lines | ||
| 118 | 118 | "mcp-mcp": { |
| 119 | 119 | "name": "Mcp MCP", |
| 120 | 120 | "namespace": "mcp.mcp", |
| 121 | − "kind": "mcp", | |
| 122 | 121 | "config": { |
| 123 | 122 | "endpoint": "https://mcp.linear.app/mcp", |
| 124 | 123 | "transport": "auto", |
| @@ -195,6 +194,115 @@ · 70 unmodified lines | ||
| 195 | 194 | "client_id_issued_at": 1774854942 |
| 196 | 195 | } |
| 197 | 196 | } |
| 197 | + }, | |
| 198 | + "kind": "mcp" | |
| 199 | + }, | |
| 200 | + "google-calendar": { | |
| 201 | + "name": "Google Calendar", | |
| 202 | + "namespace": "google.calendar", | |
| 203 | + "config": { | |
| 204 | + "service": "calendar", | |
| 205 | + "version": "v3", | |
| 206 | + "discoveryUrl": "https://calendar-json.googleapis.com/$discovery/rest?version=v3", | |
| 207 | + "defaultHeaders": null, | |
| 208 | + "scopes": [ | |
| 209 | + "https://www.googleapis.com/auth/calendar" | |
| 210 | + ], | |
| 211 | + "auth": { | |
| 212 | + "kind": "oauth2", | |
| 213 | + "clientId": "171149749557-apegmds63qp2h2u2s55p6rom1j6m3m5k.apps.googleusercontent.com", | |
| 214 | + "clientSecretRef": { | |
| 215 | + "secretId": "sec_f2c1f3ce-97c5-429b-a7bf-22fcd6007de3" | |
| 216 | + }, | |
| 217 | + "clientAuthentication": "client_secret_post", | |
| 218 | + "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", | |
| 219 | + "tokenEndpoint": "https://oauth2.googleapis.com/token", | |
| 220 | + "scopes": [ | |
| 221 | + "https://www.googleapis.com/auth/calendar" | |
| 222 | + ], | |
| 223 | + "accessTokenRef": { | |
| 224 | + "secretId": "sec_023e64bd-8e6b-49cc-b33c-950c31612846" | |
| 225 | + }, | |
| 226 | + "refreshTokenRef": { | |
| 227 | + "secretId": "sec_e4c2e96c-b809-4d72-873c-a8ba7d595610" | |
| 228 | + }, | |
| 229 | + "expiresAt": 1774859675319 | |
| 230 | + } | |
| 231 | + }, | |
| 232 | + "kind": "google_discovery" | |
| 233 | + }, | |
| 234 | + "google-drive": { | |
| 235 | + "name": "Google Drive", | |
| 236 | + "namespace": "google.drive", | |
| 237 | + "config": { | |
| 238 | + "service": "drive", | |
| 239 | + "version": "v3", | |
| 240 | + "discoveryUrl": "https://www.googleapis.com/discovery/v1/apis/drive/v3/rest", | |
| 241 | + "defaultHeaders": null, | |
| 242 | + "scopes": [ | |
| 243 | + "https://www.googleapis.com/auth/drive", | |
| 244 | + "https://www.googleapis.com/auth/drive.apps.readonly" | |
| 245 | + ], | |
| 246 | + "auth": { | |
| 247 | + "kind": "oauth2", | |
| 248 | + "clientId": "171149749557-apegmds63qp2h2u2s55p6rom1j6m3m5k.apps.googleusercontent.com", | |
| 249 | + "clientSecretRef": { | |
| 250 | + "secretId": "sec_f2c1f3ce-97c5-429b-a7bf-22fcd6007de3" | |
| 251 | + }, | |
| 252 | + "clientAuthentication": "client_secret_post", | |
| 253 | + "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", | |
| 254 | + "tokenEndpoint": "https://oauth2.googleapis.com/token", | |
| 255 | + "scopes": [ | |
| 256 | + "https://www.googleapis.com/auth/drive", | |
| 257 | + "https://www.googleapis.com/auth/drive.apps.readonly" | |
| 258 | + ], | |
| 259 | + "accessTokenRef": { | |
| 260 | + "secretId": "sec_39d48e40-634c-4673-8038-8fc7c027c698" | |
| 261 | + }, | |
| 262 | + "refreshTokenRef": { | |
| 263 | + "secretId": "sec_ec05b35f-c0ff-4529-b80e-a5638589a6eb" | |
| 264 | + }, | |
| 265 | + "expiresAt": 1774859675319 | |
| 266 | + } | |
| 267 | + }, | |
| 268 | + "kind": "google_discovery" | |
| 269 | + }, | |
| 270 | + "google-gmail": { | |
| 271 | + "name": "Gmail", | |
| 272 | + "namespace": "google.gmail", | |
| 273 | + "kind": "google_discovery", | |
| 274 | + "config": { | |
| 275 | + "service": "gmail", | |
| 276 | + "version": "v1", | |
| 277 | + "discoveryUrl": "https://gmail.googleapis.com/$discovery/rest?version=v1", | |
| 278 | + "defaultHeaders": null, | |
| 279 | + "scopes": [ | |
| 280 | + "https://mail.google.com/", | |
| 281 | + "https://www.googleapis.com/auth/gmail.settings.basic", | |
| 282 | + "https://www.googleapis.com/auth/gmail.settings.sharing" | |
| 283 | + ], | |
| 284 | + "auth": { | |
| 285 | + "kind": "oauth2", | |
| 286 | + "clientId": "171149749557-apegmds63qp2h2u2s55p6rom1j6m3m5k.apps.googleusercontent.com", | |
| 287 | + "clientSecretRef": { | |
| 288 | + "secretId": "sec_f2c1f3ce-97c5-429b-a7bf-22fcd6007de3" | |
| 289 | + }, | |
| 290 | + "clientAuthentication": "client_secret_post", | |
| 291 | + "authorizationEndpoint": "https://accounts.google.com/o/oauth2/v2/auth", | |
| 292 | + "tokenEndpoint": "https://oauth2.googleapis.com/token", | |
| 293 | + "scopes": [ | |
| 294 | + "https://mail.google.com/", | |
| 295 | + "https://www.googleapis.com/auth/gmail.settings.basic", | |
| 296 | + "https://www.googleapis.com/auth/gmail.settings.sharing" | |
| 297 | + ], | |
| 298 | + "accessTokenRef": { | |
| 299 | + "secretId": "sec_379eee62-86fe-49fe-93dc-8af40fa04dc3" | |
| 300 | + }, | |
| 301 | + "refreshTokenRef": { | |
| 302 | + "secretId": "sec_c58e7cb5-296b-4024-8f22-8b49ef7a7f38" | |
| 303 | + }, | |
| 304 | + "expiresAt": 1774859675319 | |
| 305 | + } | |
| 198 | 306 | } |
| 199 | 307 | } |
| 200 | 308 | }, |
| @@ -68,8 +68,11 @@ export const getFrontendPluginRoute = ( · 67 unmodified lines | ||
| 68 | 68 | routeKey: string, |
| 69 | 69 | ) => frontendPluginRegistry.getRoute(pluginKey, routeKey); |
| 70 | 70 | |
| 71 | +const resolveSourcePluginKey = (kind: string): string => | |
| 72 | + isGoogleDiscoverySource(kind) ? "google-discovery" : kind; | |
| 73 | + | |
| 71 | 74 | export const getSourceFrontendPlugin = (kind: string) => { |
| 72 | − const plugin = getFrontendPlugin(kind); | |
| 75 | + const plugin = getFrontendPlugin(resolveSourcePluginKey(kind)); | |
| 73 | 76 | return plugin && isSourceFrontendPlugin(plugin) ? plugin : null; |
| 74 | 77 | }; |
| 75 | 78 | |
| @@ -104,17 +104,6 @@ export function SecretsPage() { · 103 unmodified lines | ||
| 104 | 104 | </p> |
| 105 | 105 | </div> |
| 106 | 106 | <div className="flex gap-2"> |
| 107 | − <Button | |
| 108 | − size="sm" | |
| 109 | − variant="outline" | |
| 110 | − onClick={() => { | |
| 111 | − setShowCreateStore(true); | |
| 112 | − }} | |
| 113 | − disabled={creatableStorePlugins.length === 0} | |
| 114 | − > | |
| 115 | − <IconPlus className="size-3.5" /> | |
| 116 | − Add store | |
| 117 | − </Button> | |
| 118 | 107 | <Button |
| 119 | 108 | size="sm" |
| 120 | 109 | onClick={() => { |
| @@ -150,7 +139,7 @@ export function SecretsPage() { · 29 unmodified lines | ||
| 150 | 139 | items.length === 0 ? ( |
| 151 | 140 | <SectionEmptyState |
| 152 | 141 | title="No secret stores yet" |
| 153 | − description="Add a store to connect an external backend like 1Password." | |
| 142 | + description="External secret stores are currently unavailable in this app." | |
| 154 | 143 | /> |
| 155 | 144 | ) : ( |
| 156 | 145 | <div className="grid gap-3 md:grid-cols-2"> |
| @@ -21,10 +21,6 @@ import { openApiHttpPlugin } from "@executor/plugin-openapi-http"; · 20 unmodified lines | ||
| 21 | 21 | import { |
| 22 | 22 | openApiSdkPlugin, |
| 23 | 23 | } from "@executor/plugin-openapi-sdk"; |
| 24 | −import { onePasswordHttpPlugin } from "@executor/plugin-onepassword-http"; | |
| 25 | −import { | |
| 26 | − onePasswordSdkPlugin, | |
| 27 | −} from "@executor/plugin-onepassword-sdk"; | |
| 28 | 24 | import { |
| 29 | 25 | createExecutorApiLayer, |
| 30 | 26 | } from "@executor/platform-api/http"; |
| @@ -66,7 +62,6 @@ import { createFileGraphqlSourceStorage } from "./graphql-source-storage"; · 35 unmodified lines | ||
| 66 | 62 | import { createFileMcpOAuthSessionStorage } from "./mcp-oauth-session-storage"; |
| 67 | 63 | import { createFileMcpSourceStorage } from "./mcp-source-storage"; |
| 68 | 64 | import { createFileOpenApiSourceStorage } from "./openapi-source-storage"; |
| 69 | −import { createFileOnePasswordStoreStorage } from "./onepassword-store-storage"; | |
| 70 | 65 | |
| 71 | 66 | export { createFileGoogleDiscoveryOAuthSessionStorage } from "./google-discovery-oauth-session-storage"; |
| 72 | 67 | export { createFileGoogleDiscoverySourceStorage } from "./google-discovery-source-storage"; |
| @@ -74,7 +69,6 @@ export { createFileGraphqlSourceStorage } from "./graphql-source-storage"; · 1 unmodified line | ||
| 74 | 69 | export { createFileMcpOAuthSessionStorage } from "./mcp-oauth-session-storage"; |
| 75 | 70 | export { createFileMcpSourceStorage } from "./mcp-source-storage"; |
| 76 | 71 | export { createFileOpenApiSourceStorage } from "./openapi-source-storage"; |
| 77 | −export { createFileOnePasswordStoreStorage } from "./onepassword-store-storage"; | |
| 78 | 72 | |
| 79 | 73 | export { |
| 80 | 74 | DEFAULT_EXECUTOR_DATA_DIR, |
| @@ -142,7 +136,6 @@ const executorHttpPlugins = [ · 61 unmodified lines | ||
| 142 | 136 | graphqlHttpPlugin(), |
| 143 | 137 | googleDiscoveryHttpPlugin(), |
| 144 | 138 | mcpHttpPlugin(), |
| 145 | − onePasswordHttpPlugin(), | |
| 146 | 139 | openApiHttpPlugin(), |
| 147 | 140 | ] as const; |
| 148 | 141 | |
| @@ -194,11 +187,6 @@ const createExecutorRuntime = ( · 45 unmodified lines | ||
| 194 | 187 | rootDir: resolve(localDataDir, "plugins", "openapi", "sources"), |
| 195 | 188 | }), |
| 196 | 189 | }), |
| 197 | − onePasswordSdkPlugin({ | |
| 198 | − storage: createFileOnePasswordStoreStorage({ | |
| 199 | − rootDir: resolve(localDataDir, "plugins", "onepassword", "stores"), | |
| 200 | − }), | |
| 201 | − }), | |
| 202 | 190 | ] as const, |
| 203 | 191 | executionResolver: options.executionResolver, |
| 204 | 192 | resolveSecretMaterial: options.resolveSecretMaterial, |
| @@ -913,8 +913,8 @@ function GoogleDiscoveryBatchConnectPanel(props: { · 912 unmodified lines | ||
| 913 | 913 | onClick={() => toggleTemplate(template.id)} |
| 914 | 914 | className={ |
| 915 | 915 | selected |
| 916 | − ? "h-auto rounded-lg border border-primary/30 bg-primary/5 px-4 py-3 text-left" | |
| 917 | − : "h-auto rounded-lg border border-border px-4 py-3 text-left hover:bg-accent/40" | |
| 916 | + ? "h-auto whitespace-normal rounded-lg border border-primary/30 bg-primary/5 px-4 py-3 text-left" | |
| 917 | + : "h-auto whitespace-normal rounded-lg border border-border px-4 py-3 text-left hover:bg-accent/40" | |
| 918 | 918 | } |
| 919 | 919 | > |
| 920 | 920 | <div className="flex items-start gap-3"> |