@jskit-ai/connectors-catalog 0.1.63 → 0.1.65
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/README.md +12 -17
- package/docs/ai.md +5 -17
- package/docs/amazon-redshift.md +6 -8
- package/docs/apollo-io.md +0 -8
- package/docs/ashby.md +0 -8
- package/docs/attention.md +0 -8
- package/docs/aws-athena.md +2 -2
- package/docs/aws-credentials.md +1 -1
- package/docs/aws-s3.md +1 -1
- package/docs/bigquery.md +2 -4
- package/docs/calendly.md +4 -14
- package/docs/chargebee.md +0 -9
- package/docs/clickhouse.md +1 -1
- package/docs/confidence-oauth.md +3 -9
- package/docs/contentful.md +4 -13
- package/docs/databricks.md +35 -3
- package/docs/dbt-semantic-layer.md +2 -8
- package/docs/figma.md +5 -5
- package/docs/firebase-cloud-messaging.md +3 -3
- package/docs/firecrawl.md +1 -1
- package/docs/fireflies.md +7 -10
- package/docs/gemini-enterprise.md +33 -3
- package/docs/gong.md +0 -9
- package/docs/google-ads.md +53 -11
- package/docs/google-analytics.md +2 -2
- package/docs/google-maps-platform.md +3 -9
- package/docs/granola.md +1 -1
- package/docs/hubspot.md +25 -0
- package/docs/klipy.md +0 -13
- package/docs/lexware.md +0 -8
- package/docs/lightspeed.md +32 -3
- package/docs/linear.md +24 -7
- package/docs/linkedin.md +16 -16
- package/docs/logo-dev.md +7 -25
- package/docs/mailgun.md +1 -14
- package/docs/mapbox.md +0 -8
- package/docs/microsoft-fabric.md +50 -13
- package/docs/microsoft-oauth.md +33 -0
- package/docs/microsoft-powerpoint.md +2 -13
- package/docs/microsoft-word.md +2 -13
- package/docs/miro.md +2 -2
- package/docs/oura.md +4 -3
- package/docs/polar.md +3 -5
- package/docs/posthog.md +2 -17
- package/docs/prestashop.md +5 -9
- package/docs/salesforce.md +41 -12
- package/docs/sentry.md +1 -12
- package/docs/sevdesk.md +2 -13
- package/docs/shopify.md +35 -2
- package/docs/slack.md +39 -14
- package/docs/snowflake.md +27 -2
- package/docs/telegram.md +0 -10
- package/docs/tiktok.md +19 -1
- package/docs/twilio.md +1 -1
- package/docs/twitch.md +34 -4
- package/docs/wave.md +36 -15
- package/docs/wix.md +4 -17
- package/docs/wiz.md +4 -4
- package/docs/wordpress-com.md +4 -13
- package/docs/workday.md +28 -9
- package/docs/x-twitter.md +0 -9
- package/docs/xero.md +39 -11
- package/docs/zoho-books.md +41 -10
- package/docs/zoho-crm.md +36 -12
- package/package.json +3 -3
- package/patterns/oauth-connection/PATTERN.md +27 -610
- package/patterns/paddle-catalogue/example/create-products.js +2 -1
- package/patterns/redshift-queries/PATTERN.md +1 -1
- package/src/server/attention.js +8 -11
- package/src/server/bigquery.js +7 -11
- package/src/server/brevo.js +7 -10
- package/src/server/calendly.js +7 -9
- package/src/server/chargebee.js +3 -6
- package/src/server/firecrawl.js +3 -3
- package/src/server/gatewayapi.js +4 -4
- package/src/server/github-api.js +1 -1
- package/src/server/gitlab-api.js +1 -1
- package/src/server/gmail.js +6 -11
- package/src/server/gong.js +4 -4
- package/src/server/google-ads-search.js +4 -5
- package/src/server/google-docs.js +10 -22
- package/src/server/google-drive.js +6 -6
- package/src/server/google-maps-platform.js +4 -8
- package/src/server/google-search-console.js +2 -2
- package/src/server/google-sheets.js +12 -18
- package/src/server/google-slides.js +10 -16
- package/src/server/google.js +17 -9
- package/src/server/jsonOperation.js +17 -18
- package/src/server/lexware.js +4 -9
- package/src/server/resend.js +8 -14
- package/src/server/semrush.js +70 -89
- package/src/server/wix.js +152 -222
- package/src/server/x-twitter.js +21 -18
- package/src/shared/ai.js +3 -1
- package/src/shared/definitions.js +2 -34
- package/src/shared/firecrawl.js +17 -0
- package/src/shared/gemini-enterprise.js +1 -1
- package/src/shared/google-ads.js +1 -1
- package/src/shared/google.js +2 -2
- package/src/shared/logo-dev.js +1 -1
- package/src/shared/mapbox.js +2 -2
- package/src/shared/mcp.js +2 -5
- package/src/shared/microsoft-fabric.js +1 -1
- package/src/shared/microsoft.js +12 -24
- package/src/shared/resend.js +20 -0
- package/src/shared/siteUrl.js +1 -1
- package/src/shared/tokens.js +4 -6
- package/src/shared/workday.js +1 -1
- package/test/firecrawl.test.js +1 -1
- package/test/github-api.test.js +2 -1
- package/test/gitlab-api.test.js +2 -1
- package/test/gong.test.js +2 -2
- package/test/google.test.js +20 -10
- package/test/setupGuides.test.js +18 -0
- package/test/tokens.test.js +1 -1
- package/test/wix.test.js +13 -0
- package/test/wiz.test.js +9 -3
package/docs/polar.md
CHANGED
|
@@ -54,10 +54,8 @@ billing owner. Tokens within one organization share its applicable limits;
|
|
|
54
54
|
sandbox/production separates test and real commerce. The editor supplies no
|
|
55
55
|
shared registration, token pool or merchant account.
|
|
56
56
|
|
|
57
|
-
##
|
|
57
|
+
## Scope and limitations
|
|
58
58
|
|
|
59
|
-
The
|
|
59
|
+
The app-owned Organization Access Token adapter lists a Polar.sh product catalogue in sandbox or production, with bounded page/name/archive/recurrence filters and environment-bound verification.
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
2 Polar-specific plus 2 shared environment/pagination source checks passed, and the same 4 installed-package checks passed on September 13. Existing shared token/environment form evidence is retained; no fresh browser run.
|
|
61
|
+
Coding-assistant attachment and MCP authentication/tools are not supplied. No managed payments, merchant onboarding, checkout, subscription/customer/order management, refunds, webhooks, credits/entitlements, catalogue writes/synchronization or customer login is shipped by this adapter. No merchant OAuth, customer-access-token mode, token provisioning, extra array/metadata/sort filters or automatic pagination. Changing environment requires verification; local disconnect does not revoke the token. The app supplies its own organization token, permissions, UI and access policy. Adding an app billing product requires a separate scope decision; do not infer Stripe/Paddle parity from this catalogue reader. Other frameworks use the same project configuration and their own native tools; JSKIT is optional.
|
package/docs/posthog.md
CHANGED
|
@@ -186,25 +186,11 @@ not enable OAuth in the implemented fragment. A separate OAuth implementation
|
|
|
186
186
|
must register the application's actual callback, bind consent to its authenticated
|
|
187
187
|
user and own its grants. That consent journey remains unfinished.
|
|
188
188
|
|
|
189
|
-
##
|
|
190
|
-
|
|
191
|
-
Nine tests exercise simulated PostHog responses with actual temporary encrypted
|
|
192
|
-
JSON files: both regions, restart, rotation, ownership, disconnect, settings,
|
|
193
|
-
explicit verification input, public-token validation, request boundaries,
|
|
194
|
-
flag results, capture acceptance, quota and HTTP errors. No live provider
|
|
195
|
-
account, consent, event submission or generated application is used.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
## Existing-scope closeout — 13 September 2026
|
|
189
|
+
## Scope and limitations
|
|
199
190
|
|
|
200
191
|
Supported: public Cloud project-token verification through explicit-subject flag
|
|
201
192
|
evaluation, `flags.evaluate` and `events.capture`, EU/US region configuration,
|
|
202
193
|
Env references, encrypted local connection state, token rotation and disconnect.
|
|
203
|
-
Nine controlled source tests and nine installed-package tests pass. Existing
|
|
204
|
-
phone/desktop configuration evidence is retained; no new browser run was made
|
|
205
|
-
for this closeout and no runtime/form behavior changed.
|
|
206
|
-
|
|
207
|
-
Limitations:
|
|
208
194
|
|
|
209
195
|
- No private analytics querying, dashboards, project provisioning, personal API
|
|
210
196
|
credentials, OAuth, MCP or self-hosted/custom ingestion domains.
|
|
@@ -220,8 +206,7 @@ Limitations:
|
|
|
220
206
|
- Flag quota or partial-evaluation failures are errors, with no automatic
|
|
221
207
|
fallback value. The backend supplies no visitor IP forwarding.
|
|
222
208
|
- Disconnect removes local state only; rotate the token in PostHog when needed.
|
|
223
|
-
Assistant tool attachment requires explicit host integration.
|
|
224
|
-
ingestion, provider quota behavior or generated application was exercised.
|
|
209
|
+
Assistant tool attachment requires explicit host integration.
|
|
225
210
|
|
|
226
211
|
The application must compose the browser lifecycle and analytics features
|
|
227
212
|
it needs; this connector does not supply a complete analytics product.
|
package/docs/prestashop.md
CHANGED
|
@@ -95,7 +95,7 @@ segments. It does not perform DNS filtering. The application controls who can
|
|
|
95
95
|
edit this credential destination and what networks its backend can reach.
|
|
96
96
|
Operation input cannot substitute a different URL.
|
|
97
97
|
|
|
98
|
-
## Automation and
|
|
98
|
+
## Automation and hosted ownership
|
|
99
99
|
|
|
100
100
|
An AI can prepare the JSON and runtime wiring. With authorized access to the
|
|
101
101
|
store's PHP runtime, provider APIs can enable `PS_WEBSERVICE`, create a
|
|
@@ -129,16 +129,13 @@ writes, order processing, stock changes, additional filters, explicit multistore
|
|
|
129
129
|
selection per request, webhooks and complete account-connection UI
|
|
130
130
|
remain outside this fragment. The newer Admin API is a separate protocol.
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
## Existing-scope closeout — 13 September 2026
|
|
132
|
+
## Scope and limitations
|
|
134
133
|
|
|
135
134
|
The supported surface is `products.list` and `orders.list` with explicit
|
|
136
135
|
pagination/language, a merchant-owned Webservice key and the configured HTTPS
|
|
137
|
-
store path.
|
|
138
|
-
editor form checks are retained; no fresh browser run or runtime/form change was
|
|
139
|
-
made for this closeout. This is not full commerce or Lovable parity.
|
|
136
|
+
store path. This is not full commerce.
|
|
140
137
|
|
|
141
|
-
|
|
138
|
+
Not implemented: product/order writes and XML write composition, customer and
|
|
142
139
|
inventory resource operations, stock updates, checkout/payments, fulfilment,
|
|
143
140
|
refunds, carts, additional search/filter/detail operations, automatic traversal
|
|
144
141
|
of associations, webhooks, automatic pagination, retries and newer Admin API
|
|
@@ -147,5 +144,4 @@ per-request shop selector. No OAuth, shopper authentication or per-shopper grant
|
|
|
147
144
|
The application owns business UI, routes, access policy and native framework
|
|
148
145
|
composition. Verification reads products only and cannot establish order access.
|
|
149
146
|
Disconnect removes local state; disable/revoke the key in the merchant back office.
|
|
150
|
-
|
|
151
|
-
actual permissions/data and generated-app execution have not been verified.
|
|
147
|
+
Assistant tool attachment requires explicit host integration.
|
package/docs/salesforce.md
CHANGED
|
@@ -161,9 +161,10 @@ not exposed as user messages. Cancellation/deadlines do not replay a request.
|
|
|
161
161
|
## Application ownership, callbacks and capacity
|
|
162
162
|
|
|
163
163
|
The application owner creates the provider registration and stores its secret
|
|
164
|
-
in the application's private Env.
|
|
165
|
-
|
|
166
|
-
references; the editor does not own the
|
|
164
|
+
in the application's private Env. Every editor and CLI uses this same
|
|
165
|
+
[ownership model](../../connectors-core/docs/online-setup.md): the configuration
|
|
166
|
+
file holds the client ID and Env references; the editor does not own the
|
|
167
|
+
application's grants.
|
|
167
168
|
|
|
168
169
|
Register the exact callback implemented by the application. For a hosted project,
|
|
169
170
|
start with its assigned application URL and append the implemented callback path.
|
|
@@ -207,17 +208,13 @@ customer data and application generation are outside this delivery's tests.
|
|
|
207
208
|
Writes, Bulk API, SOAP, streaming, MCP, client-credentials/JWT grants, identity
|
|
208
209
|
login and additional domains remain outside the initial runtime fragment.
|
|
209
210
|
|
|
210
|
-
|
|
211
|
-
## Existing-scope closeout — 13 September 2026
|
|
211
|
+
## Scope and limitations
|
|
212
212
|
|
|
213
213
|
Supported operations are `limits.read`, `objects.list`, `objects.describe`,
|
|
214
214
|
`query.read` and `query.next`, through project-owned confidential OAuth on the
|
|
215
|
-
configured production/developer/sandbox My Domain.
|
|
216
|
-
public-export tests each pass 13/13, including the packaged configuration example.
|
|
217
|
-
Historical editor form proof is retained; no new browser run or runtime/form
|
|
218
|
-
change was needed for this closeout.
|
|
215
|
+
configured production/developer/sandbox My Domain.
|
|
219
216
|
|
|
220
|
-
|
|
217
|
+
Not implemented: record create/update/delete and relationship
|
|
221
218
|
mutations, bulk/partial-write handling, SOAP, streaming/events, MCP, automatic
|
|
222
219
|
pagination, query building/parameter binding, client-credentials/JWT or other
|
|
223
220
|
grants, identity login, Experience Cloud/sovereign/legacy instance hosts and API
|
|
@@ -229,5 +226,37 @@ does not establish access to a particular object or field. A missing token expir
|
|
|
229
226
|
uses a five-minute local renewal policy, not a provider lifetime guarantee.
|
|
230
227
|
Disconnect removes local grants only; provider revocation remains an org/admin
|
|
231
228
|
action. Native framework routes, business UI, app sessions and access policy are
|
|
232
|
-
application-owned. Assistant tool attachment requires explicit host integration.
|
|
233
|
-
|
|
229
|
+
application-owned. Assistant tool attachment requires explicit host integration.
|
|
230
|
+
|
|
231
|
+
## OAuth pattern composition: Salesforce
|
|
232
|
+
|
|
233
|
+
Use `salesforceProvider` from `@jskit-ai/connectors-catalog/server/salesforce`
|
|
234
|
+
and the portable JSON in this guide. Read that guide before provisioning
|
|
235
|
+
an External Client App. Production/Developer Edition and Sandbox have distinct
|
|
236
|
+
My Domain formats. Client credentials remain in references; the runtime pins
|
|
237
|
+
consent, token exchange and APIs to that org and handles undated/rotating grants.
|
|
238
|
+
The ordinary file service, Env resolver and application owner policy of the [OAuth pattern](../patterns/oauth-connection/PATTERN.md) apply.
|
|
239
|
+
|
|
240
|
+
After consent, `limits.read` verifies API access. A server action can expose an
|
|
241
|
+
approved query through the same library:
|
|
242
|
+
|
|
243
|
+
```js
|
|
244
|
+
const result = await connections.invoke({
|
|
245
|
+
context: authenticatedContext, integrationId: "crm", operation: "query.read",
|
|
246
|
+
input: { q: "SELECT Id, Name FROM Account ORDER BY Id LIMIT 20" }, signal
|
|
247
|
+
});
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
The application supplies the trusted context and abort signal. It authorizes
|
|
251
|
+
objects, fields and any query parameters in its existing action/policy; avoid
|
|
252
|
+
an unrestricted query endpoint. `api` can authorize writes even though these
|
|
253
|
+
operations only read. Do not use provider connection identity as application
|
|
254
|
+
login. For metadata, call `objects.list` and `objects.describe` with an object
|
|
255
|
+
API name. Keep a returned `nextRecordsUrl` with its original owner/query and pass
|
|
256
|
+
it only to `query.next`. No automatic paging is installed.
|
|
257
|
+
|
|
258
|
+
Map `connector_cursor_expired` to restarting the authorized query and
|
|
259
|
+
`connector_reconnect_required` to the existing connection UI. Do not retry a
|
|
260
|
+
failed operation in a loop. Register the application's implemented callback and
|
|
261
|
+
follow provider requirements for distributing an app across customer orgs.
|
|
262
|
+
Separate registrations do not divide an org's API allocation.
|
package/docs/sentry.md
CHANGED
|
@@ -89,16 +89,7 @@ with explicit MCP discovery and authorized tool calls. No alias or automatic
|
|
|
89
89
|
conversion retains the old connection; remove its local record through its
|
|
90
90
|
owning application and review whether its old Env token is still used elsewhere.
|
|
91
91
|
|
|
92
|
-
##
|
|
93
|
-
|
|
94
|
-
Two focused tests cover resource and registration validation. Seven OAuth/MCP
|
|
95
|
-
tests cover consent, PKCE, encrypted persistence, refresh, owner/resource
|
|
96
|
-
isolation, issue details, exact tool authorization, errors and cancellation;
|
|
97
|
-
those seven also pass through installed public package exports. Public editor
|
|
98
|
-
registration has a passing owner/Env test, and phone/desktop browser checks cover
|
|
99
|
-
registration, consent cancellation, reconnect, reload and disconnect. All use
|
|
100
|
-
controlled fixtures; live tool schemas, consent and account behavior are unverified.
|
|
101
|
-
The previous REST organization probe is replaced without a compatibility alias.
|
|
92
|
+
## Limitations and sources
|
|
102
93
|
|
|
103
94
|
The official repository also documents a remote `Sentry-Bearer` token alternative,
|
|
104
95
|
distinct from OAuth `Bearer`. That alternative is not implemented here yet.
|
|
@@ -108,5 +99,3 @@ Sources: [hosted MCP instructions](https://mcp.sentry.dev/),
|
|
|
108
99
|
[resource binding](https://github.com/getsentry/sentry-mcp/blob/main/packages/mcp-cloudflare/src/server/protected-resource-metadata.ts),
|
|
109
100
|
[OAuth metadata](https://github.com/getsentry/sentry-mcp/blob/main/packages/mcp-cloudflare/src/server/authorization-server-metadata.ts),
|
|
110
101
|
[scope definitions](https://github.com/getsentry/sentry-mcp/blob/main/packages/mcp-core/src/scopes.ts).
|
|
111
|
-
Public discovery requests returned HTTP 403 from the development environment;
|
|
112
|
-
source evidence does not establish successful live consent.
|
package/docs/sevdesk.md
CHANGED
|
@@ -91,17 +91,6 @@ independent-capacity arrangement need confirmation. The application enforces
|
|
|
91
91
|
its own usage limits. No callback URL is
|
|
92
92
|
used, so editor VM and app hosting domains do not affect this flow.
|
|
93
93
|
|
|
94
|
-
##
|
|
94
|
+
## Scope and limitations
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
They cover raw authorization, page defaults, explicit organization-only reads,
|
|
98
|
-
numeric-string totals, invalid inputs/envelopes, restart, rotation, ownership
|
|
99
|
-
and disconnect. Editor automation verifies the token label, reference-only
|
|
100
|
-
storage and save/reload. Live provider use, account creation and sample-app
|
|
101
|
-
generation are excluded.
|
|
102
|
-
|
|
103
|
-
## Existing-scope closeout — 13 September 2026
|
|
104
|
-
|
|
105
|
-
Contact listing only, including people by default (`depth: 1`), explicit organization-only depth, bounded offset pagination and numeric-string totals. The project supplies its existing raw API token through Env. No contact detail/search/create/update/delete, related-object expansion, invoices, orders, vouchers or bookkeeping operations are implemented. There is no OAuth/app registration, application-user login, token-issuance automation, automatic pagination/retry or remote token revocation. Applications still own their UI, authorization and pagination; disconnect removes local connection state. Deferred work is the missing contact/accounting operations and their validation, permissions, setup guidance and tests. No live Sevdesk account, provider-console login or generated-app run was tested.
|
|
106
|
-
|
|
107
|
-
Three selected source tests and the same three installed-package tests passed on September 13. They cover credential verification, encrypted file restart, rotation, isolation, disconnect, pagination/depth/totals and redacted invalid-input/provider failures. Existing shared business-token UI evidence is retained; no fresh browser run or form change is claimed.
|
|
96
|
+
Contact listing only, including people by default (`depth: 1`), explicit organization-only depth, bounded offset pagination and numeric-string totals. The project supplies its existing raw API token through Env. No contact detail/search/create/update/delete, related-object expansion, invoices, orders, vouchers or bookkeeping operations are implemented. There is no OAuth/app registration, application-user login, token-issuance automation, automatic pagination/retry or remote token revocation. Applications still own their UI, authorization and pagination; disconnect removes local connection state.
|
package/docs/shopify.md
CHANGED
|
@@ -96,8 +96,7 @@ operations locally; Shopify remains the authority for the token's actual rights.
|
|
|
96
96
|
|
|
97
97
|
## Application registrations, callbacks and domains
|
|
98
98
|
|
|
99
|
-
Shopify's word *online* describes a staff-user access token.
|
|
100
|
-
the Vibe64 Online product.
|
|
99
|
+
Shopify's word *online* describes a staff-user access token.
|
|
101
100
|
|
|
102
101
|
The application owner creates its Shopify app in the Dev Dashboard, configures
|
|
103
102
|
its distribution, access scopes and application URL, and completes any required
|
|
@@ -204,3 +203,37 @@ Operation references: [products](https://shopify.dev/docs/api/admin-graphql/late
|
|
|
204
203
|
[productCreate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate),
|
|
205
204
|
[productUpdate](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate),
|
|
206
205
|
[productDelete](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDelete).
|
|
206
|
+
|
|
207
|
+
## OAuth pattern composition: Shopify product operations and assistant permissions
|
|
208
|
+
|
|
209
|
+
Import `shopifyProvider` from `@jskit-ai/connectors-catalog/server/shopify` and read
|
|
210
|
+
this guide. The supported new-app flow is an installed app in
|
|
211
|
+
the **same Shopify organization** as its store, with `grantType: "client_credentials"`.
|
|
212
|
+
There is no callback in this flow. Put the client secret in an environment
|
|
213
|
+
reference and configure the permanent `shopDomain`, not a custom storefront URL.
|
|
214
|
+
Call `connectClientCredentials` before the named product operations. Existing
|
|
215
|
+
Admin API tokens use `connectApiKey` instead. Other merchants need the unfinished
|
|
216
|
+
Shopify installation/consent flow; do not pretend client credentials cover them.
|
|
217
|
+
|
|
218
|
+
The runtime sends Shopify's header and GraphQL Admin API 2026-07 requests. It
|
|
219
|
+
supports bounded product listing, creation, update and deletion. Create defaults
|
|
220
|
+
to draft. Use Product GIDs; price/SKU/variants and publication are separate work.
|
|
221
|
+
Do not retry a mutation blindly after timeout. A store connection is not shopper
|
|
222
|
+
login or an individual staff member's authorized session.
|
|
223
|
+
|
|
224
|
+
Construct assistant-facing services with `executionMode: "assistant"`; the
|
|
225
|
+
host's trusted authorization callback receives `{ assistantPermission, input }`.
|
|
226
|
+
It must verify real human approval and return `approved: true` for `ask`, together
|
|
227
|
+
with the checked owner identity. The shared runtime denies `never` and does not
|
|
228
|
+
accept a browser-supplied approval flag. `always` still checks application access.
|
|
229
|
+
The host must bind approval to the exact request and supply its existing decision
|
|
230
|
+
UI/storage; the library does not create another approval system.
|
|
231
|
+
|
|
232
|
+
The portable `assistantPolicy` holds enablement, a default and action overrides.
|
|
233
|
+
It is independent of credentials, provider scopes and connection sharing. Host
|
|
234
|
+
workspace policy may further restrict it. Use `authorizeAssistantAction` only
|
|
235
|
+
before a host-owned lifecycle operation such as enabling or claiming a store;
|
|
236
|
+
it authorizes but does not execute that action. The captured remaining action
|
|
237
|
+
choices do not mean variant/discount/store lifecycle adapters are implemented.
|
|
238
|
+
The application owns its registration and token storage. The editor's
|
|
239
|
+
Connect/approval journey must invoke that application's setup operations.
|
package/docs/slack.md
CHANGED
|
@@ -133,7 +133,7 @@ it does not uninstall the Slack app or revoke every grant in that workspace.
|
|
|
133
133
|
Socket mode, slash commands, organization-wide
|
|
134
134
|
installs, GovSlack and Sign in with Slack are outside this initial fragment.
|
|
135
135
|
|
|
136
|
-
##
|
|
136
|
+
## Editors, hosting and automation
|
|
137
137
|
|
|
138
138
|
Each application owns its provider registration, callback route, credentials
|
|
139
139
|
and grants. Hosted and installed editors configure the same app-owned setup;
|
|
@@ -182,20 +182,10 @@ registration provisioner. For a manual manifest path, select **Create New App
|
|
|
182
182
|
From a manifest**, select the workspace, paste JSON/YAML, review and create.
|
|
183
183
|
[Manifest UI](https://docs.slack.dev/app-manifests/configuring-apps-with-app-manifests/).
|
|
184
184
|
|
|
185
|
-
##
|
|
186
|
-
|
|
187
|
-
Controlled local tests exercise both identities, encrypted file restart,
|
|
188
|
-
rotating and non-rotating grants, scope restrictions, cancellation, actor changes,
|
|
189
|
-
bounded paging, HTTP-200 failures, malformed responses and interruption. Shared
|
|
190
|
-
form tests and Vibe64 browser tests cover conditional scopes and file round trips.
|
|
191
|
-
No live Slack registration, provider consent, customer data or generated app is
|
|
192
|
-
part of this proof. Current controlled source and installed-package suites each pass 17/17.
|
|
193
|
-
Current-source compact and expanded editor cases pass separately, including
|
|
194
|
-
actor/scope persistence, signing-secret reference, inline guidance, per-user
|
|
195
|
-
connection instructions and shared connect/cancel/disconnect controls. Registration
|
|
196
|
-
provisioning remains an operator action; assistant tool attachment requires
|
|
197
|
-
explicit host integration.
|
|
185
|
+
## Limitations
|
|
198
186
|
|
|
187
|
+
Registration provisioning remains an operator action; assistant tool attachment
|
|
188
|
+
requires explicit host integration.
|
|
199
189
|
|
|
200
190
|
## Message operations
|
|
201
191
|
|
|
@@ -255,3 +245,38 @@ CLI applications use this same code without the editor; other frameworks can use
|
|
|
255
245
|
native Slack verification support with the same Env and route contract.
|
|
256
246
|
|
|
257
247
|
[Slack signature contract](https://docs.slack.dev/authentication/verifying-requests-from-slack/).
|
|
248
|
+
|
|
249
|
+
## OAuth pattern composition: Slack
|
|
250
|
+
|
|
251
|
+
Import `slackProvider` from `@jskit-ai/connectors-catalog/server/slack` and include
|
|
252
|
+
it in the provider array used for parsing and `createConnectionService`.
|
|
253
|
+
Set `settings.actor` to `user` or `bot`, independently of application ownership.
|
|
254
|
+
Use an own confidential registration and a real registered HTTPS callback;
|
|
255
|
+
plain HTTP loopback is not supported by Slack. The [Slack guide](slack.md)
|
|
256
|
+
contains a complete portable JSON file and manual/API registration instructions.
|
|
257
|
+
|
|
258
|
+
For channel listing, request `channels:read` and call:
|
|
259
|
+
|
|
260
|
+
```js
|
|
261
|
+
const firstPage = await connections.invoke({
|
|
262
|
+
context: authenticatedContext,
|
|
263
|
+
integrationId: "slack",
|
|
264
|
+
operation: "channels.list",
|
|
265
|
+
input: { limit: 50, exclude_archived: true }
|
|
266
|
+
});
|
|
267
|
+
// Retain next_cursor even when filtering leaves this page empty.
|
|
268
|
+
const nextCursor = firstPage.response_metadata?.next_cursor;
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
The host supplies `authenticatedContext`; user request parameters cannot select
|
|
272
|
+
another owner. The library selects `user_scope` versus `scope`, extracts the
|
|
273
|
+
requested token identity, checks Slack's HTTP-200 errors and refreshes rotating
|
|
274
|
+
grants under the file lock. Do not duplicate that code in generated handlers.
|
|
275
|
+
Add the corresponding read permission before using `groups.list`,
|
|
276
|
+
`directMessages.list` or `groupMessages.list`. `auth.test` returns identity.
|
|
277
|
+
|
|
278
|
+
An individually owned bot connection still acts as the installed workspace bot.
|
|
279
|
+
It is not a personal account or an application login. Actor changes require
|
|
280
|
+
reconnection and remove incompatible form scopes. Captured permission choices
|
|
281
|
+
do not imply implemented operations: history, sends, events, organization-wide
|
|
282
|
+
installs and Sign in with Slack remain outside this fragment. The application implements and registers its own callback.
|
package/docs/snowflake.md
CHANGED
|
@@ -124,8 +124,8 @@ For an application integration, use the application's assigned hosting URL as
|
|
|
124
124
|
the initial origin and its implemented callback path. Store the exact callback
|
|
125
125
|
in its Env reference and provider registration. A domain change requires updating
|
|
126
126
|
both values if the callback URL changes; retain the application identity and its
|
|
127
|
-
persistent grants when moving hosts.
|
|
128
|
-
|
|
127
|
+
persistent grants when moving hosts. Every editor and CLI supplies its own
|
|
128
|
+
registrations through this same contract.
|
|
129
129
|
See the [callback guide](../../connectors-core/docs/oauth-callbacks.md).
|
|
130
130
|
|
|
131
131
|
A Snowflake security integration belongs to one Snowflake account. Separate
|
|
@@ -269,3 +269,28 @@ the confidential-client/PKCE consent and refresh lifecycle there; JSKIT is not a
|
|
|
269
269
|
remote service. Preserve string-valued numeric results, one explicit statement
|
|
270
270
|
request ID, partition polling and cancellation. Apply the same application
|
|
271
271
|
policy to SQL text, handles and warehouse names before invoking the provider.
|
|
272
|
+
|
|
273
|
+
## OAuth pattern composition: Snowflake account OAuth
|
|
274
|
+
|
|
275
|
+
Use `snowflakeProvider` from `@jskit-ai/connectors-catalog/server/snowflake` and
|
|
276
|
+
this guide. Its portable settings are `accountUrl` and optional `role`.
|
|
277
|
+
The shared form and CLI parser derive compatible scope choices from the role.
|
|
278
|
+
Omit the role for the connected user's default and retain `refresh_token`;
|
|
279
|
+
otherwise include the exact required role scope returned by `getProviderScopes`.
|
|
280
|
+
Do not hand-encode a space-containing role twice. Changing role/account requires
|
|
281
|
+
new consent. The registration supports confidential client secret POST or Basic;
|
|
282
|
+
PKCE remains enabled for both.
|
|
283
|
+
|
|
284
|
+
The useful operation is `databases.list` with `showLimit`, `like`, `startsWith`,
|
|
285
|
+
`fromName` and `history`. It reads one metadata page and pins the configured role
|
|
286
|
+
in the request header. Do not turn user text into SQL or infer table access from
|
|
287
|
+
successful metadata verification. HTTP 202 remains an explicit incomplete
|
|
288
|
+
response, with no polling implementation in this fragment.
|
|
289
|
+
|
|
290
|
+
An administrator creates the custom OAuth integration inside each customer's
|
|
291
|
+
Snowflake account. AI can assist through authorized SQL/CLI provisioning, but
|
|
292
|
+
reader credentials do not grant that authority. Keep secret results out of chat.
|
|
293
|
+
Register the application's callback and update that registration and its
|
|
294
|
+
environment binding when the callback domain changes. Compute billing belongs
|
|
295
|
+
to the Snowflake account. Use application authorization, reference resolution
|
|
296
|
+
and durable storage; the editor does not hold the grant.
|
package/docs/telegram.md
CHANGED
|
@@ -99,16 +99,6 @@ ownership. The application owner must confirm provider capacity for its usage. D
|
|
|
99
99
|
outbound API calls; a separately implemented webhook consumer must own its explicit callback and
|
|
100
100
|
delivery lifecycle.
|
|
101
101
|
|
|
102
|
-
## Focused evidence
|
|
103
|
-
|
|
104
|
-
Automated fixtures check token validation, fixed destinations, bot-only
|
|
105
|
-
verification, empty webhook URLs, malformed results, unsuccessful HTTP-200
|
|
106
|
-
envelopes, authorization failures, rate limits, file-store restart, isolation,
|
|
107
|
-
rotation and disconnect. The editor test checks the bot-token label, rejection
|
|
108
|
-
of raw credentials, setup link and saved-reference reload. No live bot,
|
|
109
|
-
provider consent, message delivery or sample application is exercised.
|
|
110
|
-
|
|
111
|
-
|
|
112
102
|
## Interactive message workflow
|
|
113
103
|
|
|
114
104
|
Before polling, call `webhook.read`. A nonempty webhook URL means another
|
package/docs/tiktok.md
CHANGED
|
@@ -168,7 +168,7 @@ read the same registration references and ownership/scopes, call GET
|
|
|
168
168
|
response. It must retain the provider-specific `client_key`, comma scopes and
|
|
169
169
|
refresh-token rules described above. JSKIT supplies no PHP implementation.
|
|
170
170
|
|
|
171
|
-
##
|
|
171
|
+
## Editors, hosting and custom domains
|
|
172
172
|
|
|
173
173
|
Each application owns its provider registration, callback route, credentials
|
|
174
174
|
and grants. Hosted and installed editors configure the same app-owned setup;
|
|
@@ -199,3 +199,21 @@ The app developer must obtain approval for the actual integration and user flow.
|
|
|
199
199
|
The initial fragment is tested with controlled token/API responses and the editor
|
|
200
200
|
configuration UI. No live TikTok registration, production approval, provider
|
|
201
201
|
consent or generated application has been exercised.
|
|
202
|
+
|
|
203
|
+
## OAuth pattern composition: TikTok
|
|
204
|
+
|
|
205
|
+
Use `tiktokProvider` from `@jskit-ai/connectors-catalog/server/tiktok` and the
|
|
206
|
+
packaged this guide. The portable `clientId` field stores TikTok's Client
|
|
207
|
+
key. The adapter sends `client_key` during authorize/token exchanges, comma
|
|
208
|
+
separated scopes, and requires a static HTTPS Web callback under 512 characters.
|
|
209
|
+
The CLI uses that same callback-owning backend and file runtime; do not embed
|
|
210
|
+
its secret into distributed clients or assume HTTP loopback/native support.
|
|
211
|
+
|
|
212
|
+
`profile.read` verifies basic access. `profile.extended`, `profile.stats` and
|
|
213
|
+
`videos.list` require their respective optional permissions. Handle declined
|
|
214
|
+
permissions as unavailable operations; never substitute the builder's account
|
|
215
|
+
for an app user's connection. Video reads use explicit pages with string IDs;
|
|
216
|
+
the runtime implements no posting or Research API. Refresh rotates credentials
|
|
217
|
+
and may reduce permissions. Local disconnect does not revoke access at TikTok.
|
|
218
|
+
The application owns its callback and allowed return destination. App login
|
|
219
|
+
remains a separate concern from this data connection.
|
package/docs/twilio.md
CHANGED
|
@@ -257,7 +257,7 @@ same account do not establish separate billing or guaranteed quota isolation.
|
|
|
257
257
|
The application operator selects its account, key and region and owns usage
|
|
258
258
|
limits. This adapter does not provision capacity or enforce a budget. Use
|
|
259
259
|
separate parent accounts where independent billing is required, subject to
|
|
260
|
-
Twilio's account arrangements.
|
|
260
|
+
Twilio's account arrangements. Hosted editor, installed editor and CLI users configure
|
|
261
261
|
the same application-owned credentials.
|
|
262
262
|
|
|
263
263
|
There is no OAuth callback in this API-key flow, so editor VM URLs and custom
|
package/docs/twitch.md
CHANGED
|
@@ -399,7 +399,7 @@ reconnection; a Helix 401 likewise requires reconnection without replay. This
|
|
|
399
399
|
fragment does not implement Twitch's recommended reactive refresh on 401.
|
|
400
400
|
[Refresh behavior](https://dev.twitch.tv/docs/authentication/refresh-tokens/).
|
|
401
401
|
|
|
402
|
-
##
|
|
402
|
+
## Editors, hosting and automation
|
|
403
403
|
|
|
404
404
|
Twitch requires a distinct client ID for each application. Each generated app
|
|
405
405
|
owns its registration, whether created with a hosted editor, installed editor or
|
|
@@ -417,12 +417,42 @@ The documented registration path is the console. No supported application
|
|
|
417
417
|
creation API was established in this review. An AI can prepare the JSON,
|
|
418
418
|
environment references, callback wiring and validation job. The owner handles
|
|
419
419
|
account verification, human verification, registration and consent; automation
|
|
420
|
-
must not invent a registration endpoint or bypass those steps.
|
|
421
|
-
operator-managed credential storage can simplify wiring after the
|
|
422
|
-
registration exists, but this fragment does not provision that service.
|
|
420
|
+
must not invent a registration endpoint or bypass those steps. A hosting
|
|
421
|
+
platform's operator-managed credential storage can simplify wiring after the
|
|
422
|
+
app-specific registration exists, but this fragment does not provision that service.
|
|
423
423
|
|
|
424
424
|
Twenty controlled runtime tests cover consent formats and replay, encrypted file
|
|
425
425
|
restart, refresh rotation, owner/client isolation, validation, bounded paging,
|
|
426
426
|
malformed responses, provider failures and interruption. Public-editor tests
|
|
427
427
|
cover the configuration form. No live registration, user data, consent or
|
|
428
428
|
sample application is part of this proof.
|
|
429
|
+
|
|
430
|
+
## OAuth pattern composition: Twitch
|
|
431
|
+
|
|
432
|
+
Use `twitchProvider` from `@jskit-ai/connectors-catalog/server/twitch` in the
|
|
433
|
+
provider array of the [OAuth pattern](../patterns/oauth-connection/PATTERN.md) and the portable JSON in this guide. Start with
|
|
434
|
+
`user:read:email` and `user:read:follows` for `profile.read` and
|
|
435
|
+
`channels.followed`; remove any permission whose operation is not used.
|
|
436
|
+
Its normal operations verify the token before data access. The provider also
|
|
437
|
+
exposes `token.validate` for Twitch's required startup/hourly validation of
|
|
438
|
+
maintained sessions, including idle connections:
|
|
439
|
+
|
|
440
|
+
```js
|
|
441
|
+
// Run from the host's startup and scheduled-job paths. Contexts are derived
|
|
442
|
+
// by its existing authorization owner, never from caller-supplied user IDs.
|
|
443
|
+
for (const context of maintainedTwitchContexts) {
|
|
444
|
+
try {
|
|
445
|
+
await connections.invoke({ context, integrationId: "twitch", operation: "token.validate" });
|
|
446
|
+
} catch (error) {
|
|
447
|
+
await reportConnectionFailure(context, error);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
The host supplies `maintainedTwitchContexts` and `reportConnectionFailure`;
|
|
453
|
+
these are not JSKIT exports. Its scheduler must prevent overlapping runs and
|
|
454
|
+
surface reconnect state. Merely saving configuration installs no scheduled
|
|
455
|
+
job. Neither the provider nor this composition implements application login.
|
|
456
|
+
Twitch requires an application-specific registration: do not reuse one editor
|
|
457
|
+
client ID across independent generated apps. Register the application's own callback URL. The runtime handles array/string token
|
|
458
|
+
scopes and Client-ID headers; do not duplicate those details in app scaffolding.
|
package/docs/wave.md
CHANGED
|
@@ -268,21 +268,10 @@ application must follow its approved usage and account limits.
|
|
|
268
268
|
Changed client IDs or callbacks require reconnecting; changing the secret
|
|
269
269
|
binding can support ordinary provider-side secret rotation.
|
|
270
270
|
|
|
271
|
-
##
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
queries, input boundaries, scopes, owner policy, callback changes, serialized
|
|
276
|
-
refresh, permission/subscription failures, partial GraphQL errors, cancellation
|
|
277
|
-
and malformed success responses. The guide's JSON is parsed by the same schema.
|
|
278
|
-
The public editor cases passed at desktop and phone widths, checking all ten
|
|
279
|
-
setup steps, configuration/Env references and file persistence, owner-mode
|
|
280
|
-
changes, consent cancellation, reconnect and local disconnect.
|
|
281
|
-
|
|
282
|
-
These tests use no live Wave account, consent, invoices or registration. They do
|
|
283
|
-
not generate a sample application. Live success, provider PKCE enforcement,
|
|
284
|
-
partner approval and actual quota allocation remain unproven. Full-access
|
|
285
|
-
tokens, webhooks and provider-side revocation are not implemented. The implemented mutations are described below.
|
|
271
|
+
## Limitations
|
|
272
|
+
|
|
273
|
+
Full-access tokens, webhooks and provider-side revocation are not implemented.
|
|
274
|
+
The implemented mutations are described below.
|
|
286
275
|
|
|
287
276
|
## Estimates in the application
|
|
288
277
|
|
|
@@ -438,3 +427,35 @@ view. This hides an account from the default view, rather than deleting it.
|
|
|
438
427
|
Native frameworks use the same ownership lookup and `AccountArchiveInput`, whose
|
|
439
428
|
output provides `didSucceed` and `inputErrors`, without an account object. See
|
|
440
429
|
[Wave API reference](https://developer.waveapps.com/hc/en-us/articles/360019968212-API-Reference).
|
|
430
|
+
|
|
431
|
+
## OAuth pattern composition: Wave
|
|
432
|
+
|
|
433
|
+
Import `waveProvider` from `@jskit-ai/connectors-catalog/server/wave` into the
|
|
434
|
+
same provider array and use this guide for portable JSON and registration
|
|
435
|
+
setup. Keep `client_secret_post` authentication. Grant `user:read` for verification,
|
|
436
|
+
`business:read` for selection, and the matching customer/invoice read permission.
|
|
437
|
+
|
|
438
|
+
```js
|
|
439
|
+
const businesses = await connections.invoke({
|
|
440
|
+
context, integrationId: "wave", operation: "businesses.list",
|
|
441
|
+
input: { page: 1, pageSize: 20 }
|
|
442
|
+
});
|
|
443
|
+
const businessId = await choosePermittedBusiness(businesses.data.businesses, context);
|
|
444
|
+
const customers = await connections.invoke({
|
|
445
|
+
context, integrationId: "wave", operation: "customers.list",
|
|
446
|
+
input: { businessId, page: 1, pageSize: 20 }
|
|
447
|
+
});
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
`choosePermittedBusiness` is the host's selection and authorization function,
|
|
451
|
+
not a JSKIT export. Do not default to the first business or trust an incoming
|
|
452
|
+
business ID without policy checks. Preserve `pageInfo` and nullable edge nodes;
|
|
453
|
+
advance only when the caller requests another page. `invoice:write` alone cannot
|
|
454
|
+
authorize invoice reads. Results with GraphQL errors are rejected even if they
|
|
455
|
+
contain partial data. The library sends fixed queries and owns token refresh,
|
|
456
|
+
including Wave's original redirect URI, under encrypted file storage.
|
|
457
|
+
|
|
458
|
+
Wave OAuth business access requires Pro or Advisor, and use for other customers
|
|
459
|
+
requires provider approval. This is a data connection, not login. The application must implement and register an actual
|
|
460
|
+
served callback. Do not replace OAuth with a personal full-access token for
|
|
461
|
+
customer applications or copy protocol logic into generated routes.
|
package/docs/wix.md
CHANGED
|
@@ -100,7 +100,7 @@ provider key. API failures are sanitized; 401 requires reconnect, 403 indicates
|
|
|
100
100
|
missing access, and 429 reports a rate limit without retrying. Malformed result
|
|
101
101
|
fields and input values fail explicitly. Cancellation preserves a verified grant.
|
|
102
102
|
|
|
103
|
-
##
|
|
103
|
+
## Editors, hosting and automation
|
|
104
104
|
|
|
105
105
|
For this account-key flow, the universal OAuth callback is **not applicable**.
|
|
106
106
|
Customer VPS and custom-domain URLs do not enter the provider authentication
|
|
@@ -146,22 +146,9 @@ The runtime's trusted host policy must authorize the actual operation and its
|
|
|
146
146
|
business object. A shared site key is not proof that an app user owns a booking,
|
|
147
147
|
contact or order. Authorize that relationship before returning data or writing.
|
|
148
148
|
The generated app owns its customer screens, checkout and domain-specific rules.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
##
|
|
152
|
-
|
|
153
|
-
The controlled provider suite currently passes **40/40**, including identity
|
|
154
|
-
headers, input validation, pagination, exact revisions, write bodies, ownership,
|
|
155
|
-
key rotation and failure handling. These use fixtures, not a live Wix account.
|
|
156
|
-
The expanded and compact editor cases each pass with the current Site ID,
|
|
157
|
-
Selectable Site IDs and setup guidance: invalid input, text configuration save and
|
|
158
|
-
reload, missing credentials, connect, reconnect and local disconnect. These browser
|
|
159
|
-
cases use controlled connection responses. A freshly packed catalog installed
|
|
160
|
-
offline in a standalone consumer passed the same 29 controlled cases through
|
|
161
|
-
public package exports, including this guide’s configuration. This proves the
|
|
162
|
-
implemented operations and configuration/lifecycle UI, not the missing workflows
|
|
163
|
-
below or live provider behavior.
|
|
164
|
-
No generated application, payment, real booking or release has been exercised.
|
|
149
|
+
The editor owns editing this project configuration; no Wix gateway is added.
|
|
150
|
+
|
|
151
|
+
## Not implemented
|
|
165
152
|
|
|
166
153
|
The following remain outside the implemented operations and need explicit scope
|
|
167
154
|
reconciliation before acceptance: scheduled session management,
|
package/docs/wiz.md
CHANGED
|
@@ -134,13 +134,13 @@ There are no automatic retries. A new scan is a separate explicit operation.
|
|
|
134
134
|
## Application ownership and custom domains
|
|
135
135
|
|
|
136
136
|
**Provider callback: not applicable.** Service-account CLI authentication has no
|
|
137
|
-
browser redirect. Do not register
|
|
138
|
-
|
|
137
|
+
browser redirect. Do not register a hosting platform's shared callback or each
|
|
138
|
+
customer's own domain as a Wiz callback for this mode.
|
|
139
139
|
|
|
140
140
|
The application or scanning workflow owner supplies an authorized Wiz service
|
|
141
141
|
account scoped to the intended Wiz projects. Store its credentials in private
|
|
142
|
-
worker Env and enforce permission to scan the selected source directory.
|
|
143
|
-
|
|
142
|
+
worker Env and enforce permission to scan the selected source directory. No
|
|
143
|
+
editor or hosting platform supplies a universal scanning credential. The runtime
|
|
144
144
|
rejects managed registration assignments; there is no hosted universal scan
|
|
145
145
|
endpoint.
|
|
146
146
|
|