@squadbase/vite-server 0.1.3-dev.17 → 0.1.3-dev.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +302 -98
- package/dist/connectors/airtable-oauth.js +27 -1
- package/dist/connectors/airtable.js +27 -1
- package/dist/connectors/amplitude.js +27 -1
- package/dist/connectors/anthropic.js +27 -1
- package/dist/connectors/asana.js +27 -1
- package/dist/connectors/attio.js +27 -1
- package/dist/connectors/backlog-api-key.js +27 -1
- package/dist/connectors/customerio.js +27 -1
- package/dist/connectors/dbt.js +27 -1
- package/dist/connectors/gamma.js +27 -1
- package/dist/connectors/gemini.js +27 -1
- package/dist/connectors/gmail-oauth.js +49 -3
- package/dist/connectors/gmail.js +36 -10
- package/dist/connectors/google-ads.js +56 -12
- package/dist/connectors/google-analytics-oauth.js +45 -3
- package/dist/connectors/google-analytics.js +33 -7
- package/dist/connectors/google-calendar-oauth.js +45 -3
- package/dist/connectors/google-calendar.js +45 -15
- package/dist/connectors/google-docs.js +58 -12
- package/dist/connectors/google-drive.js +69 -11
- package/dist/connectors/google-sheets.js +63 -11
- package/dist/connectors/google-slides.js +65 -13
- package/dist/connectors/grafana.js +27 -1
- package/dist/connectors/hubspot-oauth.js +27 -1
- package/dist/connectors/hubspot.js +27 -1
- package/dist/connectors/intercom-oauth.js +27 -1
- package/dist/connectors/intercom.js +27 -1
- package/dist/connectors/jira-api-key.js +27 -1
- package/dist/connectors/kintone-api-token.js +35 -9
- package/dist/connectors/kintone.js +27 -1
- package/dist/connectors/linkedin-ads.js +27 -1
- package/dist/connectors/mailchimp-oauth.js +27 -1
- package/dist/connectors/mailchimp.js +27 -1
- package/dist/connectors/mixpanel.js +27 -1
- package/dist/connectors/notion-oauth.js +27 -1
- package/dist/connectors/notion.js +27 -1
- package/dist/connectors/openai.js +27 -1
- package/dist/connectors/sentry.js +27 -1
- package/dist/connectors/shopify-oauth.js +27 -1
- package/dist/connectors/shopify.js +27 -1
- package/dist/connectors/stripe-api-key.js +27 -1
- package/dist/connectors/stripe-oauth.js +27 -1
- package/dist/connectors/wix-store.js +27 -1
- package/dist/connectors/zendesk-oauth.js +27 -1
- package/dist/connectors/zendesk.js +27 -1
- package/dist/index.js +302 -98
- package/dist/main.js +302 -98
- package/dist/vite-plugin.js +302 -98
- package/package.json +1 -1
|
@@ -250,7 +250,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
250
250
|
return result;
|
|
251
251
|
}
|
|
252
252
|
static deriveKey(slug, authType) {
|
|
253
|
-
|
|
253
|
+
if (authType) return `${slug}-${authType}`;
|
|
254
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
255
|
+
// user-password
|
|
256
|
+
"postgresql": "user-password",
|
|
257
|
+
"mysql": "user-password",
|
|
258
|
+
"clickhouse": "user-password",
|
|
259
|
+
"kintone": "user-password",
|
|
260
|
+
"squadbase-db": "user-password",
|
|
261
|
+
// service-account
|
|
262
|
+
"snowflake": "service-account",
|
|
263
|
+
"bigquery": "service-account",
|
|
264
|
+
"google-analytics": "service-account",
|
|
265
|
+
"google-calendar": "service-account",
|
|
266
|
+
"aws-athena": "service-account",
|
|
267
|
+
"redshift": "service-account",
|
|
268
|
+
// api-key
|
|
269
|
+
"databricks": "api-key",
|
|
270
|
+
"dbt": "api-key",
|
|
271
|
+
"airtable": "api-key",
|
|
272
|
+
"openai": "api-key",
|
|
273
|
+
"gemini": "api-key",
|
|
274
|
+
"anthropic": "api-key",
|
|
275
|
+
"wix-store": "api-key"
|
|
276
|
+
};
|
|
277
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
278
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
279
|
+
return slug;
|
|
254
280
|
}
|
|
255
281
|
};
|
|
256
282
|
|
|
@@ -267,10 +293,10 @@ var AUTH_TYPES = {
|
|
|
267
293
|
// ../connectors/src/connectors/google-drive/setup.ts
|
|
268
294
|
var googleDriveOnboarding = new ConnectorOnboarding({
|
|
269
295
|
dataOverviewInstructions: {
|
|
270
|
-
en: `1. Call google-
|
|
271
|
-
2. Call google-
|
|
272
|
-
ja: `1. google-
|
|
273
|
-
2. google-
|
|
296
|
+
en: `1. Call google-drive-oauth_request with GET /files?pageSize=20&fields=files(id,name,mimeType,modifiedTime)&orderBy=modifiedTime desc to list recent files
|
|
297
|
+
2. Call google-drive-oauth_request with GET /about?fields=user,storageQuota to get account info and storage usage`,
|
|
298
|
+
ja: `1. google-drive-oauth_request \u3067 GET /files?pageSize=20&fields=files(id,name,mimeType,modifiedTime)&orderBy=modifiedTime desc \u3092\u547C\u3073\u51FA\u3057\u3001\u6700\u8FD1\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E00\u89A7\u8868\u793A
|
|
299
|
+
2. google-drive-oauth_request \u3067 GET /about?fields=user,storageQuota \u3092\u547C\u3073\u51FA\u3057\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3068\u30B9\u30C8\u30EC\u30FC\u30B8\u4F7F\u7528\u91CF\u3092\u53D6\u5F97`
|
|
274
300
|
}
|
|
275
301
|
});
|
|
276
302
|
|
|
@@ -414,9 +440,11 @@ var googleDriveConnector = new ConnectorPlugin({
|
|
|
414
440
|
]
|
|
415
441
|
},
|
|
416
442
|
systemPrompt: {
|
|
417
|
-
en: `### Tools
|
|
443
|
+
en: `### Tools (setup-time only)
|
|
444
|
+
|
|
445
|
+
- \`google-drive-oauth_request\`: Send authenticated requests to the Google Drive API v3 during setup / data overview. Supports GET, POST, and PATCH methods. Authentication is configured automatically via OAuth.
|
|
418
446
|
|
|
419
|
-
|
|
447
|
+
> **Important**: The \`google-drive-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).listFiles\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
420
448
|
|
|
421
449
|
### Google Drive API Reference
|
|
422
450
|
|
|
@@ -483,7 +511,21 @@ var googleDriveConnector = new ConnectorPlugin({
|
|
|
483
511
|
|
|
484
512
|
### Business Logic
|
|
485
513
|
|
|
486
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
514
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
515
|
+
|
|
516
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
517
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://www.googleapis.com/drive/v3\`).
|
|
518
|
+
- \`client.listFiles(options?)\` \u2014 list files with optional \`query\`, \`pageSize\`, \`pageToken\`, \`orderBy\`, \`fields\`.
|
|
519
|
+
- \`client.getFile(fileId, fields?)\` \u2014 get file metadata.
|
|
520
|
+
- \`client.createFile(options)\` \u2014 create a file or folder (metadata only).
|
|
521
|
+
- \`client.updateFile(fileId, metadata, addParents?, removeParents?)\` \u2014 rename / move / update.
|
|
522
|
+
- \`client.copyFile(fileId, name, parents?)\` \u2014 copy a file.
|
|
523
|
+
- \`client.downloadFile(fileId)\` \u2014 download binary content (returns a \`Response\`).
|
|
524
|
+
- \`client.exportFile(fileId, mimeType)\` \u2014 export a Google Workspace file to another format.
|
|
525
|
+
- \`client.shareFile(fileId, type, role, emailAddress)\` \u2014 add a permission.
|
|
526
|
+
- \`client.listPermissions(fileId)\` \u2014 list permissions on a file.
|
|
527
|
+
|
|
528
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
487
529
|
|
|
488
530
|
#### Example
|
|
489
531
|
|
|
@@ -534,9 +576,11 @@ const copy = await drive.copyFile("fileId123", "Backup Copy");
|
|
|
534
576
|
// Move a file to a different folder
|
|
535
577
|
await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
536
578
|
\`\`\``,
|
|
537
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
579
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
580
|
+
|
|
581
|
+
- \`google-drive-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Drive API v3 \u3078\u8A8D\u8A3C\u6E08\u307F\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u9001\u4FE1\u3057\u307E\u3059\u3002GET, POST, PATCH \u30E1\u30BD\u30C3\u30C9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
538
582
|
|
|
539
|
-
|
|
583
|
+
> **\u91CD\u8981**: \`google-drive-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).listFiles\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
540
584
|
|
|
541
585
|
### Google Drive API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
542
586
|
|
|
@@ -603,7 +647,21 @@ await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
|
603
647
|
|
|
604
648
|
### Business Logic
|
|
605
649
|
|
|
606
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
650
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
651
|
+
|
|
652
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
653
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://www.googleapis.com/drive/v3\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
654
|
+
- \`client.listFiles(options?)\` \u2014 \`query\`, \`pageSize\`, \`pageToken\`, \`orderBy\`, \`fields\` \u30AA\u30D7\u30B7\u30E7\u30F3\u4ED8\u304D\u3067\u30D5\u30A1\u30A4\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
655
|
+
- \`client.getFile(fileId, fields?)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
656
|
+
- \`client.createFile(options)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30D5\u30A9\u30EB\u30C0\u3092\u4F5C\u6210\uFF08\u30E1\u30BF\u30C7\u30FC\u30BF\u306E\u307F\uFF09\u3002
|
|
657
|
+
- \`client.updateFile(fileId, metadata, addParents?, removeParents?)\` \u2014 \u540D\u524D\u5909\u66F4\u30FB\u79FB\u52D5\u30FB\u66F4\u65B0\u3002
|
|
658
|
+
- \`client.copyFile(fileId, name, parents?)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u3092\u30B3\u30D4\u30FC\u3002
|
|
659
|
+
- \`client.downloadFile(fileId)\` \u2014 \u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\uFF08\`Response\` \u3092\u8FD4\u3059\uFF09\u3002
|
|
660
|
+
- \`client.exportFile(fileId, mimeType)\` \u2014 Google Workspace \u30D5\u30A1\u30A4\u30EB\u3092\u5225\u5F62\u5F0F\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3002
|
|
661
|
+
- \`client.shareFile(fileId, type, role, emailAddress)\` \u2014 \u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u3092\u8FFD\u52A0\u3002
|
|
662
|
+
- \`client.listPermissions(fileId)\` \u2014 \u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3\u4E00\u89A7\u3092\u53D6\u5F97\u3002
|
|
663
|
+
|
|
664
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
607
665
|
|
|
608
666
|
#### Example
|
|
609
667
|
|
|
@@ -209,7 +209,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
209
209
|
return result;
|
|
210
210
|
}
|
|
211
211
|
static deriveKey(slug, authType) {
|
|
212
|
-
|
|
212
|
+
if (authType) return `${slug}-${authType}`;
|
|
213
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
214
|
+
// user-password
|
|
215
|
+
"postgresql": "user-password",
|
|
216
|
+
"mysql": "user-password",
|
|
217
|
+
"clickhouse": "user-password",
|
|
218
|
+
"kintone": "user-password",
|
|
219
|
+
"squadbase-db": "user-password",
|
|
220
|
+
// service-account
|
|
221
|
+
"snowflake": "service-account",
|
|
222
|
+
"bigquery": "service-account",
|
|
223
|
+
"google-analytics": "service-account",
|
|
224
|
+
"google-calendar": "service-account",
|
|
225
|
+
"aws-athena": "service-account",
|
|
226
|
+
"redshift": "service-account",
|
|
227
|
+
// api-key
|
|
228
|
+
"databricks": "api-key",
|
|
229
|
+
"dbt": "api-key",
|
|
230
|
+
"airtable": "api-key",
|
|
231
|
+
"openai": "api-key",
|
|
232
|
+
"gemini": "api-key",
|
|
233
|
+
"anthropic": "api-key",
|
|
234
|
+
"wix-store": "api-key"
|
|
235
|
+
};
|
|
236
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
237
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
238
|
+
return slug;
|
|
213
239
|
}
|
|
214
240
|
};
|
|
215
241
|
|
|
@@ -226,10 +252,10 @@ var AUTH_TYPES = {
|
|
|
226
252
|
// ../connectors/src/connectors/google-sheets/setup.ts
|
|
227
253
|
var googleSheetsOnboarding = new ConnectorOnboarding({
|
|
228
254
|
dataOverviewInstructions: {
|
|
229
|
-
en: `1. Create a new spreadsheet with google-
|
|
230
|
-
2. Call google-
|
|
231
|
-
ja: `1. google-
|
|
232
|
-
2. google-
|
|
255
|
+
en: `1. Create a new spreadsheet with google-sheets-oauth_request (POST with body { properties: { title: "..." } }) or use an existing spreadsheet ID.
|
|
256
|
+
2. Call google-sheets-oauth_request with GET /{spreadsheetId} to fetch spreadsheet metadata (sheet names and properties).`,
|
|
257
|
+
ja: `1. google-sheets-oauth_request \u3092 POST\uFF08Body: { properties: { title: "..." } }\uFF09\u3067\u547C\u3073\u51FA\u3057\u3066\u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3092\u4F5C\u6210\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u3092\u5229\u7528\u3057\u307E\u3059\u3002
|
|
258
|
+
2. google-sheets-oauth_request \u3067 GET /{spreadsheetId} \u3092\u547C\u3073\u51FA\u3057\u3001\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\uFF08\u30B7\u30FC\u30C8\u540D\u3068\u30D7\u30ED\u30D1\u30C6\u30A3\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002`
|
|
233
259
|
}
|
|
234
260
|
});
|
|
235
261
|
|
|
@@ -372,9 +398,11 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
372
398
|
]
|
|
373
399
|
},
|
|
374
400
|
systemPrompt: {
|
|
375
|
-
en: `### Tools
|
|
401
|
+
en: `### Tools (setup-time only)
|
|
402
|
+
|
|
403
|
+
- \`google-sheets-oauth_request\`: Call the Google Sheets API during setup / data overview. Supports read and write operations. Use it to get/update spreadsheet metadata, cell values, create new spreadsheets, and more. Authentication is configured automatically via OAuth.
|
|
376
404
|
|
|
377
|
-
|
|
405
|
+
> **Important**: The \`google-sheets-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).getValues\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
378
406
|
|
|
379
407
|
### Google Sheets API Reference
|
|
380
408
|
|
|
@@ -406,7 +434,18 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
406
434
|
|
|
407
435
|
### Business Logic
|
|
408
436
|
|
|
409
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
437
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT read \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
438
|
+
|
|
439
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
440
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://sheets.googleapis.com/v4/spreadsheets\`).
|
|
441
|
+
- \`client.getSpreadsheet(spreadsheetId)\` \u2014 fetch spreadsheet metadata.
|
|
442
|
+
- \`client.getValues(spreadsheetId, range)\` \u2014 read a range (A1 notation).
|
|
443
|
+
- \`client.batchGetValues(spreadsheetId, ranges)\` \u2014 read multiple ranges.
|
|
444
|
+
- \`client.updateValues(spreadsheetId, range, values)\` \u2014 write values to a range.
|
|
445
|
+
- \`client.appendValues(spreadsheetId, range, values)\` \u2014 append rows after the last row.
|
|
446
|
+
- \`client.createSpreadsheet(title, sheetNames?)\` \u2014 create a new spreadsheet.
|
|
447
|
+
|
|
448
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.
|
|
410
449
|
|
|
411
450
|
#### Example
|
|
412
451
|
|
|
@@ -433,9 +472,11 @@ await sheets.updateValues(spreadsheetId, "Sheet1!A1:B2", [["Name", "Score"], ["A
|
|
|
433
472
|
// Append rows
|
|
434
473
|
await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie", "88"]]);
|
|
435
474
|
\`\`\``,
|
|
436
|
-
ja: `### \u30C4\u30FC\u30EB
|
|
475
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
437
476
|
|
|
438
|
-
- \`google-
|
|
477
|
+
- \`google-sheets-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Sheets API \u3092\u547C\u3073\u51FA\u3059\u30C4\u30FC\u30EB\u3067\u3059\u3002\u8AAD\u307F\u53D6\u308A\u3068\u66F8\u304D\u8FBC\u307F\u306E\u4E21\u65B9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30FB\u30BB\u30EB\u5024\u306E\u53D6\u5F97/\u66F4\u65B0\u3001\u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u4F5C\u6210\u306A\u3069\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
478
|
+
|
|
479
|
+
> **\u91CD\u8981**: \`google-sheets-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).getValues\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
439
480
|
|
|
440
481
|
### Google Sheets API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
441
482
|
|
|
@@ -467,7 +508,18 @@ await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie"
|
|
|
467
508
|
|
|
468
509
|
### Business Logic
|
|
469
510
|
|
|
470
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
511
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
512
|
+
|
|
513
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
514
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\`path\` \u306F \`https://sheets.googleapis.com/v4/spreadsheets\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
515
|
+
- \`client.getSpreadsheet(spreadsheetId)\` \u2014 \u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
516
|
+
- \`client.getValues(spreadsheetId, range)\` \u2014 \u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97\uFF08A1 \u8868\u8A18\uFF09\u3002
|
|
517
|
+
- \`client.batchGetValues(spreadsheetId, ranges)\` \u2014 \u8907\u6570\u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97\u3002
|
|
518
|
+
- \`client.updateValues(spreadsheetId, range, values)\` \u2014 \u7BC4\u56F2\u306B\u5024\u3092\u66F8\u304D\u8FBC\u307F\u3002
|
|
519
|
+
- \`client.appendValues(spreadsheetId, range, values)\` \u2014 \u6700\u7D42\u884C\u306E\u5F8C\u306B\u884C\u3092\u8FFD\u52A0\u3002
|
|
520
|
+
- \`client.createSpreadsheet(title, sheetNames?)\` \u2014 \u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3092\u4F5C\u6210\u3002
|
|
521
|
+
|
|
522
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002
|
|
471
523
|
|
|
472
524
|
#### Example
|
|
473
525
|
|
|
@@ -173,7 +173,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
173
173
|
return result;
|
|
174
174
|
}
|
|
175
175
|
static deriveKey(slug, authType) {
|
|
176
|
-
|
|
176
|
+
if (authType) return `${slug}-${authType}`;
|
|
177
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
178
|
+
// user-password
|
|
179
|
+
"postgresql": "user-password",
|
|
180
|
+
"mysql": "user-password",
|
|
181
|
+
"clickhouse": "user-password",
|
|
182
|
+
"kintone": "user-password",
|
|
183
|
+
"squadbase-db": "user-password",
|
|
184
|
+
// service-account
|
|
185
|
+
"snowflake": "service-account",
|
|
186
|
+
"bigquery": "service-account",
|
|
187
|
+
"google-analytics": "service-account",
|
|
188
|
+
"google-calendar": "service-account",
|
|
189
|
+
"aws-athena": "service-account",
|
|
190
|
+
"redshift": "service-account",
|
|
191
|
+
// api-key
|
|
192
|
+
"databricks": "api-key",
|
|
193
|
+
"dbt": "api-key",
|
|
194
|
+
"airtable": "api-key",
|
|
195
|
+
"openai": "api-key",
|
|
196
|
+
"gemini": "api-key",
|
|
197
|
+
"anthropic": "api-key",
|
|
198
|
+
"wix-store": "api-key"
|
|
199
|
+
};
|
|
200
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
201
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
202
|
+
return slug;
|
|
177
203
|
}
|
|
178
204
|
};
|
|
179
205
|
|
|
@@ -190,10 +216,10 @@ var AUTH_TYPES = {
|
|
|
190
216
|
// ../connectors/src/connectors/google-slides/setup.ts
|
|
191
217
|
var googleSlidesOnboarding = new ConnectorOnboarding({
|
|
192
218
|
dataOverviewInstructions: {
|
|
193
|
-
en: `1. Create a new presentation with google-
|
|
194
|
-
2. Call google-
|
|
195
|
-
ja: `1. google-
|
|
196
|
-
2. google-
|
|
219
|
+
en: `1. Create a new presentation with google-slides-oauth_request (POST with body { title: "..." }) or use an existing presentation ID.
|
|
220
|
+
2. Call google-slides-oauth_request with GET /{presentationId} to fetch presentation metadata (title, slide count, layout info).`,
|
|
221
|
+
ja: `1. google-slides-oauth_request \u3092 POST\uFF08Body: { title: "..." }\uFF09\u3067\u547C\u3073\u51FA\u3057\u3066\u65B0\u3057\u3044\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u4F5C\u6210\u3059\u308B\u304B\u3001\u65E2\u5B58\u306E\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3ID\u3092\u5229\u7528\u3057\u307E\u3059\u3002
|
|
222
|
+
2. google-slides-oauth_request \u3067 GET /{presentationId} \u3092\u547C\u3073\u51FA\u3057\u3001\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\uFF08\u30BF\u30A4\u30C8\u30EB\u3001\u30B9\u30E9\u30A4\u30C9\u6570\u3001\u30EC\u30A4\u30A2\u30A6\u30C8\u60C5\u5831\uFF09\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002`
|
|
197
223
|
}
|
|
198
224
|
});
|
|
199
225
|
|
|
@@ -336,9 +362,11 @@ var googleSlidesConnector = new ConnectorPlugin({
|
|
|
336
362
|
]
|
|
337
363
|
},
|
|
338
364
|
systemPrompt: {
|
|
339
|
-
en: `### Tools
|
|
365
|
+
en: `### Tools (setup-time only)
|
|
366
|
+
|
|
367
|
+
- \`google-slides-oauth_request\`: Call the Google Slides API directly during setup / data overview. Supports read and write operations. Use it to get presentation metadata, slide content, create new presentations, and modify slides. Authentication is configured automatically via OAuth.
|
|
340
368
|
|
|
341
|
-
|
|
369
|
+
> **Important**: The \`google-slides-oauth_request\` tool is only available at setup time. Inside server-logic handlers, use the SDK (\`connection(id).createPresentation\`, etc.) \u2014 the SDK's fetch is already wired through the OAuth proxy. **Do NOT** hand-roll HTTP calls to \`_sqcore/connections/*/request\` from a handler.
|
|
342
370
|
|
|
343
371
|
### Google Slides API Reference
|
|
344
372
|
|
|
@@ -375,7 +403,14 @@ var googleSlidesConnector = new ConnectorPlugin({
|
|
|
375
403
|
|
|
376
404
|
### Business Logic
|
|
377
405
|
|
|
378
|
-
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables.
|
|
406
|
+
The business logic type for this connector is "typescript". Write handler code using the connector SDK shown below. Do NOT access credentials directly from environment variables and do NOT import from \`INTERNAL_SQUADBASE_*\` env vars \u2014 the SDK takes care of OAuth.
|
|
407
|
+
|
|
408
|
+
SDK surface (client created via \`connection(connectionId)\`):
|
|
409
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (returns a standard \`Response\`). \`path\` is appended to \`https://slides.googleapis.com/v1/presentations\`.
|
|
410
|
+
- \`client.getPresentation(presentationId)\` \u2014 fetch presentation metadata (title, slides, layouts, masters).
|
|
411
|
+
- \`client.getPage(presentationId, pageObjectId)\` \u2014 fetch one slide page with its elements.
|
|
412
|
+
- \`client.createPresentation(title)\` \u2014 create a new presentation.
|
|
413
|
+
- \`client.batchUpdate(presentationId, requests)\` \u2014 apply one or more requests (createSlide / insertText / createShape / etc.).
|
|
379
414
|
|
|
380
415
|
#### Example
|
|
381
416
|
|
|
@@ -401,10 +436,16 @@ await slides.batchUpdate(presentationId, [
|
|
|
401
436
|
{ createSlide: { insertionIndex: 1, slideLayoutReference: { predefinedLayout: "TITLE_AND_BODY" } } },
|
|
402
437
|
{ insertText: { objectId: "someShapeId", text: "Hello, World!" } },
|
|
403
438
|
]);
|
|
404
|
-
|
|
405
|
-
|
|
439
|
+
\`\`\`
|
|
440
|
+
|
|
441
|
+
#### Troubleshooting
|
|
442
|
+
|
|
443
|
+
If a handler test fails with \`Connection proxy is not configured\`, retry \u2014 this usually means the sandbox is still initializing. Do NOT abandon the SDK and construct OAuth proxy URLs manually.`,
|
|
444
|
+
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
406
445
|
|
|
407
|
-
- \`google-
|
|
446
|
+
- \`google-slides-oauth_request\`: \u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3084\u30C7\u30FC\u30BF\u6982\u8981\u628A\u63E1\u6642\u306B Google Slides API \u3092\u76F4\u63A5\u53E9\u304F\u30C4\u30FC\u30EB\u3067\u3059\u3002\u8AAD\u307F\u53D6\u308A\u3068\u66F8\u304D\u8FBC\u307F\u306E\u4E21\u65B9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u30FB\u30B9\u30E9\u30A4\u30C9\u5185\u5BB9\u306E\u53D6\u5F97\u3001\u65B0\u3057\u3044\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u4F5C\u6210\u3001\u30B9\u30E9\u30A4\u30C9\u306E\u5909\u66F4\u306A\u3069\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
447
|
+
|
|
448
|
+
> **\u91CD\u8981**: \`google-slides-oauth_request\` \u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\u5229\u7528\u53EF\u80FD\u3067\u3059\u3002\u30B5\u30FC\u30D0\u30FC\u30ED\u30B8\u30C3\u30AF\u306E\u30CF\u30F3\u30C9\u30E9\u5185\u3067\u306F\u5FC5\u305A SDK\uFF08\`connection(id).createPresentation\` \u306A\u3069\uFF09\u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002SDK \u306E fetch \u306F OAuth \u30D7\u30ED\u30AD\u30B7\u7D4C\u7531\u3067\u65E2\u306B\u914D\u7DDA\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30CF\u30F3\u30C9\u30E9\u304B\u3089 \`_sqcore/connections/*/request\` \u3092\u624B\u66F8\u304D\u3067\u547C\u3073\u51FA\u3055\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
408
449
|
|
|
409
450
|
### Google Slides API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9
|
|
410
451
|
|
|
@@ -441,7 +482,14 @@ await slides.batchUpdate(presentationId, [
|
|
|
441
482
|
|
|
442
483
|
### Business Logic
|
|
443
484
|
|
|
444
|
-
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\
|
|
485
|
+
\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306E\u30D3\u30B8\u30CD\u30B9\u30ED\u30B8\u30C3\u30AF\u30BF\u30A4\u30D7\u306F "typescript" \u3067\u3059\u3002\u4EE5\u4E0B\u306B\u793A\u3059\u30B3\u30CD\u30AF\u30BF SDK \u3092\u4F7F\u7528\u3057\u3066\u30CF\u30F3\u30C9\u30E9\u30B3\u30FC\u30C9\u3092\u8A18\u8FF0\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u74B0\u5883\u5909\u6570\u304B\u3089\u76F4\u63A5\u8A8D\u8A3C\u60C5\u5831\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\`INTERNAL_SQUADBASE_*\` \u306E\u74B0\u5883\u5909\u6570\u3092\u4F7F\u3063\u3066\u624B\u52D5\u3067 OAuth \u30D7\u30ED\u30AD\u30B7\u3092\u53E9\u304F\u3053\u3068\u3082\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 \u2014 SDK \u304C OAuth \u3092\u51E6\u7406\u3057\u307E\u3059\u3002
|
|
486
|
+
|
|
487
|
+
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
488
|
+
- \`client.request(path, init?)\` \u2014 \u4F4E\u30EC\u30D9\u30EB\u306E\u8A8D\u8A3C\u4ED8\u304D fetch\uFF08\u6A19\u6E96 \`Response\` \u3092\u8FD4\u3059\uFF09\u3002\`path\` \u306F \`https://slides.googleapis.com/v1/presentations\` \u306B\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002
|
|
489
|
+
- \`client.getPresentation(presentationId)\` \u2014 \u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
490
|
+
- \`client.getPage(presentationId, pageObjectId)\` \u2014 \u7279\u5B9A\u306E\u30B9\u30E9\u30A4\u30C9\u30DA\u30FC\u30B8\u3068\u305D\u306E\u8981\u7D20\u3092\u53D6\u5F97\u3002
|
|
491
|
+
- \`client.createPresentation(title)\` \u2014 \u65B0\u3057\u3044\u30D7\u30EC\u30BC\u30F3\u30C6\u30FC\u30B7\u30E7\u30F3\u3092\u4F5C\u6210\u3002
|
|
492
|
+
- \`client.batchUpdate(presentationId, requests)\` \u2014 createSlide / insertText / createShape \u306A\u3069\u306E\u30EA\u30AF\u30A8\u30B9\u30C8\u3092\u307E\u3068\u3081\u3066\u9069\u7528\u3002
|
|
445
493
|
|
|
446
494
|
#### Example
|
|
447
495
|
|
|
@@ -467,7 +515,11 @@ await slides.batchUpdate(presentationId, [
|
|
|
467
515
|
{ createSlide: { insertionIndex: 1, slideLayoutReference: { predefinedLayout: "TITLE_AND_BODY" } } },
|
|
468
516
|
{ insertText: { objectId: "someShapeId", text: "Hello, World!" } },
|
|
469
517
|
]);
|
|
470
|
-
|
|
518
|
+
\`\`\`
|
|
519
|
+
|
|
520
|
+
#### \u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0
|
|
521
|
+
|
|
522
|
+
\u30CF\u30F3\u30C9\u30E9\u306E\u30C6\u30B9\u30C8\u304C \`Connection proxy is not configured\` \u3067\u5931\u6557\u3059\u308B\u5834\u5408\u306F\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u901A\u5E38\u306F\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9\u306E\u521D\u671F\u5316\u4E2D\u306B\u8D77\u304D\u307E\u3059\u3002SDK \u3092\u8AE6\u3081\u3066 OAuth \u30D7\u30ED\u30AD\u30B7\u306E URL \u3092\u81EA\u5206\u3067\u7D44\u307F\u7ACB\u3066\u308B\u3053\u3068\u306F **\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044**\u3002`
|
|
471
523
|
},
|
|
472
524
|
tools
|
|
473
525
|
});
|
|
@@ -270,7 +270,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
270
270
|
return result;
|
|
271
271
|
}
|
|
272
272
|
static deriveKey(slug, authType) {
|
|
273
|
-
|
|
273
|
+
if (authType) return `${slug}-${authType}`;
|
|
274
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
275
|
+
// user-password
|
|
276
|
+
"postgresql": "user-password",
|
|
277
|
+
"mysql": "user-password",
|
|
278
|
+
"clickhouse": "user-password",
|
|
279
|
+
"kintone": "user-password",
|
|
280
|
+
"squadbase-db": "user-password",
|
|
281
|
+
// service-account
|
|
282
|
+
"snowflake": "service-account",
|
|
283
|
+
"bigquery": "service-account",
|
|
284
|
+
"google-analytics": "service-account",
|
|
285
|
+
"google-calendar": "service-account",
|
|
286
|
+
"aws-athena": "service-account",
|
|
287
|
+
"redshift": "service-account",
|
|
288
|
+
// api-key
|
|
289
|
+
"databricks": "api-key",
|
|
290
|
+
"dbt": "api-key",
|
|
291
|
+
"airtable": "api-key",
|
|
292
|
+
"openai": "api-key",
|
|
293
|
+
"gemini": "api-key",
|
|
294
|
+
"anthropic": "api-key",
|
|
295
|
+
"wix-store": "api-key"
|
|
296
|
+
};
|
|
297
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
298
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
299
|
+
return slug;
|
|
274
300
|
}
|
|
275
301
|
};
|
|
276
302
|
|
|
@@ -115,7 +115,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
115
115
|
return result;
|
|
116
116
|
}
|
|
117
117
|
static deriveKey(slug, authType) {
|
|
118
|
-
|
|
118
|
+
if (authType) return `${slug}-${authType}`;
|
|
119
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
120
|
+
// user-password
|
|
121
|
+
"postgresql": "user-password",
|
|
122
|
+
"mysql": "user-password",
|
|
123
|
+
"clickhouse": "user-password",
|
|
124
|
+
"kintone": "user-password",
|
|
125
|
+
"squadbase-db": "user-password",
|
|
126
|
+
// service-account
|
|
127
|
+
"snowflake": "service-account",
|
|
128
|
+
"bigquery": "service-account",
|
|
129
|
+
"google-analytics": "service-account",
|
|
130
|
+
"google-calendar": "service-account",
|
|
131
|
+
"aws-athena": "service-account",
|
|
132
|
+
"redshift": "service-account",
|
|
133
|
+
// api-key
|
|
134
|
+
"databricks": "api-key",
|
|
135
|
+
"dbt": "api-key",
|
|
136
|
+
"airtable": "api-key",
|
|
137
|
+
"openai": "api-key",
|
|
138
|
+
"gemini": "api-key",
|
|
139
|
+
"anthropic": "api-key",
|
|
140
|
+
"wix-store": "api-key"
|
|
141
|
+
};
|
|
142
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
143
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
144
|
+
return slug;
|
|
119
145
|
}
|
|
120
146
|
};
|
|
121
147
|
|
|
@@ -244,7 +244,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
244
244
|
return result;
|
|
245
245
|
}
|
|
246
246
|
static deriveKey(slug, authType) {
|
|
247
|
-
|
|
247
|
+
if (authType) return `${slug}-${authType}`;
|
|
248
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
249
|
+
// user-password
|
|
250
|
+
"postgresql": "user-password",
|
|
251
|
+
"mysql": "user-password",
|
|
252
|
+
"clickhouse": "user-password",
|
|
253
|
+
"kintone": "user-password",
|
|
254
|
+
"squadbase-db": "user-password",
|
|
255
|
+
// service-account
|
|
256
|
+
"snowflake": "service-account",
|
|
257
|
+
"bigquery": "service-account",
|
|
258
|
+
"google-analytics": "service-account",
|
|
259
|
+
"google-calendar": "service-account",
|
|
260
|
+
"aws-athena": "service-account",
|
|
261
|
+
"redshift": "service-account",
|
|
262
|
+
// api-key
|
|
263
|
+
"databricks": "api-key",
|
|
264
|
+
"dbt": "api-key",
|
|
265
|
+
"airtable": "api-key",
|
|
266
|
+
"openai": "api-key",
|
|
267
|
+
"gemini": "api-key",
|
|
268
|
+
"anthropic": "api-key",
|
|
269
|
+
"wix-store": "api-key"
|
|
270
|
+
};
|
|
271
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
272
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
273
|
+
return slug;
|
|
248
274
|
}
|
|
249
275
|
};
|
|
250
276
|
|
|
@@ -115,7 +115,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
115
115
|
return result;
|
|
116
116
|
}
|
|
117
117
|
static deriveKey(slug, authType) {
|
|
118
|
-
|
|
118
|
+
if (authType) return `${slug}-${authType}`;
|
|
119
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
120
|
+
// user-password
|
|
121
|
+
"postgresql": "user-password",
|
|
122
|
+
"mysql": "user-password",
|
|
123
|
+
"clickhouse": "user-password",
|
|
124
|
+
"kintone": "user-password",
|
|
125
|
+
"squadbase-db": "user-password",
|
|
126
|
+
// service-account
|
|
127
|
+
"snowflake": "service-account",
|
|
128
|
+
"bigquery": "service-account",
|
|
129
|
+
"google-analytics": "service-account",
|
|
130
|
+
"google-calendar": "service-account",
|
|
131
|
+
"aws-athena": "service-account",
|
|
132
|
+
"redshift": "service-account",
|
|
133
|
+
// api-key
|
|
134
|
+
"databricks": "api-key",
|
|
135
|
+
"dbt": "api-key",
|
|
136
|
+
"airtable": "api-key",
|
|
137
|
+
"openai": "api-key",
|
|
138
|
+
"gemini": "api-key",
|
|
139
|
+
"anthropic": "api-key",
|
|
140
|
+
"wix-store": "api-key"
|
|
141
|
+
};
|
|
142
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
143
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
144
|
+
return slug;
|
|
119
145
|
}
|
|
120
146
|
};
|
|
121
147
|
|
|
@@ -262,7 +262,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
262
262
|
return result;
|
|
263
263
|
}
|
|
264
264
|
static deriveKey(slug, authType) {
|
|
265
|
-
|
|
265
|
+
if (authType) return `${slug}-${authType}`;
|
|
266
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
267
|
+
// user-password
|
|
268
|
+
"postgresql": "user-password",
|
|
269
|
+
"mysql": "user-password",
|
|
270
|
+
"clickhouse": "user-password",
|
|
271
|
+
"kintone": "user-password",
|
|
272
|
+
"squadbase-db": "user-password",
|
|
273
|
+
// service-account
|
|
274
|
+
"snowflake": "service-account",
|
|
275
|
+
"bigquery": "service-account",
|
|
276
|
+
"google-analytics": "service-account",
|
|
277
|
+
"google-calendar": "service-account",
|
|
278
|
+
"aws-athena": "service-account",
|
|
279
|
+
"redshift": "service-account",
|
|
280
|
+
// api-key
|
|
281
|
+
"databricks": "api-key",
|
|
282
|
+
"dbt": "api-key",
|
|
283
|
+
"airtable": "api-key",
|
|
284
|
+
"openai": "api-key",
|
|
285
|
+
"gemini": "api-key",
|
|
286
|
+
"anthropic": "api-key",
|
|
287
|
+
"wix-store": "api-key"
|
|
288
|
+
};
|
|
289
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
290
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
291
|
+
return slug;
|
|
266
292
|
}
|
|
267
293
|
};
|
|
268
294
|
|
|
@@ -211,7 +211,33 @@ var ConnectorPlugin = class _ConnectorPlugin {
|
|
|
211
211
|
return result;
|
|
212
212
|
}
|
|
213
213
|
static deriveKey(slug, authType) {
|
|
214
|
-
|
|
214
|
+
if (authType) return `${slug}-${authType}`;
|
|
215
|
+
const LEGACY_NULL_AUTH_TYPE_MAP = {
|
|
216
|
+
// user-password
|
|
217
|
+
"postgresql": "user-password",
|
|
218
|
+
"mysql": "user-password",
|
|
219
|
+
"clickhouse": "user-password",
|
|
220
|
+
"kintone": "user-password",
|
|
221
|
+
"squadbase-db": "user-password",
|
|
222
|
+
// service-account
|
|
223
|
+
"snowflake": "service-account",
|
|
224
|
+
"bigquery": "service-account",
|
|
225
|
+
"google-analytics": "service-account",
|
|
226
|
+
"google-calendar": "service-account",
|
|
227
|
+
"aws-athena": "service-account",
|
|
228
|
+
"redshift": "service-account",
|
|
229
|
+
// api-key
|
|
230
|
+
"databricks": "api-key",
|
|
231
|
+
"dbt": "api-key",
|
|
232
|
+
"airtable": "api-key",
|
|
233
|
+
"openai": "api-key",
|
|
234
|
+
"gemini": "api-key",
|
|
235
|
+
"anthropic": "api-key",
|
|
236
|
+
"wix-store": "api-key"
|
|
237
|
+
};
|
|
238
|
+
const fallbackAuthType = LEGACY_NULL_AUTH_TYPE_MAP[slug];
|
|
239
|
+
if (fallbackAuthType) return `${slug}-${fallbackAuthType}`;
|
|
240
|
+
return slug;
|
|
215
241
|
}
|
|
216
242
|
};
|
|
217
243
|
|