@squadbase/vite-server 0.1.6 → 0.1.7-dev.1
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 +238 -147
- package/dist/connectors/google-sheets.js +95 -138
- package/dist/connectors/influxdb.js +119 -29
- package/dist/connectors/sentry.js +1 -1
- package/dist/connectors/shopify.js +2 -0
- package/dist/index.js +238 -147
- package/dist/main.js +238 -147
- package/dist/vite-plugin.js +238 -147
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -72734,19 +72734,6 @@ await drive.updateFile("fileId123", {}, "newFolderId", "oldFolderId");
|
|
|
72734
72734
|
}
|
|
72735
72735
|
});
|
|
72736
72736
|
|
|
72737
|
-
// ../connectors/src/connectors/google-sheets/setup.ts
|
|
72738
|
-
var googleSheetsOnboarding = new ConnectorOnboarding({
|
|
72739
|
-
dataOverviewInstructions: {
|
|
72740
|
-
en: `1. Create a new spreadsheet with google-sheets-oauth_request (POST with body { properties: { title: "..." } }) or use an existing spreadsheet ID.
|
|
72741
|
-
2. Call google-sheets-oauth_request with GET /{spreadsheetId} to fetch spreadsheet metadata (sheet names and properties).`,
|
|
72742
|
-
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
|
|
72743
|
-
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`
|
|
72744
|
-
}
|
|
72745
|
-
});
|
|
72746
|
-
|
|
72747
|
-
// ../connectors/src/connectors/google-sheets/parameters.ts
|
|
72748
|
-
var parameters18 = {};
|
|
72749
|
-
|
|
72750
72737
|
// ../connectors/src/connectors/google-sheets/tools/request.ts
|
|
72751
72738
|
import { z as z27 } from "zod";
|
|
72752
72739
|
var SHEETS_BASE_URL = "https://sheets.googleapis.com/v4/spreadsheets";
|
|
@@ -72787,11 +72774,10 @@ var inputSchema27 = z27.object({
|
|
|
72787
72774
|
"Brief description of what you intend to accomplish with this tool call"
|
|
72788
72775
|
),
|
|
72789
72776
|
connectionId: z27.string().describe("ID of the Google Sheets connection to use"),
|
|
72790
|
-
method: z27.enum(["GET"
|
|
72777
|
+
method: z27.enum(["GET"]).describe("HTTP method. Only GET is supported (read-only analysis)."),
|
|
72791
72778
|
path: z27.string().describe(
|
|
72792
|
-
"API path appended to https://sheets.googleapis.com/v4/spreadsheets (e.g., '
|
|
72779
|
+
"API path appended to https://sheets.googleapis.com/v4/spreadsheets (e.g., '/{spreadsheetId}', '/{spreadsheetId}/values/Sheet1!A1:D10'). The `{spreadsheetId}` placeholder is automatically replaced with the connection's configured spreadsheet ID."
|
|
72793
72780
|
),
|
|
72794
|
-
body: z27.record(z27.string(), z27.unknown()).optional().describe("JSON request body for POST/PUT requests"),
|
|
72795
72781
|
queryParams: z27.record(z27.string(), z27.string()).optional().describe("Query parameters to append to the URL")
|
|
72796
72782
|
});
|
|
72797
72783
|
var outputSchema27 = z27.discriminatedUnion("success", [
|
|
@@ -72807,12 +72793,12 @@ var outputSchema27 = z27.discriminatedUnion("success", [
|
|
|
72807
72793
|
]);
|
|
72808
72794
|
var requestTool9 = new ConnectorTool({
|
|
72809
72795
|
name: "request",
|
|
72810
|
-
description: `Send authenticated requests to the Google Sheets API v4.
|
|
72811
|
-
|
|
72796
|
+
description: `Send authenticated GET requests to the Google Sheets API v4 for read-only analysis.
|
|
72797
|
+
The \`{spreadsheetId}\` placeholder in the path is automatically replaced with the connection's configured spreadsheet ID.
|
|
72812
72798
|
Authentication is handled automatically via OAuth proxy.`,
|
|
72813
72799
|
inputSchema: inputSchema27,
|
|
72814
72800
|
outputSchema: outputSchema27,
|
|
72815
|
-
async execute({ connectionId, method, path: path5,
|
|
72801
|
+
async execute({ connectionId, method, path: path5, queryParams }, connections, config) {
|
|
72816
72802
|
const connection = connections.find((c6) => c6.id === connectionId);
|
|
72817
72803
|
if (!connection) {
|
|
72818
72804
|
return {
|
|
@@ -72842,8 +72828,7 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
72842
72828
|
},
|
|
72843
72829
|
body: JSON.stringify({
|
|
72844
72830
|
url,
|
|
72845
|
-
method
|
|
72846
|
-
...body != null ? { body: JSON.stringify(body) } : {}
|
|
72831
|
+
method
|
|
72847
72832
|
}),
|
|
72848
72833
|
signal: controller.signal
|
|
72849
72834
|
});
|
|
@@ -72863,13 +72848,69 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
72863
72848
|
}
|
|
72864
72849
|
});
|
|
72865
72850
|
|
|
72851
|
+
// ../connectors/src/connectors/google-sheets/setup.ts
|
|
72852
|
+
var requestToolName = `google-sheets-oauth_${requestTool9.name}`;
|
|
72853
|
+
var googleSheetsOnboarding = new ConnectorOnboarding({
|
|
72854
|
+
connectionSetupInstructions: {
|
|
72855
|
+
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Google Sheets (OAuth) \u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u5206\u6790\u5BFE\u8C61\u306E\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306F\u30E6\u30FC\u30B6\u30FC\u304B\u3089\u53D7\u3051\u53D6\u3063\u305FURL\u3067\u6307\u5B9A\u3057\u307E\u3059\uFF08\u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306F\u4F5C\u6210\u3057\u307E\u305B\u3093\uFF09\u3002
|
|
72856
|
+
|
|
72857
|
+
1. \`askUserQuestion\` \u3067\u5206\u6790\u5BFE\u8C61\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306EURL\u3092\u30D2\u30A2\u30EA\u30F3\u30B0\u3059\u308B:
|
|
72858
|
+
- \`type\`: \`"freeText"\`
|
|
72859
|
+
- \`question\`: \u300C\u5206\u6790\u3057\u305F\u3044Google Sheets\u306EURL\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u300D
|
|
72860
|
+
- \`placeholder\`: \`"https://docs.google.com/spreadsheets/d/.../edit"\`
|
|
72861
|
+
2. \u53D7\u3051\u53D6\u3063\u305FURL\u304B\u3089\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u3092\u62BD\u51FA\u3059\u308B\u3002URL\u306E \`/d/\` \u3068 \`/edit\`\uFF08\u307E\u305F\u306F\u672B\u5C3E\uFF09\u306E\u9593\u306B\u3042\u308B\u6587\u5B57\u5217\u304C\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u3067\u3059\uFF08\u4F8B: \`https://docs.google.com/spreadsheets/d/1AbCxyz.../edit\` \u2192 \`1AbCxyz...\`\uFF09\u3002URL\u3067\u306F\u306A\u304FID\u3060\u3051\u304C\u6E21\u3055\u308C\u305F\u5834\u5408\u306F\u305D\u306E\u307E\u307E\u5229\u7528\u3057\u307E\u3059\u3002
|
|
72862
|
+
3. \u62BD\u51FA\u3057\u305FID\u3092 \`updateConnectionParameters\` \u3067\u4FDD\u5B58\u3059\u308B:
|
|
72863
|
+
- \`parameterSlug\`: \`"spreadsheet-id"\`
|
|
72864
|
+
- \`options\`: \`[{ value: <\u62BD\u51FA\u3057\u305FID>, label: <\u540C\u3058\u5024> }]\`\uFF081\u4EF6\u306E\u307F\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u81EA\u52D5\u9078\u629E\u3055\u308C\u308B\uFF09
|
|
72865
|
+
4. \`${requestToolName}\` \u3067\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3059\u308B:
|
|
72866
|
+
- \`method\`: \`"GET"\`
|
|
72867
|
+
- \`path\`: \`"/{spreadsheetId}"\`
|
|
72868
|
+
5. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u4EE5\u4E0B\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u30E6\u30FC\u30B6\u30FC\u306B\u4F1D\u3048\u308B:
|
|
72869
|
+
- OAuth\u3067\u63A5\u7D9A\u3057\u305FGoogle\u30A2\u30AB\u30A6\u30F3\u30C8\u304C\u305D\u306E\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306B\u95B2\u89A7\u6A29\u9650\u3092\u6301\u3063\u3066\u3044\u308B\u304B
|
|
72870
|
+
- \u5165\u529B\u3055\u308C\u305FURL\u304C\u6B63\u3057\u3044\u304B
|
|
72871
|
+
|
|
72872
|
+
#### \u5236\u7D04
|
|
72873
|
+
- **\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u30BB\u30EB\u5024\u3092\u5927\u91CF\u306B\u53D6\u5F97\u3057\u306A\u3044\u3053\u3068**\u3002\u5B9F\u884C\u3057\u3066\u3088\u3044\u306E\u306F\u4E0A\u8A18\u624B\u9806\u3067\u6307\u5B9A\u3055\u308C\u305F\u30E1\u30BF\u30C7\u30FC\u30BF\u53D6\u5F97\u306E\u307F
|
|
72874
|
+
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
72875
|
+
en: `Follow these steps to set up the Google Sheets (OAuth) connection. The spreadsheet to analyze is specified by the URL provided by the user (no new spreadsheet is created).
|
|
72876
|
+
|
|
72877
|
+
1. Call \`askUserQuestion\` to ask for the spreadsheet URL to analyze:
|
|
72878
|
+
- \`type\`: \`"freeText"\`
|
|
72879
|
+
- \`question\`: "Please paste the URL of the Google Sheet you want to analyze"
|
|
72880
|
+
- \`placeholder\`: \`"https://docs.google.com/spreadsheets/d/.../edit"\`
|
|
72881
|
+
2. Extract the spreadsheet ID from the URL. It is the segment between \`/d/\` and \`/edit\` (or the end of the URL), e.g. \`https://docs.google.com/spreadsheets/d/1AbCxyz.../edit\` \u2192 \`1AbCxyz...\`. If the user pasted just the ID, use it as-is.
|
|
72882
|
+
3. Save the extracted ID via \`updateConnectionParameters\`:
|
|
72883
|
+
- \`parameterSlug\`: \`"spreadsheet-id"\`
|
|
72884
|
+
- \`options\`: \`[{ value: <extracted ID>, label: <same value> }]\` (a single option is auto-selected)
|
|
72885
|
+
4. Verify access by calling \`${requestToolName}\`:
|
|
72886
|
+
- \`method\`: \`"GET"\`
|
|
72887
|
+
- \`path\`: \`"/{spreadsheetId}"\`
|
|
72888
|
+
5. If an error is returned, ask the user to verify:
|
|
72889
|
+
- The OAuthed Google account has read access to the spreadsheet
|
|
72890
|
+
- The URL they entered is correct
|
|
72891
|
+
|
|
72892
|
+
#### Constraints
|
|
72893
|
+
- **Do NOT read large amounts of cell data during setup**. Only the metadata request specified above is allowed
|
|
72894
|
+
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
72895
|
+
},
|
|
72896
|
+
dataOverviewInstructions: {
|
|
72897
|
+
en: `1. Call ${requestToolName} with GET /{spreadsheetId} to fetch spreadsheet metadata (sheet names, grid properties)
|
|
72898
|
+
2. For each sheet of interest, call ${requestToolName} with GET /{spreadsheetId}/values/{SheetName}!A1:Z5 to sample the first rows and understand the column layout`,
|
|
72899
|
+
ja: `1. ${requestToolName} \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\u3001\u30B0\u30EA\u30C3\u30C9\u30D7\u30ED\u30D1\u30C6\u30A3\uFF09\u3092\u53D6\u5F97
|
|
72900
|
+
2. \u4E3B\u8981\u306A\u30B7\u30FC\u30C8\u306B\u3064\u3044\u3066 ${requestToolName} \u3067 GET /{spreadsheetId}/values/{\u30B7\u30FC\u30C8\u540D}!A1:Z5 \u3092\u547C\u3073\u51FA\u3057\u3001\u5148\u982D\u6570\u884C\u3092\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0\u3057\u3066\u30AB\u30E9\u30E0\u69CB\u9020\u3092\u628A\u63E1`
|
|
72901
|
+
}
|
|
72902
|
+
});
|
|
72903
|
+
|
|
72904
|
+
// ../connectors/src/connectors/google-sheets/parameters.ts
|
|
72905
|
+
var parameters18 = {};
|
|
72906
|
+
|
|
72866
72907
|
// ../connectors/src/connectors/google-sheets/index.ts
|
|
72867
72908
|
var tools18 = { request: requestTool9 };
|
|
72868
72909
|
var googleSheetsConnector = new ConnectorPlugin({
|
|
72869
72910
|
slug: "google-sheets",
|
|
72870
72911
|
authType: AUTH_TYPES.OAUTH,
|
|
72871
72912
|
name: "Google Sheets",
|
|
72872
|
-
description: "Connect to Google Sheets for
|
|
72913
|
+
description: "Connect to an existing Google Sheets spreadsheet for read-only data analysis using OAuth.",
|
|
72873
72914
|
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/1UPQuggyiZmbb26CuaSr2h/032770e8739b183fa00b7625f024e536/google-sheets.svg",
|
|
72874
72915
|
parameters: parameters18,
|
|
72875
72916
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
@@ -72878,30 +72919,25 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
72878
72919
|
allowlist: [
|
|
72879
72920
|
{
|
|
72880
72921
|
host: "sheets.googleapis.com",
|
|
72881
|
-
methods: ["GET"
|
|
72922
|
+
methods: ["GET"]
|
|
72882
72923
|
}
|
|
72883
72924
|
]
|
|
72884
72925
|
},
|
|
72885
72926
|
systemPrompt: {
|
|
72886
72927
|
en: `### Tools (setup-time only)
|
|
72887
72928
|
|
|
72888
|
-
- \`google-sheets-oauth_request\`: Call the Google Sheets API during setup / data overview.
|
|
72929
|
+
- \`google-sheets-oauth_request\`: Call the Google Sheets API during setup / data overview. Read-only (GET only). Use it to fetch spreadsheet metadata and sample cell values. The \`{spreadsheetId}\` placeholder in the path is automatically replaced with the spreadsheet configured at setup time. Authentication is configured automatically via OAuth.
|
|
72889
72930
|
|
|
72890
72931
|
> **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.
|
|
72891
72932
|
|
|
72892
|
-
|
|
72933
|
+
> **Connection scope**: Each connection is bound to a single spreadsheet selected at setup time via URL. This connector does NOT create new spreadsheets and does NOT write to spreadsheets. The OAuth scope is \`spreadsheets.readonly\`.
|
|
72934
|
+
|
|
72935
|
+
### Google Sheets API Reference (read-only)
|
|
72893
72936
|
|
|
72894
|
-
#### Read Endpoints
|
|
72895
72937
|
- GET \`/{spreadsheetId}\` \u2014 Get spreadsheet metadata (title, sheets, properties)
|
|
72896
72938
|
- GET \`/{spreadsheetId}/values/{range}\` \u2014 Get cell values for a range
|
|
72897
72939
|
- GET \`/{spreadsheetId}/values:batchGet?ranges={range1}&ranges={range2}\` \u2014 Get values for multiple ranges
|
|
72898
72940
|
|
|
72899
|
-
#### Write Endpoints
|
|
72900
|
-
- POST \`\` (empty path, with body) \u2014 Create a new spreadsheet. Body: \`{ "properties": { "title": "My Sheet" }, "sheets": [{ "properties": { "title": "Sheet1" } }] }\`
|
|
72901
|
-
- PUT \`/{spreadsheetId}/values/{range}?valueInputOption=USER_ENTERED\` \u2014 Update cell values for a range. Body: \`{ "range": "Sheet1!A1:B2", "majorDimension": "ROWS", "values": [["a","b"],["c","d"]] }\`
|
|
72902
|
-
- POST \`/{spreadsheetId}/values/{range}:append?valueInputOption=USER_ENTERED&insertDataOption=INSERT_ROWS\` \u2014 Append rows after the last row. Body: \`{ "range": "Sheet1!A1", "majorDimension": "ROWS", "values": [["a","b"]] }\`
|
|
72903
|
-
- POST \`/{spreadsheetId}:batchUpdate\` \u2014 Apply multiple updates (formatting, add sheets, merge cells, etc.). Body: \`{ "requests": [...] }\`
|
|
72904
|
-
|
|
72905
72941
|
### Range Notation (A1 notation)
|
|
72906
72942
|
- \`Sheet1!A1:D10\` \u2014 Specific range on Sheet1
|
|
72907
72943
|
- \`Sheet1!A:A\` \u2014 Entire column A on Sheet1
|
|
@@ -72914,21 +72950,17 @@ var googleSheetsConnector = new ConnectorPlugin({
|
|
|
72914
72950
|
- Use \`valueRenderOption=FORMATTED_VALUE\` query param to get display values
|
|
72915
72951
|
- Use \`valueRenderOption=UNFORMATTED_VALUE\` for raw numeric values
|
|
72916
72952
|
- Use \`majorDimension=COLUMNS\` to get data organized by columns instead of rows
|
|
72917
|
-
- For write operations, always use \`valueInputOption=USER_ENTERED\` so values are parsed as if typed by a user (dates, numbers, formulas are auto-detected)
|
|
72918
|
-
- Sharing (permissions) cannot be done via this connector; only the OAuth user has access to the created spreadsheets
|
|
72919
72953
|
|
|
72920
72954
|
### Business Logic
|
|
72921
72955
|
|
|
72922
|
-
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.
|
|
72956
|
+
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. The spreadsheet ID is bound to the connection at setup time; do NOT ask handler callers to pass it.
|
|
72923
72957
|
|
|
72924
72958
|
SDK surface (client created via \`connection(connectionId)\`):
|
|
72925
|
-
- \`client.
|
|
72926
|
-
- \`client.
|
|
72927
|
-
- \`client.
|
|
72928
|
-
- \`client.
|
|
72929
|
-
- \`client.
|
|
72930
|
-
- \`client.appendValues(spreadsheetId, range, values)\` \u2014 append rows after the last row.
|
|
72931
|
-
- \`client.createSpreadsheet(title, sheetNames?)\` \u2014 create a new spreadsheet.
|
|
72959
|
+
- \`client.spreadsheetId\` \u2014 the spreadsheet ID configured for this connection.
|
|
72960
|
+
- \`client.request(path, init?)\` \u2014 low-level authenticated fetch (\`path\` is appended to \`https://sheets.googleapis.com/v4/spreadsheets\`; \`{spreadsheetId}\` is auto-replaced).
|
|
72961
|
+
- \`client.getSpreadsheet()\` \u2014 fetch spreadsheet metadata for the configured spreadsheet.
|
|
72962
|
+
- \`client.getValues(range)\` \u2014 read a range (A1 notation) from the configured spreadsheet.
|
|
72963
|
+
- \`client.batchGetValues(ranges)\` \u2014 read multiple ranges from the configured spreadsheet.
|
|
72932
72964
|
|
|
72933
72965
|
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.
|
|
72934
72966
|
|
|
@@ -72939,43 +72971,31 @@ import { connection } from "@squadbase/vite-server/connectors/google-sheets";
|
|
|
72939
72971
|
|
|
72940
72972
|
const sheets = connection("<connectionId>");
|
|
72941
72973
|
|
|
72942
|
-
//
|
|
72943
|
-
const
|
|
72944
|
-
const spreadsheetId = newSheet.spreadsheetId;
|
|
72945
|
-
|
|
72946
|
-
// Get spreadsheet metadata
|
|
72947
|
-
const metadata = await sheets.getSpreadsheet(spreadsheetId);
|
|
72974
|
+
// Get metadata for the configured spreadsheet
|
|
72975
|
+
const metadata = await sheets.getSpreadsheet();
|
|
72948
72976
|
console.log(metadata.properties.title, metadata.sheets.map(s => s.properties.title));
|
|
72949
72977
|
|
|
72950
72978
|
// Get cell values
|
|
72951
|
-
const values = await sheets.getValues(
|
|
72979
|
+
const values = await sheets.getValues("Sheet1!A1:D10");
|
|
72952
72980
|
console.log(values.values); // 2D array
|
|
72953
72981
|
|
|
72954
|
-
//
|
|
72955
|
-
await sheets.
|
|
72956
|
-
|
|
72957
|
-
// Append rows
|
|
72958
|
-
await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie", "88"]]);
|
|
72982
|
+
// Batch-get multiple ranges
|
|
72983
|
+
const batch = await sheets.batchGetValues(["Sheet1!A:A", "Sheet2!B2:C100"]);
|
|
72959
72984
|
\`\`\``,
|
|
72960
72985
|
ja: `### \u30C4\u30FC\u30EB\uFF08\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306E\u307F\uFF09
|
|
72961
72986
|
|
|
72962
|
-
- \`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\
|
|
72987
|
+
- \`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\u5C02\u7528\uFF08GET \u306E\u307F\uFF09\u3067\u3059\u3002\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u53D6\u5F97\u3084\u30BB\u30EB\u5024\u306E\u30B5\u30F3\u30D7\u30EA\u30F3\u30B0\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u30D1\u30B9\u5185\u306E \`{spreadsheetId}\` \u30D7\u30EC\u30FC\u30B9\u30DB\u30EB\u30C0\u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306B\u6307\u5B9A\u3055\u308C\u305F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u306B\u81EA\u52D5\u7684\u306B\u7F6E\u63DB\u3055\u308C\u307E\u3059\u3002OAuth \u7D4C\u7531\u3067\u8A8D\u8A3C\u306F\u81EA\u52D5\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002
|
|
72963
72988
|
|
|
72964
72989
|
> **\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
|
|
72965
72990
|
|
|
72966
|
-
|
|
72991
|
+
> **\u63A5\u7D9A\u30B9\u30B3\u30FC\u30D7**: \u5404\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306BURL\u3067\u6307\u5B9A\u3055\u308C\u305F1\u3064\u306E\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306B\u7D10\u3065\u304D\u307E\u3059\u3002\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u306F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u4F5C\u6210\u3084\u66F8\u304D\u8FBC\u307F\u306F\u884C\u3044\u307E\u305B\u3093\u3002OAuth \u30B9\u30B3\u30FC\u30D7\u306F \`spreadsheets.readonly\` \u3067\u3059\u3002
|
|
72992
|
+
|
|
72993
|
+
### Google Sheets API \u30EA\u30D5\u30A1\u30EC\u30F3\u30B9\uFF08\u8AAD\u307F\u53D6\u308A\u5C02\u7528\uFF09
|
|
72967
72994
|
|
|
72968
|
-
#### \u8AAD\u307F\u53D6\u308A\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
72969
72995
|
- GET \`/{spreadsheetId}\` \u2014 \u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\uFF08\u30BF\u30A4\u30C8\u30EB\u3001\u30B7\u30FC\u30C8\u3001\u30D7\u30ED\u30D1\u30C6\u30A3\uFF09
|
|
72970
72996
|
- GET \`/{spreadsheetId}/values/{range}\` \u2014 \u7BC4\u56F2\u306E\u30BB\u30EB\u5024\u3092\u53D6\u5F97
|
|
72971
72997
|
- GET \`/{spreadsheetId}/values:batchGet?ranges={range1}&ranges={range2}\` \u2014 \u8907\u6570\u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97
|
|
72972
72998
|
|
|
72973
|
-
#### \u66F8\u304D\u8FBC\u307F\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8
|
|
72974
|
-
- POST \`\`\uFF08\u7A7A\u30D1\u30B9\u3001\u30DC\u30C7\u30A3\u4ED8\u304D\uFF09\u2014 \u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3092\u4F5C\u6210\u3002Body: \`{ "properties": { "title": "\u30DE\u30A4\u30B7\u30FC\u30C8" }, "sheets": [{ "properties": { "title": "Sheet1" } }] }\`
|
|
72975
|
-
- PUT \`/{spreadsheetId}/values/{range}?valueInputOption=USER_ENTERED\` \u2014 \u7BC4\u56F2\u306E\u30BB\u30EB\u5024\u3092\u66F4\u65B0\u3002Body: \`{ "range": "Sheet1!A1:B2", "majorDimension": "ROWS", "values": [["a","b"],["c","d"]] }\`
|
|
72976
|
-
- POST \`/{spreadsheetId}/values/{range}:append?valueInputOption=USER_ENTERED&insertDataOption=INSERT_ROWS\` \u2014 \u6700\u7D42\u884C\u306E\u5F8C\u306B\u884C\u3092\u8FFD\u52A0\u3002Body: \`{ "range": "Sheet1!A1", "majorDimension": "ROWS", "values": [["a","b"]] }\`
|
|
72977
|
-
- POST \`/{spreadsheetId}:batchUpdate\` \u2014 \u8907\u6570\u306E\u66F4\u65B0\u3092\u9069\u7528\uFF08\u66F8\u5F0F\u8A2D\u5B9A\u3001\u30B7\u30FC\u30C8\u8FFD\u52A0\u3001\u30BB\u30EB\u7D50\u5408\u306A\u3069\uFF09\u3002Body: \`{ "requests": [...] }\`
|
|
72978
|
-
|
|
72979
72999
|
### \u7BC4\u56F2\u306E\u8868\u8A18\u6CD5\uFF08A1\u8868\u8A18\u6CD5\uFF09
|
|
72980
73000
|
- \`Sheet1!A1:D10\` \u2014 Sheet1\u4E0A\u306E\u7279\u5B9A\u7BC4\u56F2
|
|
72981
73001
|
- \`Sheet1!A:A\` \u2014 Sheet1\u306EA\u5217\u5168\u4F53
|
|
@@ -72988,21 +73008,17 @@ await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie"
|
|
|
72988
73008
|
- \u8868\u793A\u5024\u3092\u53D6\u5F97\u3059\u308B\u306B\u306F \`valueRenderOption=FORMATTED_VALUE\` \u30AF\u30A8\u30EA\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u4F7F\u7528\u3057\u307E\u3059
|
|
72989
73009
|
- \u751F\u306E\u6570\u5024\u3092\u53D6\u5F97\u3059\u308B\u306B\u306F \`valueRenderOption=UNFORMATTED_VALUE\` \u3092\u4F7F\u7528\u3057\u307E\u3059
|
|
72990
73010
|
- \u5217\u3054\u3068\u306B\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3059\u308B\u306B\u306F \`majorDimension=COLUMNS\` \u3092\u4F7F\u7528\u3057\u307E\u3059
|
|
72991
|
-
- \u66F8\u304D\u8FBC\u307F\u64CD\u4F5C\u3067\u306F\u5E38\u306B \`valueInputOption=USER_ENTERED\` \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u5024\u304C\u30E6\u30FC\u30B6\u30FC\u5165\u529B\u306E\u3088\u3046\u306B\u89E3\u6790\u3055\u308C\u307E\u3059\uFF08\u65E5\u4ED8\u3001\u6570\u5024\u3001\u6570\u5F0F\u304C\u81EA\u52D5\u691C\u51FA\uFF09
|
|
72992
|
-
- \u5171\u6709\uFF08permissions\uFF09\u306F\u3053\u306E\u30B3\u30CD\u30AF\u30BF\u7D4C\u7531\u3067\u306F\u884C\u3048\u307E\u305B\u3093\u3002\u4F5C\u6210\u3057\u305F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3078\u306F\u63A5\u7D9A\u3057\u305FOAuth\u30E6\u30FC\u30B6\u30FC\u306E\u307F\u304C\u30A2\u30AF\u30BB\u30B9\u53EF\u80FD\u3067\u3059
|
|
72993
73011
|
|
|
72994
73012
|
### Business Logic
|
|
72995
73013
|
|
|
72996
|
-
\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
|
|
73014
|
+
\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\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u306F\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u6642\u306B\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306B\u7D10\u3065\u3051\u3089\u308C\u3066\u3044\u308B\u306E\u3067\u3001\u30CF\u30F3\u30C9\u30E9\u306E\u547C\u3073\u51FA\u3057\u5143\u306B\u6E21\u3055\u305B\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002
|
|
72997
73015
|
|
|
72998
73016
|
SDK\uFF08\`connection(connectionId)\` \u3067\u4F5C\u6210\u3057\u305F\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\uFF09:
|
|
72999
|
-
- \`client.
|
|
73000
|
-
- \`client.
|
|
73001
|
-
- \`client.
|
|
73002
|
-
- \`client.
|
|
73003
|
-
- \`client.
|
|
73004
|
-
- \`client.appendValues(spreadsheetId, range, values)\` \u2014 \u6700\u7D42\u884C\u306E\u5F8C\u306B\u884C\u3092\u8FFD\u52A0\u3002
|
|
73005
|
-
- \`client.createSpreadsheet(title, sheetNames?)\` \u2014 \u65B0\u3057\u3044\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u3092\u4F5C\u6210\u3002
|
|
73017
|
+
- \`client.spreadsheetId\` \u2014 \u3053\u306E\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8ID\u3002
|
|
73018
|
+
- \`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\u3001\`{spreadsheetId}\` \u306F\u81EA\u52D5\u7F6E\u63DB\u3055\u308C\u307E\u3059\uFF09\u3002
|
|
73019
|
+
- \`client.getSpreadsheet()\` \u2014 \u8A2D\u5B9A\u6E08\u307F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3002
|
|
73020
|
+
- \`client.getValues(range)\` \u2014 \u8A2D\u5B9A\u6E08\u307F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97\uFF08A1 \u8868\u8A18\uFF09\u3002
|
|
73021
|
+
- \`client.batchGetValues(ranges)\` \u2014 \u8A2D\u5B9A\u6E08\u307F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u8907\u6570\u7BC4\u56F2\u306E\u5024\u3092\u53D6\u5F97\u3002
|
|
73006
73022
|
|
|
73007
73023
|
\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
|
|
73008
73024
|
|
|
@@ -73013,23 +73029,16 @@ import { connection } from "@squadbase/vite-server/connectors/google-sheets";
|
|
|
73013
73029
|
|
|
73014
73030
|
const sheets = connection("<connectionId>");
|
|
73015
73031
|
|
|
73016
|
-
// \
|
|
73017
|
-
const
|
|
73018
|
-
const spreadsheetId = newSheet.spreadsheetId;
|
|
73019
|
-
|
|
73020
|
-
// \u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97
|
|
73021
|
-
const metadata = await sheets.getSpreadsheet(spreadsheetId);
|
|
73032
|
+
// \u8A2D\u5B9A\u6E08\u307F\u30B9\u30D7\u30EC\u30C3\u30C9\u30B7\u30FC\u30C8\u306E\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97
|
|
73033
|
+
const metadata = await sheets.getSpreadsheet();
|
|
73022
73034
|
console.log(metadata.properties.title, metadata.sheets.map(s => s.properties.title));
|
|
73023
73035
|
|
|
73024
73036
|
// \u30BB\u30EB\u5024\u3092\u53D6\u5F97
|
|
73025
|
-
const values = await sheets.getValues(
|
|
73037
|
+
const values = await sheets.getValues("Sheet1!A1:D10");
|
|
73026
73038
|
console.log(values.values); // 2D array
|
|
73027
73039
|
|
|
73028
|
-
// \
|
|
73029
|
-
await sheets.
|
|
73030
|
-
|
|
73031
|
-
// \u884C\u3092\u8FFD\u52A0
|
|
73032
|
-
await sheets.appendValues(spreadsheetId, "Sheet1!A1", [["Bob", "95"], ["Charlie", "88"]]);
|
|
73040
|
+
// \u8907\u6570\u7BC4\u56F2\u3092\u30D0\u30C3\u30C1\u53D6\u5F97
|
|
73041
|
+
const batch = await sheets.batchGetValues(["Sheet1!A:A", "Sheet2!B2:C100"]);
|
|
73033
73042
|
\`\`\``
|
|
73034
73043
|
},
|
|
73035
73044
|
tools: tools18
|
|
@@ -73462,12 +73471,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
73462
73471
|
});
|
|
73463
73472
|
|
|
73464
73473
|
// ../connectors/src/connectors/hubspot-oauth/setup.ts
|
|
73465
|
-
var
|
|
73474
|
+
var requestToolName2 = `hubspot-oauth_${requestTool11.name}`;
|
|
73466
73475
|
var hubspotOnboarding = new ConnectorOnboarding({
|
|
73467
73476
|
connectionSetupInstructions: {
|
|
73468
73477
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067HubSpot\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
73469
73478
|
|
|
73470
|
-
1. \`${
|
|
73479
|
+
1. \`${requestToolName2}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
73471
73480
|
- \`method\`: \`"GET"\`
|
|
73472
73481
|
- \`path\`: \`"/account-info/v3/details"\`
|
|
73473
73482
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -73477,7 +73486,7 @@ var hubspotOnboarding = new ConnectorOnboarding({
|
|
|
73477
73486
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
73478
73487
|
en: `Follow these steps to set up the HubSpot connection.
|
|
73479
73488
|
|
|
73480
|
-
1. Call \`${
|
|
73489
|
+
1. Call \`${requestToolName2}\` to fetch account info:
|
|
73481
73490
|
- \`method\`: \`"GET"\`
|
|
73482
73491
|
- \`path\`: \`"/account-info/v3/details"\`
|
|
73483
73492
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -73751,12 +73760,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
73751
73760
|
});
|
|
73752
73761
|
|
|
73753
73762
|
// ../connectors/src/connectors/stripe-oauth/setup.ts
|
|
73754
|
-
var
|
|
73763
|
+
var requestToolName3 = `stripe-oauth_${requestTool12.name}`;
|
|
73755
73764
|
var stripeOnboarding = new ConnectorOnboarding({
|
|
73756
73765
|
connectionSetupInstructions: {
|
|
73757
73766
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Stripe\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
73758
73767
|
|
|
73759
|
-
1. \`${
|
|
73768
|
+
1. \`${requestToolName3}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
73760
73769
|
- \`method\`: \`"GET"\`
|
|
73761
73770
|
- \`path\`: \`"/v1/accounts"\`
|
|
73762
73771
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -73766,7 +73775,7 @@ var stripeOnboarding = new ConnectorOnboarding({
|
|
|
73766
73775
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
73767
73776
|
en: `Follow these steps to set up the Stripe connection.
|
|
73768
73777
|
|
|
73769
|
-
1. Call \`${
|
|
73778
|
+
1. Call \`${requestToolName3}\` to fetch account info:
|
|
73770
73779
|
- \`method\`: \`"GET"\`
|
|
73771
73780
|
- \`path\`: \`"/v1/accounts"\`
|
|
73772
73781
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -74041,12 +74050,12 @@ Use this tool for all Stripe API interactions: querying charges, customers, invo
|
|
|
74041
74050
|
});
|
|
74042
74051
|
|
|
74043
74052
|
// ../connectors/src/connectors/stripe-api-key/setup.ts
|
|
74044
|
-
var
|
|
74053
|
+
var requestToolName4 = `stripe-api-key_${requestTool13.name}`;
|
|
74045
74054
|
var stripeApiKeyOnboarding = new ConnectorOnboarding({
|
|
74046
74055
|
connectionSetupInstructions: {
|
|
74047
74056
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Stripe\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
74048
74057
|
|
|
74049
|
-
1. \`${
|
|
74058
|
+
1. \`${requestToolName4}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u6B8B\u9AD8\u3092\u53D6\u5F97\u3059\u308B:
|
|
74050
74059
|
- \`method\`: \`"GET"\`
|
|
74051
74060
|
- \`path\`: \`"/v1/balance"\`
|
|
74052
74061
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BAPI\u30AD\u30FC\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B\uFF08Secret API Key\u307E\u305F\u306FRestricted API Key\u304C\u6B63\u3057\u304F\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u304B\uFF09
|
|
@@ -74056,7 +74065,7 @@ var stripeApiKeyOnboarding = new ConnectorOnboarding({
|
|
|
74056
74065
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
74057
74066
|
en: `Follow these steps to set up the Stripe connection.
|
|
74058
74067
|
|
|
74059
|
-
1. Call \`${
|
|
74068
|
+
1. Call \`${requestToolName4}\` to fetch account balance:
|
|
74060
74069
|
- \`method\`: \`"GET"\`
|
|
74061
74070
|
- \`path\`: \`"/v1/balance"\`
|
|
74062
74071
|
2. If an error is returned, ask the user to check the API key settings (verify that the Secret API Key or Restricted API Key is configured correctly)
|
|
@@ -74066,11 +74075,11 @@ var stripeApiKeyOnboarding = new ConnectorOnboarding({
|
|
|
74066
74075
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`
|
|
74067
74076
|
},
|
|
74068
74077
|
dataOverviewInstructions: {
|
|
74069
|
-
en: `1. Call ${
|
|
74070
|
-
2. Call ${
|
|
74078
|
+
en: `1. Call ${requestToolName4} with GET /v1/customers?limit=5 to explore customers structure
|
|
74079
|
+
2. Call ${requestToolName4} with GET /v1/charges?limit=5 to explore charges structure
|
|
74071
74080
|
3. Explore other endpoints (invoices, subscriptions, products) as needed`,
|
|
74072
|
-
ja: `1. ${
|
|
74073
|
-
2. ${
|
|
74081
|
+
ja: `1. ${requestToolName4} \u3067 GET /v1/customers?limit=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u9867\u5BA2\u306E\u69CB\u9020\u3092\u78BA\u8A8D
|
|
74082
|
+
2. ${requestToolName4} \u3067 GET /v1/charges?limit=5 \u3092\u547C\u3073\u51FA\u3057\u3001\u8AB2\u91D1\u306E\u69CB\u9020\u3092\u78BA\u8A8D
|
|
74074
74083
|
3. \u5FC5\u8981\u306B\u5FDC\u3058\u3066\u4ED6\u306E\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\uFF08\u8ACB\u6C42\u66F8\u3001\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3001\u5546\u54C1\uFF09\u3092\u63A2\u7D22`
|
|
74075
74084
|
}
|
|
74076
74085
|
});
|
|
@@ -74355,7 +74364,7 @@ Authentication is handled automatically via OAuth proxy.
|
|
|
74355
74364
|
});
|
|
74356
74365
|
|
|
74357
74366
|
// ../connectors/src/connectors/airtable-oauth/setup.ts
|
|
74358
|
-
var
|
|
74367
|
+
var requestToolName5 = `airtable-oauth_${requestTool14.name}`;
|
|
74359
74368
|
var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
74360
74369
|
connectionSetupInstructions: {
|
|
74361
74370
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Airtable OAuth\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
@@ -74365,7 +74374,7 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
74365
74374
|
3. \`updateConnectionParameters\` \u3092\u547C\u3073\u51FA\u3059:
|
|
74366
74375
|
- \`parameterSlug\`: \`"base-id"\`
|
|
74367
74376
|
- \`value\`: \u62BD\u51FA\u3057\u305F\u30D9\u30FC\u30B9ID
|
|
74368
|
-
4. \`${
|
|
74377
|
+
4. \`${requestToolName5}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30D9\u30FC\u30B9\u306E\u30C6\u30FC\u30D6\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
74369
74378
|
- \`method\`: \`"GET"\`
|
|
74370
74379
|
- \`path\`: \`"/meta/bases/{baseId}/tables"\`
|
|
74371
74380
|
5. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306B\u30D9\u30FC\u30B9\u306E\u5171\u6709\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -74380,7 +74389,7 @@ var airtableOauthOnboarding = new ConnectorOnboarding({
|
|
|
74380
74389
|
3. Call \`updateConnectionParameters\`:
|
|
74381
74390
|
- \`parameterSlug\`: \`"base-id"\`
|
|
74382
74391
|
- \`value\`: The extracted base ID
|
|
74383
|
-
4. Call \`${
|
|
74392
|
+
4. Call \`${requestToolName5}\` to fetch the base's table list:
|
|
74384
74393
|
- \`method\`: \`"GET"\`
|
|
74385
74394
|
- \`path\`: \`"/meta/bases/{baseId}/tables"\`
|
|
74386
74395
|
5. If an error is returned, ask the user to check the base sharing settings
|
|
@@ -76958,6 +76967,7 @@ Use this tool for all Shopify API interactions: listing products, orders, custom
|
|
|
76958
76967
|
method: "POST",
|
|
76959
76968
|
headers: { "Content-Type": "application/json" },
|
|
76960
76969
|
body: JSON.stringify({
|
|
76970
|
+
grant_type: "client_credentials",
|
|
76961
76971
|
client_id: clientId,
|
|
76962
76972
|
client_secret: clientSecret
|
|
76963
76973
|
})
|
|
@@ -77281,12 +77291,12 @@ Authentication is handled automatically via OAuth proxy.`,
|
|
|
77281
77291
|
});
|
|
77282
77292
|
|
|
77283
77293
|
// ../connectors/src/connectors/shopify-oauth/setup.ts
|
|
77284
|
-
var
|
|
77294
|
+
var requestToolName6 = `shopify-oauth_${requestTool22.name}`;
|
|
77285
77295
|
var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
77286
77296
|
connectionSetupInstructions: {
|
|
77287
77297
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Shopify\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
77288
77298
|
|
|
77289
|
-
1. \`${
|
|
77299
|
+
1. \`${requestToolName6}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30B7\u30E7\u30C3\u30D7\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
77290
77300
|
- \`method\`: \`"GET"\`
|
|
77291
77301
|
- \`path\`: \`"/admin/api/2024-10/shop.json"\`
|
|
77292
77302
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -77296,7 +77306,7 @@ var shopifyOauthOnboarding = new ConnectorOnboarding({
|
|
|
77296
77306
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
77297
77307
|
en: `Follow these steps to set up the Shopify connection.
|
|
77298
77308
|
|
|
77299
|
-
1. Call \`${
|
|
77309
|
+
1. Call \`${requestToolName6}\` to fetch shop info:
|
|
77300
77310
|
- \`method\`: \`"GET"\`
|
|
77301
77311
|
- \`path\`: \`"/admin/api/2024-10/shop.json"\`
|
|
77302
77312
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -79553,12 +79563,12 @@ Pagination uses cursor-based start_cursor and page_size (max 100).`,
|
|
|
79553
79563
|
});
|
|
79554
79564
|
|
|
79555
79565
|
// ../connectors/src/connectors/notion-oauth/setup.ts
|
|
79556
|
-
var
|
|
79566
|
+
var requestToolName7 = `notion-oauth_${requestTool28.name}`;
|
|
79557
79567
|
var notionOauthOnboarding = new ConnectorOnboarding({
|
|
79558
79568
|
connectionSetupInstructions: {
|
|
79559
79569
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Notion\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
79560
79570
|
|
|
79561
|
-
1. \`${
|
|
79571
|
+
1. \`${requestToolName7}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30DC\u30C3\u30C8\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
79562
79572
|
- \`method\`: \`"GET"\`
|
|
79563
79573
|
- \`path\`: \`"/users/me"\`
|
|
79564
79574
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -79568,7 +79578,7 @@ var notionOauthOnboarding = new ConnectorOnboarding({
|
|
|
79568
79578
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
79569
79579
|
en: `Follow these steps to set up the Notion connection.
|
|
79570
79580
|
|
|
79571
|
-
1. Call \`${
|
|
79581
|
+
1. Call \`${requestToolName7}\` to fetch bot user info:
|
|
79572
79582
|
- \`method\`: \`"GET"\`
|
|
79573
79583
|
- \`path\`: \`"/users/me"\`
|
|
79574
79584
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -82135,7 +82145,7 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
82135
82145
|
});
|
|
82136
82146
|
|
|
82137
82147
|
// ../connectors/src/connectors/gmail/setup.ts
|
|
82138
|
-
var
|
|
82148
|
+
var requestToolName8 = `gmail-service-account_${requestTool35.name}`;
|
|
82139
82149
|
var gmailOnboarding = new ConnectorOnboarding({
|
|
82140
82150
|
connectionSetupInstructions: {
|
|
82141
82151
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Gmail\uFF08\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\uFF09\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\u63A5\u7D9A\u4F5C\u6210\u6642\u306B\u306F\u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8JSON\u306E\u307F\u304C\u8A2D\u5B9A\u6E08\u307F\u3067\u3001\u59D4\u4EFB\u5BFE\u8C61\u306E\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u306F\u3053\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u4E2D\u306B\u53D6\u5F97\u3057\u307E\u3059\u3002
|
|
@@ -82147,14 +82157,14 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
82147
82157
|
2. \u53D7\u3051\u53D6\u3063\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092 \`updateConnectionParameters\` \u3067\u4FDD\u5B58\u3059\u308B:
|
|
82148
82158
|
- \`parameterSlug\`: \`"delegated-user-email"\`
|
|
82149
82159
|
- \`options\`: \`[{ value: <\u5165\u529B\u3055\u308C\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9>, label: <\u540C\u3058\u5024> }]\`\uFF081\u4EF6\u306E\u307F\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u81EA\u52D5\u9078\u629E\u3055\u308C\u308B\uFF09
|
|
82150
|
-
3. \`${
|
|
82160
|
+
3. \`${requestToolName8}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E6\u30FC\u30B6\u30FC\u306E\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u3092\u53D6\u5F97\u3059\u308B:
|
|
82151
82161
|
- \`method\`: \`"GET"\`
|
|
82152
82162
|
- \`path\`: \`"/me/profile"\`
|
|
82153
82163
|
4. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u4EE5\u4E0B\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u30E6\u30FC\u30B6\u30FC\u306B\u4F1D\u3048\u308B:
|
|
82154
82164
|
- \u30B5\u30FC\u30D3\u30B9\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30C9\u30E1\u30A4\u30F3\u5168\u4F53\u306E\u59D4\u4EFB\u304C\u6709\u52B9\u304B
|
|
82155
82165
|
- Google Workspace\u7BA1\u7406\u30B3\u30F3\u30BD\u30FC\u30EB\u3067Gmail API\u30B9\u30B3\u30FC\u30D7\u304C\u8A31\u53EF\u3055\u308C\u3066\u3044\u308B\u304B
|
|
82156
82166
|
- \u5165\u529B\u3055\u308C\u305F\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u304C\u6B63\u3057\u3044\u304B
|
|
82157
|
-
5. \`${
|
|
82167
|
+
5. \`${requestToolName8}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
82158
82168
|
- \`method\`: \`"GET"\`
|
|
82159
82169
|
- \`path\`: \`"/me/labels"\`
|
|
82160
82170
|
|
|
@@ -82170,14 +82180,14 @@ var gmailOnboarding = new ConnectorOnboarding({
|
|
|
82170
82180
|
2. Save the email via \`updateConnectionParameters\`:
|
|
82171
82181
|
- \`parameterSlug\`: \`"delegated-user-email"\`
|
|
82172
82182
|
- \`options\`: \`[{ value: <entered email>, label: <same value> }]\` (a single option is auto-selected)
|
|
82173
|
-
3. Call \`${
|
|
82183
|
+
3. Call \`${requestToolName8}\` to get the user's profile:
|
|
82174
82184
|
- \`method\`: \`"GET"\`
|
|
82175
82185
|
- \`path\`: \`"/me/profile"\`
|
|
82176
82186
|
4. If an error is returned, ask the user to verify:
|
|
82177
82187
|
- Domain-wide delegation is enabled for the service account
|
|
82178
82188
|
- Gmail API scope is authorized in Google Workspace admin console
|
|
82179
82189
|
- The entered email address is correct
|
|
82180
|
-
5. Call \`${
|
|
82190
|
+
5. Call \`${requestToolName8}\` to get the label list:
|
|
82181
82191
|
- \`method\`: \`"GET"\`
|
|
82182
82192
|
- \`path\`: \`"/me/labels"\`
|
|
82183
82193
|
|
|
@@ -82529,16 +82539,16 @@ All paths are relative to https://gmail.googleapis.com/gmail/v1/users. Use '/me'
|
|
|
82529
82539
|
});
|
|
82530
82540
|
|
|
82531
82541
|
// ../connectors/src/connectors/gmail-oauth/setup.ts
|
|
82532
|
-
var
|
|
82542
|
+
var requestToolName9 = `gmail-oauth_${requestTool36.name}`;
|
|
82533
82543
|
var gmailOnboarding2 = new ConnectorOnboarding({
|
|
82534
82544
|
connectionSetupInstructions: {
|
|
82535
82545
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Gmail\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
82536
82546
|
|
|
82537
|
-
1. \`${
|
|
82547
|
+
1. \`${requestToolName9}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E6\u30FC\u30B6\u30FC\u306E\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u3092\u53D6\u5F97\u3059\u308B:
|
|
82538
82548
|
- \`method\`: \`"GET"\`
|
|
82539
82549
|
- \`path\`: \`"/me/profile"\`
|
|
82540
82550
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001OAuth\u306E\u8A8D\u8A3C\u304C\u6B63\u3057\u304F\u5B8C\u4E86\u3057\u3066\u3044\u308B\u304B\u78BA\u8A8D\u3059\u308B\u3088\u3046\u30E6\u30FC\u30B6\u30FC\u306B\u4F1D\u3048\u308B
|
|
82541
|
-
3. \`${
|
|
82551
|
+
3. \`${requestToolName9}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u30E9\u30D9\u30EB\u4E00\u89A7\u3092\u53D6\u5F97\u3059\u308B:
|
|
82542
82552
|
- \`method\`: \`"GET"\`
|
|
82543
82553
|
- \`path\`: \`"/me/labels"\`
|
|
82544
82554
|
|
|
@@ -82547,11 +82557,11 @@ var gmailOnboarding2 = new ConnectorOnboarding({
|
|
|
82547
82557
|
- \u30C4\u30FC\u30EB\u9593\u306F1\u6587\u3060\u3051\u66F8\u3044\u3066\u5373\u6B21\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3002\u4E0D\u8981\u306A\u8AAC\u660E\u306F\u7701\u7565\u3057\u3001\u52B9\u7387\u7684\u306B\u9032\u3081\u308B`,
|
|
82548
82558
|
en: `Follow these steps to set up the Gmail connection.
|
|
82549
82559
|
|
|
82550
|
-
1. Call \`${
|
|
82560
|
+
1. Call \`${requestToolName9}\` to get the user's profile:
|
|
82551
82561
|
- \`method\`: \`"GET"\`
|
|
82552
82562
|
- \`path\`: \`"/me/profile"\`
|
|
82553
82563
|
2. If an error is returned, ask the user to verify that OAuth authentication completed correctly
|
|
82554
|
-
3. Call \`${
|
|
82564
|
+
3. Call \`${requestToolName9}\` to get the label list:
|
|
82555
82565
|
- \`method\`: \`"GET"\`
|
|
82556
82566
|
- \`path\`: \`"/me/labels"\`
|
|
82557
82567
|
|
|
@@ -83754,12 +83764,12 @@ Zendesk uses cursor-based pagination with page[size] and page[after] parameters.
|
|
|
83754
83764
|
});
|
|
83755
83765
|
|
|
83756
83766
|
// ../connectors/src/connectors/zendesk-oauth/setup.ts
|
|
83757
|
-
var
|
|
83767
|
+
var requestToolName10 = `zendesk-oauth_${requestTool39.name}`;
|
|
83758
83768
|
var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
83759
83769
|
connectionSetupInstructions: {
|
|
83760
83770
|
en: `Follow these steps to set up the Zendesk connection.
|
|
83761
83771
|
|
|
83762
|
-
1. Call \`${
|
|
83772
|
+
1. Call \`${requestToolName10}\` to fetch account info:
|
|
83763
83773
|
- \`method\`: \`"GET"\`
|
|
83764
83774
|
- \`path\`: \`"/api/v2/account/settings.json"\`
|
|
83765
83775
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -83769,7 +83779,7 @@ var zendeskOauthOnboarding = new ConnectorOnboarding({
|
|
|
83769
83779
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`,
|
|
83770
83780
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Zendesk\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
83771
83781
|
|
|
83772
|
-
1. \`${
|
|
83782
|
+
1. \`${requestToolName10}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\u3092\u53D6\u5F97\u3059\u308B:
|
|
83773
83783
|
- \`method\`: \`"GET"\`
|
|
83774
83784
|
- \`path\`: \`"/api/v2/account/settings.json"\`
|
|
83775
83785
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -84394,12 +84404,12 @@ Search endpoints (contacts/search, conversations/search) use POST with a query o
|
|
|
84394
84404
|
});
|
|
84395
84405
|
|
|
84396
84406
|
// ../connectors/src/connectors/intercom-oauth/setup.ts
|
|
84397
|
-
var
|
|
84407
|
+
var requestToolName11 = `intercom-oauth_${requestTool41.name}`;
|
|
84398
84408
|
var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
84399
84409
|
connectionSetupInstructions: {
|
|
84400
84410
|
en: `Follow these steps to set up the Intercom connection.
|
|
84401
84411
|
|
|
84402
|
-
1. Call \`${
|
|
84412
|
+
1. Call \`${requestToolName11}\` to verify the connection:
|
|
84403
84413
|
- \`method\`: \`"GET"\`
|
|
84404
84414
|
- \`path\`: \`"/me"\`
|
|
84405
84415
|
2. If an error is returned, ask the user to check the OAuth connection settings
|
|
@@ -84409,7 +84419,7 @@ var intercomOauthOnboarding = new ConnectorOnboarding({
|
|
|
84409
84419
|
- Write only 1 sentence between tool calls, then immediately call the next tool. Skip unnecessary explanations and proceed efficiently`,
|
|
84410
84420
|
ja: `\u4EE5\u4E0B\u306E\u624B\u9806\u3067Intercom\u30B3\u30CD\u30AF\u30B7\u30E7\u30F3\u306E\u30BB\u30C3\u30C8\u30A2\u30C3\u30D7\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002
|
|
84411
84421
|
|
|
84412
|
-
1. \`${
|
|
84422
|
+
1. \`${requestToolName11}\` \u3092\u547C\u3073\u51FA\u3057\u3066\u3001\u63A5\u7D9A\u3092\u78BA\u8A8D\u3059\u308B:
|
|
84413
84423
|
- \`method\`: \`"GET"\`
|
|
84414
84424
|
- \`path\`: \`"/me"\`
|
|
84415
84425
|
2. \u30A8\u30E9\u30FC\u304C\u8FD4\u3055\u308C\u305F\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u306BOAuth\u63A5\u7D9A\u306E\u8A2D\u5B9A\u3092\u78BA\u8A8D\u3059\u308B\u3088\u3046\u4F1D\u3048\u308B
|
|
@@ -85893,7 +85903,7 @@ var parameters61 = {
|
|
|
85893
85903
|
organizationSlug: new ParameterDefinition({
|
|
85894
85904
|
slug: "organization-slug",
|
|
85895
85905
|
name: "Sentry Organization Slug",
|
|
85896
|
-
description: "The slug of your Sentry organization (e.g., 'my-org'). Found in your Sentry URL: https://sentry.io/
|
|
85906
|
+
description: "The slug of your Sentry organization (e.g., 'my-org'). Found in your Sentry URL: https://{slug}.sentry.io/",
|
|
85897
85907
|
envVarBaseKey: "SENTRY_ORGANIZATION_SLUG",
|
|
85898
85908
|
type: "text",
|
|
85899
85909
|
secret: false,
|
|
@@ -86599,11 +86609,11 @@ var influxdbOnboarding = new ConnectorOnboarding({
|
|
|
86599
86609
|
|
|
86600
86610
|
#### Confirm the Database (or Bucket) Name
|
|
86601
86611
|
- InfluxDB 3: use the database name
|
|
86602
|
-
- InfluxDB 2: use the bucket name (buckets act as databases in the v1/v3 compatibility endpoints)
|
|
86612
|
+
- InfluxDB 2 (includes InfluxDB Cloud on \`*.cloud2.influxdata.com\`): use the bucket name (buckets act as databases in the v1/v3 compatibility endpoints)
|
|
86603
86613
|
|
|
86604
|
-
#### Organization
|
|
86605
|
-
-
|
|
86606
|
-
-
|
|
86614
|
+
#### Organization
|
|
86615
|
+
- InfluxDB 2: set the Organization parameter to the org that owns the bucket (required for Flux queries and writes)
|
|
86616
|
+
- InfluxDB 3 Cloud Serverless: you can leave Organization blank when only using SQL`,
|
|
86607
86617
|
ja: `#### API \u30C8\u30FC\u30AF\u30F3\u306E\u767A\u884C
|
|
86608
86618
|
1. InfluxDB Cloud / OSS \u306B\u30B5\u30A4\u30F3\u30A4\u30F3
|
|
86609
86619
|
2. Load Data \u2192 API Tokens \u2192 Generate API Token
|
|
@@ -86612,19 +86622,37 @@ var influxdbOnboarding = new ConnectorOnboarding({
|
|
|
86612
86622
|
|
|
86613
86623
|
#### Database (\u307E\u305F\u306F Bucket) \u540D\u306E\u78BA\u8A8D
|
|
86614
86624
|
- InfluxDB 3: database \u540D\u3092\u4F7F\u7528
|
|
86615
|
-
- InfluxDB 2: bucket \u540D\u3092\u4F7F\u7528\uFF08v1/v3 \u4E92\u63DB\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067\u306F bucket \u304C database \u3068\u3057\u3066\u6271\u308F\u308C\u308B\uFF09
|
|
86625
|
+
- InfluxDB 2\uFF08\`*.cloud2.influxdata.com\` \u306E InfluxDB Cloud \u3092\u542B\u3080\uFF09: bucket \u540D\u3092\u4F7F\u7528\uFF08v1/v3 \u4E92\u63DB\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3067\u306F bucket \u304C database \u3068\u3057\u3066\u6271\u308F\u308C\u308B\uFF09
|
|
86616
86626
|
|
|
86617
|
-
#### Organization
|
|
86618
|
-
- InfluxDB 2
|
|
86619
|
-
- InfluxDB 3 Cloud \u306E\u5834\u5408\u306F\u7A7A\u306E\u307E\u307E\u3067\u554F\u984C\u306A\u3044`
|
|
86627
|
+
#### Organization
|
|
86628
|
+
- InfluxDB 2: bucket \u3092\u4FDD\u6709\u3059\u308B\u7D44\u7E54\u540D\u3092 Organization \u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u8A2D\u5B9A\uFF08Flux \u30AF\u30A8\u30EA\u3068\u66F8\u304D\u8FBC\u307F\u306B\u306F\u5FC5\u9808\uFF09
|
|
86629
|
+
- InfluxDB 3 Cloud Serverless: SQL \u306E\u307F\u3092\u4F7F\u3046\u5834\u5408\u306F\u7A7A\u306E\u307E\u307E\u3067\u554F\u984C\u306A\u3044`
|
|
86620
86630
|
},
|
|
86621
86631
|
dataOverviewInstructions: {
|
|
86622
|
-
en: `
|
|
86623
|
-
|
|
86624
|
-
|
|
86625
|
-
|
|
86626
|
-
|
|
86627
|
-
|
|
86632
|
+
en: `The instance may be either InfluxDB 3 (supports SQL) or InfluxDB 2 (Flux only; includes InfluxDB Cloud on '*.cloud2.influxdata.com'). Detect the variant first, then pick the matching endpoints.
|
|
86633
|
+
|
|
86634
|
+
1. Probe for InfluxDB 3: call influxdb_request with POST /api/v3/query_sql, body { "db": "<database>", "q": "SELECT 1" }
|
|
86635
|
+
- 200 with JSON rows \u2192 InfluxDB 3. Continue with SQL.
|
|
86636
|
+
- 405 Method Not Allowed, or an HTML body like "<html>...405 Not Allowed..." \u2192 InfluxDB 2. Fall back to Flux (step 3).
|
|
86637
|
+
2. InfluxDB 3 data overview:
|
|
86638
|
+
a. POST /api/v3/query_sql, body { "db": "<database>", "q": "SHOW TABLES" } to list measurements
|
|
86639
|
+
b. POST /api/v3/query_sql, body { "db": "<database>", "q": "SELECT * FROM <measurement> ORDER BY time DESC LIMIT 5" } to inspect a sample
|
|
86640
|
+
3. InfluxDB 2 data overview (Organization parameter required):
|
|
86641
|
+
a. POST /api/v2/query?org=<org>, contentType 'application/vnd.flux', body 'buckets()' to list buckets
|
|
86642
|
+
b. POST /api/v2/query?org=<org>, contentType 'application/vnd.flux', body 'from(bucket:"<bucket>") |> range(start: -1h) |> limit(n:5)' to inspect data
|
|
86643
|
+
- If the Organization parameter was not provided but v3 probing failed, ask the user to set it using updateConnectionParameters before continuing.`,
|
|
86644
|
+
ja: `\u63A5\u7D9A\u5148\u306F InfluxDB 3\uFF08SQL \u5BFE\u5FDC\uFF09\u3068 InfluxDB 2\uFF08Flux \u306E\u307F\u3002\`*.cloud2.influxdata.com\` \u306E InfluxDB Cloud \u3092\u542B\u3080\uFF09\u306E\u3069\u3061\u3089\u306E\u53EF\u80FD\u6027\u3082\u3042\u308A\u307E\u3059\u3002\u307E\u305A\u30D0\u30EA\u30A2\u30F3\u30C8\u3092\u5224\u5225\u3057\u3001\u305D\u308C\u306B\u5408\u3046\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
|
86645
|
+
|
|
86646
|
+
1. InfluxDB 3 \u306E\u5224\u5225: influxdb_request \u3067 POST /api/v3/query_sql\u3001body { "db": "<database>", "q": "SELECT 1" } \u3092\u5B9F\u884C
|
|
86647
|
+
- 200 + JSON \u884C\u304C\u8FD4\u308B \u2192 InfluxDB 3\u3002\u305D\u306E\u307E\u307E SQL \u3067\u7D9A\u884C\u3002
|
|
86648
|
+
- 405 Method Not Allowed\u3001\u307E\u305F\u306F "<html>...405 Not Allowed..." \u306E\u3088\u3046\u306A HTML \u672C\u6587\u304C\u8FD4\u308B \u2192 InfluxDB 2\u3002Flux \u306B\u30D5\u30A9\u30FC\u30EB\u30D0\u30C3\u30AF\uFF08\u624B\u9806 3\uFF09\u3002
|
|
86649
|
+
2. InfluxDB 3 \u306E\u5834\u5408\u306E\u30C7\u30FC\u30BF\u6982\u8981:
|
|
86650
|
+
a. POST /api/v3/query_sql\u3001body { "db": "<database>", "q": "SHOW TABLES" } \u3067 measurement \u4E00\u89A7\u3092\u53D6\u5F97
|
|
86651
|
+
b. POST /api/v3/query_sql\u3001body { "db": "<database>", "q": "SELECT * FROM <measurement> ORDER BY time DESC LIMIT 5" } \u3067\u4EE3\u8868\u7684\u306A measurement \u3092\u78BA\u8A8D
|
|
86652
|
+
3. InfluxDB 2 \u306E\u5834\u5408\u306E\u30C7\u30FC\u30BF\u6982\u8981\uFF08Organization \u30D1\u30E9\u30E1\u30FC\u30BF\u5FC5\u9808\uFF09:
|
|
86653
|
+
a. POST /api/v2/query?org=<org>\u3001contentType 'application/vnd.flux'\u3001body 'buckets()' \u3067 bucket \u4E00\u89A7\u3092\u53D6\u5F97
|
|
86654
|
+
b. POST /api/v2/query?org=<org>\u3001contentType 'application/vnd.flux'\u3001body 'from(bucket:"<bucket>") |> range(start: -1h) |> limit(n:5)' \u3067\u30C7\u30FC\u30BF\u3092\u78BA\u8A8D
|
|
86655
|
+
- Organization \u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u672A\u8A2D\u5B9A\u3067 v3 \u5224\u5225\u3082\u5931\u6557\u3057\u305F\u5834\u5408\u306F\u3001updateConnectionParameters \u3067\u30E6\u30FC\u30B6\u30FC\u306B\u8A2D\u5B9A\u3092\u4FC3\u3057\u3066\u304B\u3089\u7D9A\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002`
|
|
86628
86656
|
}
|
|
86629
86657
|
});
|
|
86630
86658
|
|
|
@@ -86633,7 +86661,7 @@ var parameters63 = {
|
|
|
86633
86661
|
url: new ParameterDefinition({
|
|
86634
86662
|
slug: "url",
|
|
86635
86663
|
name: "InfluxDB URL",
|
|
86636
|
-
description: "The base URL of your InfluxDB instance (e.g., '
|
|
86664
|
+
description: "The base URL of your InfluxDB instance. Do not include a trailing slash. Works with both InfluxDB 2 (e.g., InfluxDB Cloud on '*.cloud2.influxdata.com', OSS 2.x) and InfluxDB 3 (Cloud Serverless, Enterprise, OSS 3.x).",
|
|
86637
86665
|
envVarBaseKey: "INFLUXDB_URL",
|
|
86638
86666
|
type: "text",
|
|
86639
86667
|
secret: false,
|
|
@@ -86660,7 +86688,7 @@ var parameters63 = {
|
|
|
86660
86688
|
org: new ParameterDefinition({
|
|
86661
86689
|
slug: "org",
|
|
86662
86690
|
name: "Organization",
|
|
86663
|
-
description: "The InfluxDB organization name. Required for InfluxDB 2
|
|
86691
|
+
description: "The InfluxDB organization name. Required for InfluxDB 2 Flux queries and writes (including InfluxDB Cloud on '*.cloud2.influxdata.com'). Optional for InfluxDB 3 when only using SQL.",
|
|
86664
86692
|
envVarBaseKey: "INFLUXDB_ORG",
|
|
86665
86693
|
type: "text",
|
|
86666
86694
|
secret: false,
|
|
@@ -86752,10 +86780,17 @@ For read-only data exploration prefer SQL (InfluxDB 3) or InfluxQL queries \u201
|
|
|
86752
86780
|
}
|
|
86753
86781
|
if (!response.ok) {
|
|
86754
86782
|
let errorMessage = `HTTP ${response.status} ${response.statusText}`;
|
|
86783
|
+
const bodyText = typeof data === "string" ? data : void 0;
|
|
86784
|
+
const isHtml = resContentType.includes("text/html") || bodyText !== void 0 && bodyText.trimStart().startsWith("<");
|
|
86755
86785
|
if (data && typeof data === "object" && !Array.isArray(data) && typeof data.message === "string") {
|
|
86756
86786
|
errorMessage = data.message;
|
|
86757
|
-
} else if (
|
|
86758
|
-
errorMessage =
|
|
86787
|
+
} else if (bodyText) {
|
|
86788
|
+
errorMessage = isHtml ? bodyText.replace(/\s+/g, " ").slice(0, 200) : bodyText;
|
|
86789
|
+
}
|
|
86790
|
+
const hitsV3Path = path5.includes("/api/v3/");
|
|
86791
|
+
const looksLikeMissingV3 = hitsV3Path && (response.status === 405 || response.status === 404 || isHtml);
|
|
86792
|
+
if (looksLikeMissingV3) {
|
|
86793
|
+
errorMessage += " \u2014 This InfluxDB instance does not support the v3 API at this path. It is likely InfluxDB 2 (e.g. InfluxDB Cloud on '*.cloud2.influxdata.com'). Retry via Flux on '/api/v2/query?org={org}' with contentType 'application/vnd.flux'.";
|
|
86759
86794
|
}
|
|
86760
86795
|
return { success: false, error: errorMessage };
|
|
86761
86796
|
}
|
|
@@ -86777,14 +86812,22 @@ var influxdbConnector = new ConnectorPlugin({
|
|
|
86777
86812
|
authType: AUTH_TYPES.API_KEY,
|
|
86778
86813
|
name: "InfluxDB",
|
|
86779
86814
|
description: "Connect to InfluxDB (Cloud or OSS) to query time-series data with SQL, InfluxQL, or Flux and to write line protocol.",
|
|
86780
|
-
iconUrl: "https://
|
|
86815
|
+
iconUrl: "https://images.ctfassets.net/9ncizv60xc5y/J1JauVRNmahSVTVrpPfQK/18350d8d3f2dc3be25e8e36ee52914a0/influxdb.png",
|
|
86781
86816
|
parameters: parameters63,
|
|
86782
86817
|
releaseFlag: { dev1: true, dev2: false, prod: false },
|
|
86783
86818
|
onboarding: influxdbOnboarding,
|
|
86784
86819
|
systemPrompt: {
|
|
86785
|
-
en: `###
|
|
86820
|
+
en: `### Variant Detection
|
|
86821
|
+
|
|
86822
|
+
The configured instance may be **InfluxDB 3** (supports SQL via \`/api/v3/query_sql\`) or **InfluxDB 2** (Flux only; includes InfluxDB Cloud on \`*.cloud2.influxdata.com\`). Always probe first, then use the matching endpoints:
|
|
86823
|
+
|
|
86824
|
+
1. Call \`influxdb_request\` POST \`/api/v3/query_sql\` with body \`{ "db": "<database>", "q": "SELECT 1" }\`
|
|
86825
|
+
2. 200 + JSON rows \u2192 InfluxDB 3. Use SQL endpoints.
|
|
86826
|
+
3. 405 Method Not Allowed or HTML body (e.g. \`<html>...405 Not Allowed...</html>\`) \u2192 InfluxDB 2. Use Flux via \`/api/v2/query?org={org}\`. Require the \`org\` parameter; if missing, ask the user via \`updateConnectionParameters\`.
|
|
86786
86827
|
|
|
86787
|
-
|
|
86828
|
+
### Tools
|
|
86829
|
+
|
|
86830
|
+
- \`influxdb_request\`: The only way to call the InfluxDB HTTP API. Use it to run SQL / InfluxQL / Flux queries, write line protocol, and inspect buckets / databases. Authentication (\`Authorization: Token {token}\`) and the instance URL are configured automatically. On InfluxDB 3 prefer SQL (\`POST /api/v3/query_sql\`) \u2014 it returns JSON rows that are directly usable. On InfluxDB 2 use Flux (\`POST /api/v2/query?org={org}\`) \u2014 the response is annotated CSV. Writes use \`POST /api/v3/write_lp?db={db}\` (v3) or \`POST /api/v2/write?org={org}&bucket={bucket}\` (v2) with a line-protocol body and \`contentType\` set to \`text/plain; charset=utf-8\`.
|
|
86788
86831
|
|
|
86789
86832
|
### Business Logic
|
|
86790
86833
|
|
|
@@ -86845,7 +86888,15 @@ export default async function handler(c: Context) {
|
|
|
86845
86888
|
- Time filtering uses standard SQL \`time\` column comparisons (\`time >= now() - INTERVAL '...' \`)
|
|
86846
86889
|
- Aggregates: \`AVG\`, \`SUM\`, \`MIN\`, \`MAX\`, \`COUNT\`; bucket time with \`date_bin('5 minutes', time)\`
|
|
86847
86890
|
- List measurements: \`SHOW TABLES\`; list columns: \`SHOW COLUMNS FROM <measurement>\``,
|
|
86848
|
-
ja: `### \
|
|
86891
|
+
ja: `### \u30D0\u30EA\u30A2\u30F3\u30C8\u5224\u5225
|
|
86892
|
+
|
|
86893
|
+
\u63A5\u7D9A\u5148\u306F **InfluxDB 3**\uFF08\`/api/v3/query_sql\` \u306E SQL \u5BFE\u5FDC\uFF09\u3068 **InfluxDB 2**\uFF08Flux \u306E\u307F\u3002\`*.cloud2.influxdata.com\` \u306E InfluxDB Cloud \u3092\u542B\u3080\uFF09\u306E\u3069\u3061\u3089\u306E\u53EF\u80FD\u6027\u3082\u3042\u308A\u307E\u3059\u3002\u5FC5\u305A\u6700\u521D\u306B\u30D7\u30ED\u30FC\u30D6\u3057\u3066\u304B\u3089\u3001\u5BFE\u5FDC\u3059\u308B\u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044:
|
|
86894
|
+
|
|
86895
|
+
1. \`influxdb_request\` \u3067 POST \`/api/v3/query_sql\`\u3001body \`{ "db": "<database>", "q": "SELECT 1" }\` \u3092\u547C\u3073\u51FA\u3059
|
|
86896
|
+
2. 200 + JSON \u884C \u2192 InfluxDB 3\u3002SQL \u30A8\u30F3\u30C9\u30DD\u30A4\u30F3\u30C8\u3092\u4F7F\u7528\u3002
|
|
86897
|
+
3. 405 Method Not Allowed\u3001\u307E\u305F\u306F HTML \u672C\u6587\uFF08\u4F8B: \`<html>...405 Not Allowed...</html>\`\uFF09\u2192 InfluxDB 2\u3002\`/api/v2/query?org={org}\` \u304B\u3089 Flux \u3092\u4F7F\u7528\u3002\`org\` \u30D1\u30E9\u30E1\u30FC\u30BF\u5FC5\u9808\u3002\u672A\u8A2D\u5B9A\u306A\u3089 \`updateConnectionParameters\` \u3067\u30E6\u30FC\u30B6\u30FC\u306B\u8A2D\u5B9A\u3092\u4F9D\u983C\u3059\u308B\u3002
|
|
86898
|
+
|
|
86899
|
+
### \u30C4\u30FC\u30EB
|
|
86849
86900
|
|
|
86850
86901
|
- \`influxdb_request\`: InfluxDB HTTP API \u3092\u547C\u3073\u51FA\u3059\u552F\u4E00\u306E\u624B\u6BB5\u3067\u3059\u3002SQL / InfluxQL / Flux \u30AF\u30A8\u30EA\u306E\u5B9F\u884C\u3001line protocol \u66F8\u304D\u8FBC\u307F\u3001bucket / database \u306E\u78BA\u8A8D\u306B\u4F7F\u7528\u3057\u307E\u3059\u3002\u8A8D\u8A3C\uFF08\`Authorization: Token {token}\`\uFF09\u3068 instance URL \u306F\u81EA\u52D5\u3067\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002InfluxDB 3 \u3067\u306F SQL (\`POST /api/v3/query_sql\`) \u304C JSON \u884C\u3092\u8FD4\u3059\u305F\u3081\u6700\u3082\u6271\u3044\u3084\u3059\u3044\u3067\u3059\u3002InfluxDB 2 \u3067\u306F Flux (\`POST /api/v2/query?org={org}\`) \u3092\u4F7F\u7528\u3057\u3001\u30EC\u30B9\u30DD\u30F3\u30B9\u306F\u6CE8\u91C8\u4ED8\u304D CSV \u3067\u3059\u3002\u66F8\u304D\u8FBC\u307F\u306F \`POST /api/v3/write_lp?db={db}\` (v3) \u307E\u305F\u306F \`POST /api/v2/write?org={org}&bucket={bucket}\` (v2) \u306B line protocol \u3092\u9001\u308A\u307E\u3059\uFF08\`contentType\` \u306F \`text/plain; charset=utf-8\`\uFF09\u3002
|
|
86851
86902
|
|
|
@@ -86909,7 +86960,47 @@ export default async function handler(c: Context) {
|
|
|
86909
86960
|
- \u96C6\u8A08: \`AVG\`, \`SUM\`, \`MIN\`, \`MAX\`, \`COUNT\`\u3002\u6642\u9593\u30D0\u30B1\u30C3\u30C8: \`date_bin('5 minutes', time)\`
|
|
86910
86961
|
- measurement \u4E00\u89A7: \`SHOW TABLES\`\u3001\u5217\u4E00\u89A7: \`SHOW COLUMNS FROM <measurement>\``
|
|
86911
86962
|
},
|
|
86912
|
-
tools: tools63
|
|
86963
|
+
tools: tools63,
|
|
86964
|
+
async checkConnection(params) {
|
|
86965
|
+
const url = (params.url ?? "").replace(/\/$/, "");
|
|
86966
|
+
const token = params.token;
|
|
86967
|
+
if (!url) {
|
|
86968
|
+
return { success: false, error: "InfluxDB URL is not configured" };
|
|
86969
|
+
}
|
|
86970
|
+
if (!token) {
|
|
86971
|
+
return { success: false, error: "API Token is not configured" };
|
|
86972
|
+
}
|
|
86973
|
+
try {
|
|
86974
|
+
const res = await fetch(`${url}/api/v2/orgs`, {
|
|
86975
|
+
method: "GET",
|
|
86976
|
+
headers: {
|
|
86977
|
+
Authorization: `Token ${token}`,
|
|
86978
|
+
Accept: "application/json"
|
|
86979
|
+
}
|
|
86980
|
+
});
|
|
86981
|
+
if (res.status === 401 || res.status === 403) {
|
|
86982
|
+
return {
|
|
86983
|
+
success: false,
|
|
86984
|
+
error: `Authentication failed (HTTP ${res.status}). Check the API token and its permissions.`
|
|
86985
|
+
};
|
|
86986
|
+
}
|
|
86987
|
+
if (!res.ok) {
|
|
86988
|
+
const body = await res.text().catch(() => res.statusText);
|
|
86989
|
+
const snippet = body.replace(/\s+/g, " ").slice(0, 200);
|
|
86990
|
+
return {
|
|
86991
|
+
success: false,
|
|
86992
|
+
error: `Connection check failed: HTTP ${res.status} ${res.statusText} \u2014 ${snippet}`
|
|
86993
|
+
};
|
|
86994
|
+
}
|
|
86995
|
+
return { success: true };
|
|
86996
|
+
} catch (error2) {
|
|
86997
|
+
const message = error2 instanceof Error ? error2.message : String(error2);
|
|
86998
|
+
return {
|
|
86999
|
+
success: false,
|
|
87000
|
+
error: `Failed to reach InfluxDB at ${url}: ${message}`
|
|
87001
|
+
};
|
|
87002
|
+
}
|
|
87003
|
+
}
|
|
86913
87004
|
});
|
|
86914
87005
|
|
|
86915
87006
|
// ../connectors/src/connectors/registry.ts
|