@jskit-ai/connectors-catalog 0.1.67 → 0.2.0
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/CHANGELOG.md +1722 -0
- package/README.md +11 -0
- package/locales/en.json +3139 -0
- package/package.json +7 -6
- package/src/server/ai.js +4 -4
- package/src/server/amazon-redshift.js +5 -5
- package/src/server/apify.js +1 -1
- package/src/server/apollo-io.js +1 -1
- package/src/server/asana.js +3 -3
- package/src/server/ashby.js +3 -3
- package/src/server/attention.js +2 -2
- package/src/server/aws-athena.js +3 -3
- package/src/server/aws-s3.js +1 -1
- package/src/server/awsTransport.js +9 -9
- package/src/server/brevo.js +3 -3
- package/src/server/calendly.js +2 -2
- package/src/server/chargebee.js +1 -1
- package/src/server/databricks.js +2 -2
- package/src/server/dbt-semantic-layer.js +8 -8
- package/src/server/elevenlabs.js +4 -4
- package/src/server/firebase-cloud-messaging.js +8 -8
- package/src/server/firecrawl.js +2 -2
- package/src/server/gatewayapi.js +4 -4
- package/src/server/github-api.js +3 -3
- package/src/server/gitlab-api.js +1 -1
- package/src/server/gmail.js +1 -1
- package/src/server/gong.js +4 -4
- package/src/server/google-ads-search.js +16 -16
- package/src/server/google-ads.js +7 -7
- package/src/server/google-drive.js +8 -6
- package/src/server/google-maps-platform.js +5 -5
- package/src/server/google-search-console.js +1 -1
- package/src/server/google-sheets.js +3 -2
- package/src/server/google.js +3 -2
- package/src/server/granola.js +5 -5
- package/src/server/hubspot.js +5 -3
- package/src/server/inngest.js +4 -4
- package/src/server/klipy.js +1 -1
- package/src/server/lightspeed.js +4 -4
- package/src/server/linear.js +2 -2
- package/src/server/linkedin.js +6 -6
- package/src/server/mapbox.js +1 -1
- package/src/server/mcpRegistration.js +3 -2
- package/src/server/mcpTransport.js +1 -1
- package/src/server/microsoft-fabric.js +3 -3
- package/src/server/microsoft-onedrive.js +1 -1
- package/src/server/microsoft-onenote.js +1 -1
- package/src/server/microsoft-outlook.js +1 -1
- package/src/server/microsoft.js +4 -3
- package/src/server/n8n.js +4 -4
- package/src/server/oura.js +1 -1
- package/src/server/paddle.js +1 -1
- package/src/server/pipedrive.js +4 -4
- package/src/server/posthog.js +3 -3
- package/src/server/salesforce.js +8 -8
- package/src/server/semrush.js +25 -25
- package/src/server/shopify.js +6 -6
- package/src/server/slack.js +10 -10
- package/src/server/snowflake.js +5 -5
- package/src/server/tally.js +1 -1
- package/src/server/telegram.js +1 -1
- package/src/server/tiktok.js +14 -14
- package/src/server/twilio.js +3 -3
- package/src/server/twitch.js +22 -21
- package/src/server/wave.js +34 -34
- package/src/server/wix.js +73 -73
- package/src/server/wiz.js +18 -18
- package/src/server/woocommerce.js +23 -23
- package/src/server/wordpress-com.js +3 -3
- package/src/server/wordpress-self-hosted.js +2 -2
- package/src/server/workday.js +3 -3
- package/src/server/x-twitter.js +6 -6
- package/src/server/xero.js +15 -15
- package/src/server/zoho-books.js +8 -8
- package/src/server/zoho-crm.js +5 -5
- package/src/server/zohoOAuth.js +1 -1
- package/src/shared/ai.js +24 -13
- package/src/shared/algolia.js +4 -4
- package/src/shared/amazon-redshift.js +16 -16
- package/src/shared/amplitude.js +6 -6
- package/src/shared/atlassian.js +19 -19
- package/src/shared/aws.js +18 -18
- package/src/shared/canva.js +18 -18
- package/src/shared/chargebee.js +3 -3
- package/src/shared/clickhouse.js +9 -9
- package/src/shared/confidence.js +6 -6
- package/src/shared/databricks.js +8 -8
- package/src/shared/dbt-semantic-layer.js +7 -7
- package/src/shared/english-ai.js +6 -0
- package/src/shared/english-definitions.js +34 -0
- package/src/shared/english-texts.js +7 -0
- package/src/shared/figma.js +2 -2
- package/src/shared/firebase-cloud-messaging.js +11 -11
- package/src/shared/firecrawl.js +1 -1
- package/src/shared/gemini-enterprise.js +7 -7
- package/src/shared/gong.js +5 -5
- package/src/shared/google-ads.js +5 -5
- package/src/shared/google-maps-platform.js +7 -7
- package/src/shared/google.js +40 -40
- package/src/shared/granola.js +5 -5
- package/src/shared/hex.js +7 -7
- package/src/shared/inngest.js +8 -8
- package/src/shared/lightspeed.js +52 -52
- package/src/shared/linkedin.js +6 -6
- package/src/shared/logo-dev.js +3 -3
- package/src/shared/mapbox.js +6 -6
- package/src/shared/mcp.js +9 -9
- package/src/shared/microsoft-fabric.js +9 -9
- package/src/shared/microsoft.js +52 -52
- package/src/shared/miro.js +5 -5
- package/src/shared/oura.js +5 -5
- package/src/shared/posthog.js +9 -9
- package/src/shared/prestashop.js +5 -5
- package/src/shared/resend.js +1 -1
- package/src/shared/salesforce.js +8 -8
- package/src/shared/semrush.js +6 -6
- package/src/shared/shopify.js +26 -26
- package/src/shared/slack.js +61 -61
- package/src/shared/snowflake.js +15 -15
- package/src/shared/tiktok.js +7 -7
- package/src/shared/tokens.js +126 -126
- package/src/shared/twilio.js +7 -7
- package/src/shared/twitch.js +24 -24
- package/src/shared/wave.js +33 -33
- package/src/shared/wix.js +5 -5
- package/src/shared/wiz.js +14 -14
- package/src/shared/wordpress-com.js +9 -9
- package/src/shared/wordpress.js +11 -11
- package/src/shared/workday.js +8 -8
- package/src/shared/x-twitter.js +5 -5
- package/src/shared/xero.js +25 -25
- package/src/shared/zoho-books.js +10 -10
- package/src/shared/zoho-crm.js +16 -16
- package/src/shared/zoho-regions.js +8 -8
- package/test/englishDefinitions.test.js +37 -0
- package/test/i18nCatalog.test.js +16 -0
- package/test/shopify.test.js +3 -1
|
@@ -2,15 +2,15 @@ import { createSchema } from "json-rest-schema";
|
|
|
2
2
|
import { awsSettings, awsFields, awsCredentials } from "./aws.js";
|
|
3
3
|
|
|
4
4
|
const regions = [
|
|
5
|
-
["us-east-1", "
|
|
6
|
-
["ca-central-1", "
|
|
7
|
-
["eu-west-1", "
|
|
8
|
-
["eu-central-2", "
|
|
9
|
-
["il-central-1", "
|
|
10
|
-
["ap-east-1", "
|
|
11
|
-
["ap-southeast-1", "
|
|
12
|
-
["ap-southeast-5", "
|
|
13
|
-
["ap-northeast-1", "
|
|
5
|
+
["us-east-1", "jskit.connectors.aws.regions.usEast1"], ["us-east-2", "jskit.connectors.aws.regions.usEast2"], ["us-west-1", "jskit.connectors.aws.regions.usWest1"], ["us-west-2", "jskit.connectors.aws.regions.usWest2"],
|
|
6
|
+
["ca-central-1", "jskit.connectors.aws.regions.caCentral1"], ["ca-west-1", "jskit.connectors.aws.regions.caWest1"], ["mx-central-1", "jskit.connectors.aws.regions.mxCentral1"], ["sa-east-1", "jskit.connectors.aws.regions.saEast1"],
|
|
7
|
+
["eu-west-1", "jskit.connectors.aws.regions.euWest1"], ["eu-west-2", "jskit.connectors.aws.regions.euWest2"], ["eu-west-3", "jskit.connectors.aws.regions.euWest3"], ["eu-central-1", "jskit.connectors.aws.regions.euCentral1"],
|
|
8
|
+
["eu-central-2", "jskit.connectors.aws.regions.euCentral2"], ["eu-north-1", "jskit.connectors.aws.regions.euNorth1"], ["eu-south-1", "jskit.connectors.aws.regions.euSouth1"], ["eu-south-2", "jskit.connectors.aws.regions.euSouth2"],
|
|
9
|
+
["il-central-1", "jskit.connectors.aws.regions.ilCentral1"], ["me-south-1", "jskit.connectors.aws.regions.meSouth1"], ["me-central-1", "jskit.connectors.aws.regions.meCentral1"], ["af-south-1", "jskit.connectors.aws.regions.afSouth1"],
|
|
10
|
+
["ap-east-1", "jskit.connectors.aws.regions.apEast1"], ["ap-east-2", "jskit.connectors.aws.regions.apEast2"], ["ap-south-1", "jskit.connectors.aws.regions.apSouth1"], ["ap-south-2", "jskit.connectors.aws.regions.apSouth2"],
|
|
11
|
+
["ap-southeast-1", "jskit.connectors.aws.regions.apSoutheast1"], ["ap-southeast-2", "jskit.connectors.aws.regions.apSoutheast2"], ["ap-southeast-3", "jskit.connectors.aws.regions.apSoutheast3"], ["ap-southeast-4", "jskit.connectors.aws.regions.apSoutheast4"],
|
|
12
|
+
["ap-southeast-5", "jskit.connectors.aws.regions.apSoutheast5"], ["ap-southeast-6", "jskit.connectors.aws.regions.apSoutheast6"], ["ap-southeast-7", "jskit.connectors.aws.regions.apSoutheast7"],
|
|
13
|
+
["ap-northeast-1", "jskit.connectors.aws.regions.apNortheast1"], ["ap-northeast-2", "jskit.connectors.aws.regions.apNortheast2"], ["ap-northeast-3", "jskit.connectors.aws.regions.apNortheast3"]
|
|
14
14
|
];
|
|
15
15
|
const databaseName = { type: "string", required: true, noTrim: true, minLength: 1, maxLength: 127,
|
|
16
16
|
validator: (value) => (![...value].some((char) => char.charCodeAt(0) < 32 || char.charCodeAt(0) === 127) && value.trim().length > 0 && new TextEncoder().encode(value).length <= 127) || "Enter a database identifier of at most 127 UTF-8 bytes." };
|
|
@@ -28,17 +28,17 @@ const provisionedSchema = createSchema({ ...common,
|
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
const amazonRedshiftDefinition = Object.freeze({
|
|
31
|
-
id: "amazon-redshift", name: "Amazon Redshift", description: "
|
|
31
|
+
id: "amazon-redshift", name: "Amazon Redshift", description: "jskit.connectors.amazonRedshift.description",
|
|
32
32
|
...awsCredentials, scopes: [],
|
|
33
33
|
settingsSchema: (settings = {}) => settings.deploymentType === "provisioned" ? provisionedSchema : serverlessSchema,
|
|
34
34
|
settingsFields: [
|
|
35
|
-
{ name: "deploymentType", label: "
|
|
36
|
-
{ name: "region", label: "
|
|
35
|
+
{ name: "deploymentType", label: "jskit.connectors.amazonRedshift.fields.deploymentType.label", items: [{ value: "serverless", title: "jskit.connectors.amazonRedshift.fields.deploymentType.items.serverless.title" }, { value: "provisioned", title: "jskit.connectors.amazonRedshift.fields.deploymentType.items.provisioned.title" }] },
|
|
36
|
+
{ name: "region", label: "jskit.connectors.amazonRedshift.fields.region.label", items: regions.map(([value, key]) => ({ value, title: { key, params: { region: value } } })), hint: "jskit.connectors.amazonRedshift.fields.region.hint" },
|
|
37
37
|
...awsFields.filter((field) => field.name !== "region"),
|
|
38
|
-
{ name: "workgroup", label: "
|
|
39
|
-
{ name: "clusterIdentifier", label: "
|
|
40
|
-
{ name: "database", label: "
|
|
41
|
-
{ name: "databaseUser", label: "
|
|
38
|
+
{ name: "workgroup", label: "jskit.connectors.amazonRedshift.fields.workgroup.label", placeholder: "analytics", hint: "jskit.connectors.amazonRedshift.fields.workgroup.hint" },
|
|
39
|
+
{ name: "clusterIdentifier", label: "jskit.connectors.amazonRedshift.fields.clusterIdentifier.label", placeholder: "analytics-cluster" },
|
|
40
|
+
{ name: "database", label: "jskit.connectors.amazonRedshift.fields.database.label", placeholder: "dev" },
|
|
41
|
+
{ name: "databaseUser", label: "jskit.connectors.amazonRedshift.fields.databaseUser.label", placeholder: "report_reader", hint: "jskit.connectors.amazonRedshift.fields.databaseUser.hint" }
|
|
42
42
|
],
|
|
43
43
|
setup: { url: "https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html", steps: [
|
|
44
44
|
"Select the warehouse's account and region in Amazon Redshift, then copy its serverless workgroup name or provisioned cluster identifier and database name.",
|
package/src/shared/amplitude.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { createSchema } from "json-rest-schema";
|
|
2
2
|
|
|
3
3
|
const amplitudeDefinition = Object.freeze({
|
|
4
|
-
id: "amplitude", name: "Amplitude", description: "
|
|
4
|
+
id: "amplitude", name: "Amplitude", description: "jskit.connectors.amplitude.description",
|
|
5
5
|
accountModes: ["assistant"], authenticationMethods: ["oauth2"],
|
|
6
6
|
scopes: [
|
|
7
|
-
{ value: "mcp:read", label: "
|
|
8
|
-
{ value: "mcp:write", label: "
|
|
9
|
-
{ value: "offline_access", label: "
|
|
7
|
+
{ value: "mcp:read", label: "jskit.connectors.amplitude.scopes.mcpRead.label", recommended: true },
|
|
8
|
+
{ value: "mcp:write", label: "jskit.connectors.amplitude.scopes.mcpWrite.label" },
|
|
9
|
+
{ value: "offline_access", label: "jskit.connectors.amplitude.scopes.offlineAccess.label", recommended: true }
|
|
10
10
|
],
|
|
11
11
|
settingsSchema: createSchema({ region: { type: "string", enum: ["us", "eu"], defaultTo: "us" } }),
|
|
12
|
-
settingsFields: [{ name: "region", label: "
|
|
13
|
-
items: [{ value: "us", title: "
|
|
12
|
+
settingsFields: [{ name: "region", label: "jskit.connectors.amplitude.fields.region.label", hint: "jskit.connectors.amplitude.fields.region.hint",
|
|
13
|
+
items: [{ value: "us", title: "jskit.connectors.amplitude.fields.region.items.us.title" }, { value: "eu", title: "jskit.connectors.amplitude.fields.region.items.eu.title" }] }],
|
|
14
14
|
setup: {
|
|
15
15
|
clientRegistrationEndpoint: (settings = {}) => settings.region === "eu"
|
|
16
16
|
? "https://mcp.eu.amplitude.com/register" : "https://mcp.amplitude.com/register",
|
package/src/shared/atlassian.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
const atlassianDefinition = Object.freeze({
|
|
2
|
-
id: "atlassian", name: "Atlassian", description: "
|
|
2
|
+
id: "atlassian", name: "Atlassian", description: "jskit.connectors.atlassian.description",
|
|
3
3
|
accountModes: ["assistant"], authenticationMethods: ["oauth2"],
|
|
4
4
|
scopes: [
|
|
5
|
-
{ value: "read:me", label: "
|
|
6
|
-
{ value: "read:account", label: "
|
|
7
|
-
{ value: "offline_access", label: "
|
|
8
|
-
{ value: "email", label: "
|
|
9
|
-
{ value: "read:jira:agent-interface", label: "
|
|
10
|
-
{ value: "write:jira:agent-interface", label: "
|
|
11
|
-
{ value: "search:jira:agent-interface", label: "
|
|
12
|
-
{ value: "delete:jira:agent-interface", label: "
|
|
13
|
-
{ value: "manage:jira:agent-interface", label: "
|
|
14
|
-
{ value: "read:confluence:agent-interface", label: "
|
|
15
|
-
{ value: "write:confluence:agent-interface", label: "
|
|
16
|
-
{ value: "search:confluence:agent-interface", label: "
|
|
17
|
-
{ value: "search:rovo:agent-interface", label: "
|
|
18
|
-
{ value: "search:code:agent-interface", label: "
|
|
19
|
-
{ value: "read:all:twg", label: "
|
|
20
|
-
{ value: "write:all:twg", label: "
|
|
5
|
+
{ value: "read:me", label: "jskit.connectors.atlassian.scopes.readMe.label", recommended: true },
|
|
6
|
+
{ value: "read:account", label: "jskit.connectors.atlassian.scopes.readAccount.label", recommended: true },
|
|
7
|
+
{ value: "offline_access", label: "jskit.connectors.atlassian.scopes.offlineAccess.label", recommended: true },
|
|
8
|
+
{ value: "email", label: "jskit.connectors.atlassian.scopes.email.label" },
|
|
9
|
+
{ value: "read:jira:agent-interface", label: "jskit.connectors.atlassian.scopes.readJiraAgentInterface.label", recommended: true },
|
|
10
|
+
{ value: "write:jira:agent-interface", label: "jskit.connectors.atlassian.scopes.writeJiraAgentInterface.label" },
|
|
11
|
+
{ value: "search:jira:agent-interface", label: "jskit.connectors.atlassian.scopes.searchJiraAgentInterface.label", recommended: true },
|
|
12
|
+
{ value: "delete:jira:agent-interface", label: "jskit.connectors.atlassian.scopes.deleteJiraAgentInterface.label" },
|
|
13
|
+
{ value: "manage:jira:agent-interface", label: "jskit.connectors.atlassian.scopes.manageJiraAgentInterface.label" },
|
|
14
|
+
{ value: "read:confluence:agent-interface", label: "jskit.connectors.atlassian.scopes.readConfluenceAgentInterface.label", recommended: true },
|
|
15
|
+
{ value: "write:confluence:agent-interface", label: "jskit.connectors.atlassian.scopes.writeConfluenceAgentInterface.label" },
|
|
16
|
+
{ value: "search:confluence:agent-interface", label: "jskit.connectors.atlassian.scopes.searchConfluenceAgentInterface.label", recommended: true },
|
|
17
|
+
{ value: "search:rovo:agent-interface", label: "jskit.connectors.atlassian.scopes.searchRovoAgentInterface.label" },
|
|
18
|
+
{ value: "search:code:agent-interface", label: "jskit.connectors.atlassian.scopes.searchCodeAgentInterface.label" },
|
|
19
|
+
{ value: "read:all:twg", label: "jskit.connectors.atlassian.scopes.readAllTwg.label" },
|
|
20
|
+
{ value: "write:all:twg", label: "jskit.connectors.atlassian.scopes.writeAllTwg.label" },
|
|
21
21
|
...["goals", "projects", "bitbucket", "loom", "talent", "teams", "artifacts", "focus"].flatMap((product) => {
|
|
22
22
|
const name = product[0].toUpperCase() + product.slice(1);
|
|
23
23
|
return [
|
|
24
|
-
{ value: `read:${product}:agent-interface`, label:
|
|
25
|
-
{ value: `write:${product}:agent-interface`, label:
|
|
24
|
+
{ value: `read:${product}:agent-interface`, label: { key: "jskit.connectors.atlassian.scopes.readProduct.label", params: { product: name } } },
|
|
25
|
+
{ value: `write:${product}:agent-interface`, label: { key: "jskit.connectors.atlassian.scopes.writeProduct.label", params: { product: name } } }
|
|
26
26
|
];
|
|
27
27
|
})
|
|
28
28
|
],
|
package/src/shared/aws.js
CHANGED
|
@@ -2,11 +2,11 @@ import { createSchema } from "json-rest-schema";
|
|
|
2
2
|
import { secretReference } from "@jskit-ai/connectors-core/shared/configuration";
|
|
3
3
|
|
|
4
4
|
const regions = [
|
|
5
|
-
["us-east-1", "
|
|
6
|
-
["eu-west-1", "
|
|
7
|
-
["eu-north-1", "
|
|
8
|
-
["ap-northeast-1", "
|
|
9
|
-
["sa-east-1", "
|
|
5
|
+
["us-east-1", "jskit.connectors.aws.regions.usEast1"], ["us-east-2", "jskit.connectors.aws.regions.usEast2"], ["us-west-1", "jskit.connectors.aws.regions.usWest1"], ["us-west-2", "jskit.connectors.aws.regions.usWest2"],
|
|
6
|
+
["eu-west-1", "jskit.connectors.aws.regions.euWest1"], ["eu-west-2", "jskit.connectors.aws.regions.euWest2"], ["eu-west-3", "jskit.connectors.aws.regions.euWest3"], ["eu-central-1", "jskit.connectors.aws.regions.euCentral1"],
|
|
7
|
+
["eu-north-1", "jskit.connectors.aws.regions.euNorth1"], ["ap-southeast-1", "jskit.connectors.aws.regions.apSoutheast1"], ["ap-southeast-2", "jskit.connectors.aws.regions.apSoutheast2"],
|
|
8
|
+
["ap-northeast-1", "jskit.connectors.aws.regions.apNortheast1"], ["ap-northeast-2", "jskit.connectors.aws.regions.apNortheast2"], ["ap-south-1", "jskit.connectors.aws.regions.apSouth1"],
|
|
9
|
+
["sa-east-1", "jskit.connectors.aws.regions.saEast1"], ["ca-central-1", "jskit.connectors.aws.regions.caCentral1"], ["me-south-1", "jskit.connectors.aws.regions.meSouth1"], ["af-south-1", "jskit.connectors.aws.regions.afSouth1"]
|
|
10
10
|
];
|
|
11
11
|
const awsSettings = {
|
|
12
12
|
region: { type: "string", enum: regions.map(([value]) => value), defaultTo: "us-east-1" },
|
|
@@ -14,14 +14,14 @@ const awsSettings = {
|
|
|
14
14
|
sessionTokenRef: { ...secretReference, required: false }
|
|
15
15
|
};
|
|
16
16
|
const awsFields = [
|
|
17
|
-
{ name: "region", label: "
|
|
18
|
-
{ name: "accessKeyIdRef", environmentCredential: { label: "
|
|
19
|
-
{ name: "sessionTokenRef", environmentCredential: { label: "
|
|
17
|
+
{ name: "region", label: "jskit.connectors.aws.fields.region.label", items: regions.map(([value, key]) => ({ value, title: { key, params: { region: value } } })) },
|
|
18
|
+
{ name: "accessKeyIdRef", environmentCredential: { label: "jskit.connectors.aws.fields.accessKeyIdRef.environmentCredential.label", public: false }, label: "jskit.connectors.aws.fields.accessKeyIdRef.label", placeholder: "env:AWS_ACCESS_KEY_ID", hint: "jskit.connectors.aws.fields.accessKeyIdRef.hint" },
|
|
19
|
+
{ name: "sessionTokenRef", environmentCredential: { label: "jskit.connectors.aws.fields.sessionTokenRef.environmentCredential.label", public: false }, label: "jskit.connectors.aws.fields.sessionTokenRef.label", placeholder: "env:AWS_SESSION_TOKEN", hint: "jskit.connectors.aws.fields.sessionTokenRef.hint" }
|
|
20
20
|
];
|
|
21
21
|
const awsCredentials = {
|
|
22
22
|
accountModes: ["shared", "assistant"], authenticationMethods: ["api-key"],
|
|
23
|
-
apiKeyReferenceLabel: "
|
|
24
|
-
apiKeyReferenceHint: "
|
|
23
|
+
apiKeyReferenceLabel: "jskit.connectors.aws.credentials.apiKeyReferenceLabel",
|
|
24
|
+
apiKeyReferenceHint: "jskit.connectors.aws.credentials.apiKeyReferenceHint"
|
|
25
25
|
};
|
|
26
26
|
const bucketName = {
|
|
27
27
|
type: "string", required: true, minLength: 3, maxLength: 63,
|
|
@@ -30,15 +30,15 @@ const bucketName = {
|
|
|
30
30
|
!/(-s3alias|--ol-s3|\.mrap|--x-s3|--table-s3|-an)$/u.test(value)) || "Enter a general purpose S3 bucket name, not an ARN, URL or directory bucket."
|
|
31
31
|
};
|
|
32
32
|
const awsS3Definition = Object.freeze({
|
|
33
|
-
id: "aws-s3", name: "AWS S3", description: "
|
|
33
|
+
id: "aws-s3", name: "AWS S3", description: "jskit.connectors.awsS3.description",
|
|
34
34
|
...awsCredentials,
|
|
35
|
-
permissionsHint: "
|
|
35
|
+
permissionsHint: "jskit.connectors.awsS3.permissionsHint",
|
|
36
36
|
scopes: [
|
|
37
|
-
{ value: "read", label: "
|
|
38
|
-
{ value: "write", label: "
|
|
37
|
+
{ value: "read", label: "jskit.connectors.awsS3.scopes.read.label", required: true, recommended: true },
|
|
38
|
+
{ value: "write", label: "jskit.connectors.awsS3.scopes.write.label", recommended: true }
|
|
39
39
|
],
|
|
40
40
|
settingsSchema: createSchema({ ...awsSettings, bucket: bucketName }),
|
|
41
|
-
settingsFields: [{ name: "bucket", label: "
|
|
41
|
+
settingsFields: [{ name: "bucket", label: "jskit.connectors.awsS3.fields.bucket.label", placeholder: "my-app-files" }, ...awsFields],
|
|
42
42
|
setup: { url: "https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html", steps: [
|
|
43
43
|
"In Amazon S3, select a general purpose bucket and copy its name and region. Keep public access blocked.",
|
|
44
44
|
"Use an IAM identity limited to this bucket: ListBucket and GetObject, plus PutObject only for uploads. Additional encryption permissions may be required.",
|
|
@@ -49,7 +49,7 @@ const awsS3Definition = Object.freeze({
|
|
|
49
49
|
] }
|
|
50
50
|
});
|
|
51
51
|
const awsAthenaDefinition = Object.freeze({
|
|
52
|
-
id: "aws-athena", name: "AWS Athena", description: "
|
|
52
|
+
id: "aws-athena", name: "AWS Athena", description: "jskit.connectors.awsAthena.description",
|
|
53
53
|
...awsCredentials, scopes: [],
|
|
54
54
|
settingsSchema: createSchema({ ...awsSettings,
|
|
55
55
|
workgroup: { type: "string", minLength: 1, maxLength: 128, defaultTo: "primary", pattern: "^[a-zA-Z0-9._-]+$" },
|
|
@@ -57,8 +57,8 @@ const awsAthenaDefinition = Object.freeze({
|
|
|
57
57
|
/^s3:\/\/[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]\/(?:[^\s?#\\]*)$/u.test(value) || "Enter an s3://bucket/prefix/ location without query parameters or fragments." }
|
|
58
58
|
}),
|
|
59
59
|
settingsFields: [...awsFields,
|
|
60
|
-
{ name: "workgroup", label: "
|
|
61
|
-
{ name: "resultLocation", label: "
|
|
60
|
+
{ name: "workgroup", label: "jskit.connectors.awsAthena.fields.workgroup.label", placeholder: "primary", hint: "jskit.connectors.awsAthena.fields.workgroup.hint" },
|
|
61
|
+
{ name: "resultLocation", label: "jskit.connectors.awsAthena.fields.resultLocation.label", placeholder: "s3://my-query-results/athena/", hint: "jskit.connectors.awsAthena.fields.resultLocation.hint" }
|
|
62
62
|
],
|
|
63
63
|
setup: { url: "https://docs.aws.amazon.com/athena/latest/ug/creating-workgroups.html", steps: [
|
|
64
64
|
"In the Athena console, select the region and open Workgroups in the navigation pane. Select an existing SQL workgroup, or choose Create workgroup, enter its name, choose Athena SQL and AWS Identity and Access Management (IAM) authentication. This connector does not use Spark or IAM Identity Center workgroups.",
|
package/src/shared/canva.js
CHANGED
|
@@ -10,27 +10,27 @@ function validateCanvaClientId(value) {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
const canvaDefinition = Object.freeze({
|
|
13
|
-
id: "canva", name: "Canva", description: "
|
|
13
|
+
id: "canva", name: "Canva", description: "jskit.connectors.canva.description",
|
|
14
14
|
accountModes: ["assistant"], authenticationMethods: ["oauth2"], oauthClientAuthenticationMethods: ["none"],
|
|
15
|
-
clientIdLabel: "
|
|
15
|
+
clientIdLabel: "jskit.connectors.canva.clientIdLabel", clientIdHint: "jskit.connectors.canva.clientIdHint",
|
|
16
16
|
validateClientId: validateCanvaClientId,
|
|
17
17
|
scopes: [
|
|
18
|
-
{ value: "profile:read", label: "
|
|
19
|
-
{ value: "design:meta:read", label: "
|
|
20
|
-
{ value: "design:content:write", label: "
|
|
21
|
-
{ value: "design:content:read", label: "
|
|
22
|
-
{ value: "folder:read", label: "
|
|
23
|
-
{ value: "folder:write", label: "
|
|
24
|
-
{ value: "brandtemplate:content:read", label: "
|
|
25
|
-
{ value: "brandtemplate:meta:read", label: "
|
|
26
|
-
{ value: "brandtemplate:content:write", label: "
|
|
27
|
-
{ value: "comment:write", label: "
|
|
28
|
-
{ value: "comment:read", label: "
|
|
29
|
-
{ value: "asset:read", label: "
|
|
30
|
-
{ value: "asset:write", label: "
|
|
31
|
-
{ value: "brandkit:read", label: "
|
|
32
|
-
{ value: "help:answers:read", label: "
|
|
33
|
-
{ value: "help:answers:write", label: "
|
|
18
|
+
{ value: "profile:read", label: "jskit.connectors.canva.scopes.profileRead.label", recommended: true },
|
|
19
|
+
{ value: "design:meta:read", label: "jskit.connectors.canva.scopes.designMetaRead.label", recommended: true },
|
|
20
|
+
{ value: "design:content:write", label: "jskit.connectors.canva.scopes.designContentWrite.label" },
|
|
21
|
+
{ value: "design:content:read", label: "jskit.connectors.canva.scopes.designContentRead.label", recommended: true },
|
|
22
|
+
{ value: "folder:read", label: "jskit.connectors.canva.scopes.folderRead.label", recommended: true },
|
|
23
|
+
{ value: "folder:write", label: "jskit.connectors.canva.scopes.folderWrite.label" },
|
|
24
|
+
{ value: "brandtemplate:content:read", label: "jskit.connectors.canva.scopes.brandtemplateContentRead.label" },
|
|
25
|
+
{ value: "brandtemplate:meta:read", label: "jskit.connectors.canva.scopes.brandtemplateMetaRead.label" },
|
|
26
|
+
{ value: "brandtemplate:content:write", label: "jskit.connectors.canva.scopes.brandtemplateContentWrite.label" },
|
|
27
|
+
{ value: "comment:write", label: "jskit.connectors.canva.scopes.commentWrite.label" },
|
|
28
|
+
{ value: "comment:read", label: "jskit.connectors.canva.scopes.commentRead.label" },
|
|
29
|
+
{ value: "asset:read", label: "jskit.connectors.canva.scopes.assetRead.label" },
|
|
30
|
+
{ value: "asset:write", label: "jskit.connectors.canva.scopes.assetWrite.label" },
|
|
31
|
+
{ value: "brandkit:read", label: "jskit.connectors.canva.scopes.brandkitRead.label" },
|
|
32
|
+
{ value: "help:answers:read", label: "jskit.connectors.canva.scopes.helpAnswersRead.label" },
|
|
33
|
+
{ value: "help:answers:write", label: "jskit.connectors.canva.scopes.helpAnswersWrite.label" }
|
|
34
34
|
],
|
|
35
35
|
setup: {
|
|
36
36
|
url: "https://www.canva.dev/docs/mcp/",
|
package/src/shared/chargebee.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createSchema } from "json-rest-schema";
|
|
2
2
|
|
|
3
3
|
const chargebeeDefinition = Object.freeze({
|
|
4
|
-
id: "chargebee", name: "Chargebee", description: "
|
|
4
|
+
id: "chargebee", name: "Chargebee", description: "jskit.connectors.chargebee.description",
|
|
5
5
|
accountModes: ["shared", "assistant"], authenticationMethods: ["api-key"], scopes: [],
|
|
6
6
|
settingsSchema: createSchema({
|
|
7
7
|
siteName: { type: "string", required: true, minLength: 1, maxLength: 63,
|
|
8
8
|
validator: (value) => /^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/iu.test(value) || "Enter the site name without .chargebee.com, a URL or spaces." }
|
|
9
9
|
}),
|
|
10
|
-
settingsFields: [{ name: "siteName", label: "
|
|
11
|
-
hint: "
|
|
10
|
+
settingsFields: [{ name: "siteName", label: "jskit.connectors.chargebee.fields.siteName.label", placeholder: "acme-test",
|
|
11
|
+
hint: "jskit.connectors.chargebee.fields.siteName.hint" }],
|
|
12
12
|
setup: {
|
|
13
13
|
url: "https://www.chargebee.com/docs/billing/2.0/site-configuration/api_keys",
|
|
14
14
|
steps: [
|
package/src/shared/clickhouse.js
CHANGED
|
@@ -2,23 +2,23 @@ import { createSchema } from "json-rest-schema";
|
|
|
2
2
|
import { httpsSiteUrlField } from "./siteUrl.js";
|
|
3
3
|
|
|
4
4
|
const clickhouseDefinition = Object.freeze({
|
|
5
|
-
id: "clickhouse", name: "ClickHouse", description: "
|
|
5
|
+
id: "clickhouse", name: "ClickHouse", description: "jskit.connectors.clickhouse.description",
|
|
6
6
|
accountModes: ["shared", "assistant"], authenticationMethods: ["api-key", "none"], scopes: [],
|
|
7
|
-
authenticationLabels: { "api-key": "
|
|
8
|
-
authenticationHint: "
|
|
7
|
+
authenticationLabels: { "api-key": "jskit.connectors.clickhouse.authenticationLabels.apiKey", none: "jskit.connectors.clickhouse.authenticationLabels.none" },
|
|
8
|
+
authenticationHint: "jskit.connectors.clickhouse.authenticationHint",
|
|
9
9
|
apiKeySecretOptional: true,
|
|
10
|
-
apiKeyReferenceLabel: "
|
|
11
|
-
apiKeyReferenceHint: "
|
|
10
|
+
apiKeyReferenceLabel: "jskit.connectors.clickhouse.apiKeyReferenceLabel",
|
|
11
|
+
apiKeyReferenceHint: "jskit.connectors.clickhouse.apiKeyReferenceHint",
|
|
12
12
|
settingsSchema: createSchema({
|
|
13
13
|
httpUrl: httpsSiteUrlField,
|
|
14
14
|
username: { type: "string", minLength: 1, maxLength: 256,
|
|
15
15
|
validator: (value) => !/[:\p{Cc}]/u.test(value) || "Enter a username without colons or control characters." }
|
|
16
16
|
}),
|
|
17
17
|
settingsFields: [
|
|
18
|
-
{ name: "httpUrl", label: "
|
|
19
|
-
hint: "
|
|
20
|
-
{ name: "username", label: "
|
|
21
|
-
hint: "
|
|
18
|
+
{ name: "httpUrl", label: "jskit.connectors.clickhouse.fields.httpUrl.label", placeholder: "https://service.example.clickhouse.cloud:8443",
|
|
19
|
+
hint: "jskit.connectors.clickhouse.fields.httpUrl.hint" },
|
|
20
|
+
{ name: "username", label: "jskit.connectors.clickhouse.fields.username.label", placeholder: "default", authenticationMethods: ["api-key"],
|
|
21
|
+
hint: "jskit.connectors.clickhouse.fields.username.hint" }
|
|
22
22
|
],
|
|
23
23
|
setup: {
|
|
24
24
|
url: "https://clickhouse.com/docs/products/cloud/guides/sql-console/connection-details",
|
package/src/shared/confidence.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const confidenceScopes = [
|
|
2
|
-
{ value: "openid", label: "
|
|
3
|
-
{ value: "profile", label: "
|
|
4
|
-
{ value: "email", label: "
|
|
5
|
-
{ value: "offline_access", label: "
|
|
2
|
+
{ value: "openid", label: "jskit.connectors.confidence.scopes.openid.label", recommended: true },
|
|
3
|
+
{ value: "profile", label: "jskit.connectors.confidence.scopes.profile.label", recommended: true },
|
|
4
|
+
{ value: "email", label: "jskit.connectors.confidence.scopes.email.label", recommended: true },
|
|
5
|
+
{ value: "offline_access", label: "jskit.connectors.confidence.scopes.offlineAccess.label", recommended: true }
|
|
6
6
|
];
|
|
7
7
|
|
|
8
8
|
function definition(id, name, description) {
|
|
@@ -22,7 +22,7 @@ function definition(id, name, description) {
|
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
const confidenceFlagsDefinition = definition("confidence-flags", "Confidence Flags", "
|
|
26
|
-
const confidenceExpDefinition = definition("confidence-exp", "Confidence Exp", "
|
|
25
|
+
const confidenceFlagsDefinition = definition("confidence-flags", "Confidence Flags", "jskit.connectors.confidenceFlags.description");
|
|
26
|
+
const confidenceExpDefinition = definition("confidence-exp", "Confidence Exp", "jskit.connectors.confidenceExp.description");
|
|
27
27
|
|
|
28
28
|
export { confidenceFlagsDefinition, confidenceExpDefinition };
|
package/src/shared/databricks.js
CHANGED
|
@@ -5,22 +5,22 @@ function validWorkspaceUrl(value) {
|
|
|
5
5
|
return /^https:\/\/(?:dbc-[a-z0-9]+(?:-[a-z0-9]+)*\.cloud\.databricks\.com|adb-[0-9]+\.[0-9]+\.azuredatabricks\.net|[0-9]+\.[0-9]+\.gcp\.databricks\.com)\/?$/u.test(value);
|
|
6
6
|
}
|
|
7
7
|
const scopes = [
|
|
8
|
-
{ value: "all-apis", label: "
|
|
9
|
-
{ value: "offline_access", label: "
|
|
10
|
-
{ value: "jobs", label: "
|
|
8
|
+
{ value: "all-apis", label: "jskit.connectors.databricks.scopes.allApis.label", recommended: true },
|
|
9
|
+
{ value: "offline_access", label: "jskit.connectors.databricks.scopes.offlineAccess.label", recommended: true },
|
|
10
|
+
{ value: "jobs", label: "jskit.connectors.databricks.scopes.jobs.label" }
|
|
11
11
|
];
|
|
12
12
|
const databricksDefinition = Object.freeze({
|
|
13
|
-
id: "databricks", name: "Databricks", description: "
|
|
13
|
+
id: "databricks", name: "Databricks", description: "jskit.connectors.databricks.description",
|
|
14
14
|
accountModes: ["shared", "per-user", "assistant"], authenticationMethods: ["oauth2"],
|
|
15
15
|
oauthGrantTypes: ["authorization_code", "client_credentials"],
|
|
16
16
|
oauthClientAuthenticationMethods: (grantType) => grantType === "client_credentials" ? ["client_secret_basic"] : ["client_secret_post"],
|
|
17
|
-
oauthGrantHint: "
|
|
17
|
+
oauthGrantHint: "jskit.connectors.databricks.oauthGrantHint",
|
|
18
18
|
settingsSchema: createSchema({ workspaceUrl: { type: "string", required: true, maxLength: 253,
|
|
19
19
|
validator: (value) => validWorkspaceUrl(value) || "Enter the HTTPS per-workspace URL for Databricks on AWS, Azure or Google Cloud, without a path or query." } }),
|
|
20
|
-
settingsFields: [{ name: "workspaceUrl", label: "
|
|
21
|
-
hint: "
|
|
20
|
+
settingsFields: [{ name: "workspaceUrl", label: "jskit.connectors.databricks.fields.workspaceUrl.label", placeholder: "https://dbc-abc123.cloud.databricks.com",
|
|
21
|
+
hint: "jskit.connectors.databricks.fields.workspaceUrl.hint" }],
|
|
22
22
|
scopes, scopesForGrantType: (grantType) => scopes.filter((scope) => grantType === "client_credentials" ? scope.value !== "offline_access" : scope.value !== "jobs"),
|
|
23
|
-
permissionsHint: "
|
|
23
|
+
permissionsHint: "jskit.connectors.databricks.permissionsHint",
|
|
24
24
|
setup: { url: "https://docs.databricks.com/aws/en/integrations/enable-disable-oauth", steps: [
|
|
25
25
|
"Enter the intended workspace's HTTPS origin in Workspace URL. Choose User consent for a custom OAuth application, or Service account for a service principal; these require different credentials.",
|
|
26
26
|
"For User consent, an account admin opens account console > Settings > App connections > Add connection. Enter the app name and exact suggested callback, choose All APIs, generate a confidential client secret, set token lifetimes and add the connection. Copy the client ID and one-time secret. Activation can take 30 minutes.",
|
|
@@ -3,20 +3,20 @@ import { createSchema } from "json-rest-schema";
|
|
|
3
3
|
const label = "[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?";
|
|
4
4
|
const hostPattern = new RegExp(`^(?:semantic-layer\\.${label}\\.(?:getdbt|dbt)\\.com|${label}\\.semantic-layer\\.${label}\\.dbt\\.com)$`, "u");
|
|
5
5
|
const dbtSemanticLayerDefinition = Object.freeze({
|
|
6
|
-
id: "dbt-semantic-layer", name: "dbt Semantic Layer", description: "
|
|
6
|
+
id: "dbt-semantic-layer", name: "dbt Semantic Layer", description: "jskit.connectors.dbtSemanticLayer.description",
|
|
7
7
|
accountModes: ["shared", "assistant"], authenticationMethods: ["api-key"], scopes: [],
|
|
8
|
-
apiKeyReferenceLabel: "
|
|
9
|
-
apiKeyReferenceHint: "
|
|
8
|
+
apiKeyReferenceLabel: "jskit.connectors.dbtSemanticLayer.apiKeyReferenceLabel",
|
|
9
|
+
apiKeyReferenceHint: "jskit.connectors.dbtSemanticLayer.apiKeyReferenceHint",
|
|
10
10
|
settingsSchema: createSchema({
|
|
11
11
|
host: { type: "string", required: true, maxLength: 253, validator: (value) => hostPattern.test(value) || "Enter the lowercase dbt Semantic Layer hostname without a URL, path or port." },
|
|
12
12
|
environmentId: { type: "string", required: true, noTrim: true, maxLength: 38,
|
|
13
13
|
validator: (value, object, context) => (typeof context.valueBeforeCast === "string" && /^[1-9][0-9]*$/u.test(value)) || "Enter a positive decimal Environment ID as text, without spaces or leading zeros." }
|
|
14
14
|
}),
|
|
15
15
|
settingsFields: [
|
|
16
|
-
{ name: "host", label: "
|
|
17
|
-
hint: "
|
|
18
|
-
{ name: "environmentId", label: "
|
|
19
|
-
hint: "
|
|
16
|
+
{ name: "host", label: "jskit.connectors.dbtSemanticLayer.fields.host.label", placeholder: "semantic-layer.cloud.getdbt.com",
|
|
17
|
+
hint: "jskit.connectors.dbtSemanticLayer.fields.host.hint" },
|
|
18
|
+
{ name: "environmentId", label: "jskit.connectors.dbtSemanticLayer.fields.environmentId.label", placeholder: "70506183142324",
|
|
19
|
+
hint: "jskit.connectors.dbtSemanticLayer.fields.environmentId.hint" }
|
|
20
20
|
],
|
|
21
21
|
setup: { url: "https://docs.getdbt.com/docs/use-dbt-semantic-layer/setup-sl", steps: [
|
|
22
22
|
"Open Account settings > Settings > Projects and select the project. In Project details, choose Semantic Layer > Configure Semantic Layer, select the deployment environment and Save. Metrics, a successful deployment run and a supported data platform must already exist.",
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// "@jskit-ai/connectors-catalog/shared/ai" in English; the keyed texts are in ai.js.
|
|
2
|
+
import { aiAccessLabels as keyedAccessLabels, aiDefinition as keyedDefinition } from "./ai.js";
|
|
3
|
+
import { englishTexts } from "./english-texts.js";
|
|
4
|
+
|
|
5
|
+
export { aiCatalogue, getAiModel, listAiModels } from "./ai.js";
|
|
6
|
+
export const { aiAccessLabels, aiDefinition } = englishTexts({ aiAccessLabels: keyedAccessLabels, aiDefinition: keyedDefinition });
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// The browser-safe catalog ("@jskit-ai/connectors-catalog/shared") in English; the
|
|
2
|
+
// keyed definitions are in definitions.js (see connectors-core createEnglishProviderTexts).
|
|
3
|
+
import * as keyedDefinitions from "./definitions.js";
|
|
4
|
+
import { englishTexts } from "./english-texts.js";
|
|
5
|
+
|
|
6
|
+
export { createCanvaClientMetadata, validN8nOAuthDiscovery } from "./definitions.js";
|
|
7
|
+
export const {
|
|
8
|
+
aiDefinition, airtableDefinition, algoliaDefinition, amazonRedshiftDefinition, apifyDefinition,
|
|
9
|
+
apolloIoDefinition, asanaDefinition, ashbyDefinition, atlassianDefinition, attentionDefinition,
|
|
10
|
+
awsAthenaDefinition, awsS3Definition, bigqueryDefinition, brevoDefinition, calendlyDefinition,
|
|
11
|
+
canvaDefinition, chargebeeDefinition, clayDefinition, clickhouseDefinition,
|
|
12
|
+
confidenceExpDefinition, confidenceFlagsDefinition, connectorDefinitions, contentfulDefinition,
|
|
13
|
+
databricksDefinition, dbtSemanticLayerDefinition, elevenlabsDefinition, figmaDefinition,
|
|
14
|
+
firebaseCloudMessagingDefinition, firecrawlDefinition, firefliesDefinition,
|
|
15
|
+
fireworksAiDefinition, gatewayApiDefinition, geminiEnterpriseDefinition, githubApiDefinition,
|
|
16
|
+
gitlabApiDefinition, gmailDefinition, gongDefinition, googleAdsDefinition,
|
|
17
|
+
googleAnalyticsDefinition, googleDefinitions, googleDocsDefinition, googleDriveDefinition,
|
|
18
|
+
googleMapsPlatformDefinition, googleSearchConsoleDefinition, googleSheetsDefinition,
|
|
19
|
+
googleSlidesDefinition, granolaDefinition, hexDefinition, heygenDefinition, hubspotDefinition,
|
|
20
|
+
incidentIoDefinition, inngestDefinition, klipyDefinition, lexwareDefinition,
|
|
21
|
+
lightspeedDefinition, linearDefinition, linkedinDefinition, logoDevDefinition, mailgunDefinition,
|
|
22
|
+
mapboxDefinition, microsoftDefinitions, microsoftExcelDefinition, microsoftOneDriveDefinition,
|
|
23
|
+
microsoftOneNoteDefinition, microsoftOutlookDefinition, microsoftPowerPointDefinition,
|
|
24
|
+
microsoftSharePointDefinition, microsoftTeamsDefinition, microsoftWordDefinition, miroDefinition,
|
|
25
|
+
n8nDefinition, notionDefinition, ouraDefinition, paddleDefinition, perplexityDefinition,
|
|
26
|
+
pipedriveDefinition, polarDefinition, posthogDefinition, prestashopDefinition,
|
|
27
|
+
replicateDefinition, resendDefinition, salesforceDefinition, sanityDefinition, semrushDefinition,
|
|
28
|
+
sentryDefinition, sevdeskDefinition, shopifyDefinition, slackDefinition, snowflakeDefinition,
|
|
29
|
+
storyblokDefinition, stripeDefinition, supabaseDefinition, tallyDefinition, telegramDefinition,
|
|
30
|
+
tiktokDefinition, tokenDefinitions, twilioDefinition, twitchDefinition, waveDefinition,
|
|
31
|
+
wixDefinition, wizDefinition, woocommerceDefinition, wordpressComDefinition,
|
|
32
|
+
wordpressSelfHostedDefinition, workdayDefinition, xTwitterDefinition, xeroDefinition,
|
|
33
|
+
zohoBooksDefinition, zohoCrmDefinition
|
|
34
|
+
} = englishTexts({ ...keyedDefinitions });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createEnglishProviderTexts } from "@jskit-ai/connectors-core/shared/configuration";
|
|
2
|
+
import en from "../../locales/en.json" with { type: "json" };
|
|
3
|
+
|
|
4
|
+
// One renderer for both English entries, so an English definition is the same object in each.
|
|
5
|
+
const englishTexts = createEnglishProviderTexts(en);
|
|
6
|
+
|
|
7
|
+
export { englishTexts };
|
package/src/shared/figma.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const figmaDefinition = Object.freeze({
|
|
2
|
-
id: "figma", name: "Figma", description: "
|
|
2
|
+
id: "figma", name: "Figma", description: "jskit.connectors.figma.description",
|
|
3
3
|
accountModes: ["assistant"], authenticationMethods: ["oauth2"],
|
|
4
|
-
scopes: [{ value: "mcp:connect", label: "
|
|
4
|
+
scopes: [{ value: "mcp:connect", label: "jskit.connectors.figma.scopes.mcpConnect.label", recommended: true }],
|
|
5
5
|
setup: {
|
|
6
6
|
url: "https://developers.figma.com/docs/figma-mcp-server/",
|
|
7
7
|
clientRegistrationEndpoint: "https://api.figma.com/v1/oauth/mcp/register",
|
|
@@ -15,20 +15,20 @@ const webSettings = createSchema({ ...common,
|
|
|
15
15
|
validator: (value) => /^B[A-Za-z0-9_-]{85}[AEIMQUYcgkosw048]$/u.test(value) || "Enter the public Web Push certificate key from Firebase, not a private key." }
|
|
16
16
|
});
|
|
17
17
|
const firebaseCloudMessagingDefinition = Object.freeze({
|
|
18
|
-
id: "firebase-cloud-messaging", name: "Firebase Cloud Messaging", description: "
|
|
18
|
+
id: "firebase-cloud-messaging", name: "Firebase Cloud Messaging", description: "jskit.connectors.firebaseCloudMessaging.description",
|
|
19
19
|
accountModes: ["shared", "assistant"], authenticationMethods: ["service-account"],
|
|
20
|
-
serviceAccountReferenceLabel: "
|
|
21
|
-
serviceAccountReferenceHint: "
|
|
22
|
-
scopes: [{ value: firebaseMessagingScope, label: "
|
|
23
|
-
permissionsHint: "
|
|
20
|
+
serviceAccountReferenceLabel: "jskit.connectors.firebaseCloudMessaging.serviceAccountReferenceLabel",
|
|
21
|
+
serviceAccountReferenceHint: "jskit.connectors.firebaseCloudMessaging.serviceAccountReferenceHint",
|
|
22
|
+
scopes: [{ value: firebaseMessagingScope, label: "jskit.connectors.firebaseCloudMessaging.scopes.firebaseMessagingScope.label", recommended: true }],
|
|
23
|
+
permissionsHint: "jskit.connectors.firebaseCloudMessaging.permissionsHint",
|
|
24
24
|
settingsSchema: (settings = {}) => settings.clientMode === "web" ? webSettings : serverSettings,
|
|
25
25
|
settingsFields: [
|
|
26
|
-
{ name: "projectId", label: "
|
|
27
|
-
{ name: "clientMode", label: "
|
|
28
|
-
hint: "
|
|
29
|
-
{ name: "apiKey", label: "
|
|
30
|
-
{ name: "appId", label: "
|
|
31
|
-
{ name: "vapidKey", label: "
|
|
26
|
+
{ name: "projectId", label: "jskit.connectors.firebaseCloudMessaging.fields.projectId.label", placeholder: "my-notifications-app", hint: "jskit.connectors.firebaseCloudMessaging.fields.projectId.hint" },
|
|
27
|
+
{ name: "clientMode", label: "jskit.connectors.firebaseCloudMessaging.fields.clientMode.label", items: [{ value: "server", title: "jskit.connectors.firebaseCloudMessaging.fields.clientMode.items.server.title" }, { value: "web", title: "jskit.connectors.firebaseCloudMessaging.fields.clientMode.items.web.title" }],
|
|
28
|
+
hint: "jskit.connectors.firebaseCloudMessaging.fields.clientMode.hint" },
|
|
29
|
+
{ name: "apiKey", label: "jskit.connectors.firebaseCloudMessaging.fields.apiKey.label", placeholder: "AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", hint: "jskit.connectors.firebaseCloudMessaging.fields.apiKey.hint" },
|
|
30
|
+
{ name: "appId", label: "jskit.connectors.firebaseCloudMessaging.fields.appId.label", placeholder: "1:123456789012:web:abcdef1234567890", hint: "jskit.connectors.firebaseCloudMessaging.fields.appId.hint" },
|
|
31
|
+
{ name: "vapidKey", label: "jskit.connectors.firebaseCloudMessaging.fields.vapidKey.label", placeholder: "BEl62...", hint: "jskit.connectors.firebaseCloudMessaging.fields.vapidKey.hint" }
|
|
32
32
|
],
|
|
33
33
|
setup: { url: "https://firebase.google.com/docs/cloud-messaging/send/v1-api", steps: [
|
|
34
34
|
"Open the target Firebase project. In Project settings > General, copy its project ID. Enable Firebase Cloud Messaging API (HTTP v1) if disabled.",
|
package/src/shared/firecrawl.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const firecrawlDefinition = Object.freeze({
|
|
2
|
-
id: "firecrawl", name: "Firecrawl", description: "
|
|
2
|
+
id: "firecrawl", name: "Firecrawl", description: "jskit.connectors.firecrawl.description",
|
|
3
3
|
accountModes: ["shared", "assistant"], authenticationMethods: ["api-key"], scopes: [],
|
|
4
4
|
setup: {
|
|
5
5
|
url: "https://docs.firecrawl.dev/introduction",
|
|
@@ -3,7 +3,7 @@ import { createSchema } from "json-rest-schema";
|
|
|
3
3
|
const geminiEnterpriseScope = "https://www.googleapis.com/auth/cloud-platform";
|
|
4
4
|
const geminiEnterpriseDefinition = Object.freeze({
|
|
5
5
|
id: "gemini-enterprise", name: "Gemini Enterprise",
|
|
6
|
-
description: "
|
|
6
|
+
description: "jskit.connectors.geminiEnterprise.description",
|
|
7
7
|
accountModes: ["shared", "assistant"], authenticationMethods: ["oauth2"],
|
|
8
8
|
oauthClientAuthenticationMethods: ["client_secret_post", "client_secret_basic"],
|
|
9
9
|
settingsSchema: createSchema({
|
|
@@ -14,13 +14,13 @@ const geminiEnterpriseDefinition = Object.freeze({
|
|
|
14
14
|
validator: (value) => /^[a-z0-9][a-z0-9_-]*$/u.test(value) || "Enter the engine ID, starting with a lowercase letter or digit and using only lowercase letters, digits, hyphens or underscores." }
|
|
15
15
|
}),
|
|
16
16
|
settingsFields: [
|
|
17
|
-
{ name: "projectId", label: "
|
|
18
|
-
{ name: "location", label: "
|
|
19
|
-
hint: "
|
|
20
|
-
{ name: "engineId", label: "
|
|
17
|
+
{ name: "projectId", label: "jskit.connectors.geminiEnterprise.fields.projectId.label", placeholder: "my-gcp-project", hint: "jskit.connectors.geminiEnterprise.fields.projectId.hint" },
|
|
18
|
+
{ name: "location", label: "jskit.connectors.geminiEnterprise.fields.location.label", items: [{ value: "global", title: "jskit.connectors.geminiEnterprise.fields.location.items.global.title" }, { value: "us", title: "jskit.connectors.geminiEnterprise.fields.location.items.us.title" }, { value: "eu", title: "jskit.connectors.geminiEnterprise.fields.location.items.eu.title" }],
|
|
19
|
+
hint: "jskit.connectors.geminiEnterprise.fields.location.hint" },
|
|
20
|
+
{ name: "engineId", label: "jskit.connectors.geminiEnterprise.fields.engineId.label", placeholder: "my-search-engine", hint: "jskit.connectors.geminiEnterprise.fields.engineId.hint" }
|
|
21
21
|
],
|
|
22
|
-
scopes: [{ value: geminiEnterpriseScope, label: "
|
|
23
|
-
permissionsHint: "
|
|
22
|
+
scopes: [{ value: geminiEnterpriseScope, label: "jskit.connectors.geminiEnterprise.scopes.geminiEnterpriseScope.label", recommended: true }],
|
|
23
|
+
permissionsHint: "jskit.connectors.geminiEnterprise.permissionsHint",
|
|
24
24
|
setup: { url: "https://docs.cloud.google.com/gemini/enterprise/docs/authentication", steps: [
|
|
25
25
|
"In Google Cloud, select the project, enable the Discovery Engine API and create or select a Gemini Enterprise search app. Copy its project ID, location and engine ID.",
|
|
26
26
|
"Grant the connecting Google account discoveryengine.engines.get and discoveryengine.servingConfigs.search on the target resources. Configure source access and any required Gemini Enterprise license separately.",
|
package/src/shared/gong.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createSchema } from "json-rest-schema";
|
|
2
2
|
|
|
3
3
|
const gongDefinition = Object.freeze({
|
|
4
|
-
id: "gong", name: "Gong", description: "
|
|
4
|
+
id: "gong", name: "Gong", description: "jskit.connectors.gong.description",
|
|
5
5
|
accountModes: ["shared", "assistant"], authenticationMethods: ["api-key"], scopes: [],
|
|
6
|
-
apiKeyReferenceLabel: "
|
|
6
|
+
apiKeyReferenceLabel: "jskit.connectors.gong.apiKeyReferenceLabel",
|
|
7
7
|
settingsSchema: createSchema({
|
|
8
8
|
accessKey: { type: "string", required: true, minLength: 1, maxLength: 512,
|
|
9
9
|
validator: (value) => !/[:\s\p{Cc}]/u.test(value) || "Enter the access key without spaces, control characters or colons." },
|
|
@@ -12,9 +12,9 @@ const gongDefinition = Object.freeze({
|
|
|
12
12
|
"Use https://api.gong.io or your company's https://<company>.api.gong.io address, without a path or query." }
|
|
13
13
|
}),
|
|
14
14
|
settingsFields: [
|
|
15
|
-
{ name: "accessKey", label: "
|
|
16
|
-
{ name: "apiBaseUrl", label: "
|
|
17
|
-
hint: "
|
|
15
|
+
{ name: "accessKey", label: "jskit.connectors.gong.fields.accessKey.label", hint: "jskit.connectors.gong.fields.accessKey.hint" },
|
|
16
|
+
{ name: "apiBaseUrl", label: "jskit.connectors.gong.fields.apiBaseUrl.label", placeholder: "https://api.gong.io",
|
|
17
|
+
hint: "jskit.connectors.gong.fields.apiBaseUrl.hint" }
|
|
18
18
|
],
|
|
19
19
|
setup: {
|
|
20
20
|
url: "https://help.gong.io/docs/receive-access-to-the-api",
|