@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/google-ads.md
CHANGED
|
@@ -64,7 +64,7 @@ reader. The editor no longer asks for a token or pilot selection.
|
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
Replace the placeholders with project-owned resources. Secrets and grants stay
|
|
67
|
-
with the application. CLI
|
|
67
|
+
with the application. A CLI and every editor use the same configuration;
|
|
68
68
|
Laravel implements it with its own framework. Host/domain changes require the
|
|
69
69
|
provider registration and callback Env value to match the application's new
|
|
70
70
|
callback. Keep persistent grants and application identity when moving hosts.
|
|
@@ -115,16 +115,6 @@ provider error bodies and query echoes are not exposed. Requests respect abort
|
|
|
115
115
|
signals/timeouts and are not replayed automatically. Disconnect removes local
|
|
116
116
|
access; Google account revocation is a separate owner action.
|
|
117
117
|
|
|
118
|
-
## Verification boundary
|
|
119
|
-
|
|
120
|
-
Focused tests use controlled OAuth and Ads HTTP responses with the real shared
|
|
121
|
-
validator and encrypted file store. They cover Cloud-project configuration, OAuth/header
|
|
122
|
-
separation, query/page bounds, int64 preservation, empty/malformed results,
|
|
123
|
-
restart, concurrent refresh/rotation, ownership, policy, denied consent, errors
|
|
124
|
-
and interruption. No live accounts, Cloud-project approvals, reports,
|
|
125
|
-
campaign actions or generated applications are used. Provider approval and live
|
|
126
|
-
consent remain separate acceptance work.
|
|
127
|
-
|
|
128
118
|
## Existing-account Search campaign service
|
|
129
119
|
|
|
130
120
|
`@jskit-ai/connectors-catalog/server/google-ads-search` exports
|
|
@@ -154,3 +144,55 @@ live coding-assistant tool attachment. For example, asking chat to create a new
|
|
|
154
144
|
Ads account and autonomously optimize a PMax campaign remains unsupported. The
|
|
155
145
|
current editor command uses development Env and may affect a real Ads account.
|
|
156
146
|
Fixtures prove composition and request/approval behavior, not Google live approval.
|
|
147
|
+
|
|
148
|
+
## OAuth pattern composition: Google Ads
|
|
149
|
+
|
|
150
|
+
Use `googleAdsProvider` from `@jskit-ai/connectors-catalog/server/google-ads`
|
|
151
|
+
with the same file service and owner policy. Start from the actual portable JSON
|
|
152
|
+
in this guide. Setup needs a Web OAuth client in a Cloud project
|
|
153
|
+
with the required Google Ads API access level. Developer tokens were retired
|
|
154
|
+
on September 9, 2026; do not add a developer-token reference or pilot selector.
|
|
155
|
+
The app owns its registration and grants. This does not establish app login
|
|
156
|
+
or make arbitrary reports public.
|
|
157
|
+
|
|
158
|
+
`customers.listAccessible` verifies the grant and returns directly accessible
|
|
159
|
+
customer resource names. It does not list every manager descendant. Use
|
|
160
|
+
`customers.listClients` for an authorized manager's hierarchy metadata, keeping
|
|
161
|
+
the operation customer ID separate from optional `settings.loginCustomerId`.
|
|
162
|
+
For a useful campaign report, the existing server action can call:
|
|
163
|
+
|
|
164
|
+
```js
|
|
165
|
+
const report = await connections.invoke({
|
|
166
|
+
context: authenticatedContext,
|
|
167
|
+
integrationId: "ads",
|
|
168
|
+
operation: "reports.search",
|
|
169
|
+
input: {
|
|
170
|
+
customerId: authorizedCustomerId,
|
|
171
|
+
query: "SELECT campaign.id, campaign.name, metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_7_DAYS LIMIT 100"
|
|
172
|
+
},
|
|
173
|
+
signal
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Derive `authorizedCustomerId` from the app's existing account-access policy.
|
|
178
|
+
Authorize fields, date ranges and filters too; do not send arbitrary browser/AI
|
|
179
|
+
GAQL to a public server route. The library passes the operation and input
|
|
180
|
+
snapshot to the host policy before credentials or API requests. Google's
|
|
181
|
+
`adwords` permission may allow writes, despite this operation set's reads.
|
|
182
|
+
|
|
183
|
+
Render `report.results ?? []`; retain integer strings and cost micros without
|
|
184
|
+
rounding. Keep `nextPageToken` with the exact query/customer/owner for an explicit
|
|
185
|
+
next call. No automatic page loop or SearchStream endpoint is installed. API
|
|
186
|
+
errors can reflect developer approval, account relationships or quotas even
|
|
187
|
+
after valid OAuth consent. Map `connector_api_access_invalid` to API setup,
|
|
188
|
+
`connector_scope_missing` and `connector_reconnect_required` to consent recovery,
|
|
189
|
+
and `connector_rate_limited` to the app's bounded usage policy. Never solve API
|
|
190
|
+
approval by repeatedly asking the user to reconnect.
|
|
191
|
+
|
|
192
|
+
The provider guide includes console clicks, API/CLI automation feasibility,
|
|
193
|
+
application-owned callback configuration and account quota boundaries.
|
|
194
|
+
Different client IDs do not automatically separate developer-token capacity;
|
|
195
|
+
approved pilot projects can have usage caps while organization/account limits
|
|
196
|
+
still apply. The CLI uses exactly this library and file configuration without
|
|
197
|
+
Vibe64. No generated app or live provider operation is required to validate the
|
|
198
|
+
configuration, run the focused provider tests or read the [OAuth pattern](../patterns/oauth-connection/PATTERN.md).
|
package/docs/google-analytics.md
CHANGED
|
@@ -55,8 +55,8 @@ The shared field component and CLI validator use this same format. The public ID
|
|
|
55
55
|
framework can expose it through its normal public build configuration. No
|
|
56
56
|
secret-resolution service is needed.
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
The editor owns the configuration experience for the selected project. Saving
|
|
59
|
+
must report **Configured**, with
|
|
60
60
|
an explanation that application wiring and event delivery are separate. It must
|
|
61
61
|
not start OAuth, call a connection-status command, send a test tracking event,
|
|
62
62
|
or show an account as verified. Changing or removing the setting is an ordinary
|
|
@@ -132,16 +132,10 @@ editor VM URL does not substitute for either. These API keys are unrelated to
|
|
|
132
132
|
Google login or OAuth callback registration.
|
|
133
133
|
[Client/server restrictions](https://developers.google.com/maps/api-security-best-practices).
|
|
134
134
|
|
|
135
|
-
##
|
|
136
|
-
|
|
137
|
-
Six fixture tests cover explicit verification input, file restart, rotation,
|
|
138
|
-
owner isolation, separate browser references, input bounds, empty responses,
|
|
139
|
-
HTTP-200 errors and transport failures. Editor browser tests cover both
|
|
140
|
-
reference fields, invalid values, reload and optional-field removal. The runtime
|
|
141
|
-
does not automatically retain geocoding results; applications own display and
|
|
142
|
-
retention behavior under the provider's requirements. No live provider use or
|
|
143
|
-
sample-app generation is part of this evidence.
|
|
135
|
+
## Result retention
|
|
144
136
|
|
|
137
|
+
The runtime does not automatically retain geocoding results; applications own
|
|
138
|
+
display and retention behavior under the provider's requirements.
|
|
145
139
|
|
|
146
140
|
## Places, routes and browser composition
|
|
147
141
|
|
package/docs/granola.md
CHANGED
|
@@ -108,7 +108,7 @@ state. Revoke access separately in the personal or workspace API-key page using
|
|
|
108
108
|
**Revoke**, then its confirmation dialog. [Key management](https://docs.granola.ai/help-center/sharing/integrations/granola-api)
|
|
109
109
|
|
|
110
110
|
There is no provider OAuth application or universal callback URL for this API-key
|
|
111
|
-
mode.
|
|
111
|
+
mode. Hosting and custom-domain changes do not change API authentication.
|
|
112
112
|
Keep stable application/owner identity and runtime reference bindings.
|
|
113
113
|
|
|
114
114
|
The application owner supplies its own authorized key through private Env. Do
|
package/docs/hubspot.md
CHANGED
|
@@ -140,3 +140,28 @@ operations. Example: a booking app can create a linked deal and advance its stag
|
|
|
140
140
|
but it must supply the trigger and cannot import an entire CRM automatically.
|
|
141
141
|
Assistant tool attachment requires explicit host integration. Fixture success does not prove live CRM
|
|
142
142
|
installation, property availability, subscription features or generated-app use.
|
|
143
|
+
|
|
144
|
+
## OAuth pattern composition: HubSpot account connections
|
|
145
|
+
|
|
146
|
+
Import `hubspotProvider` from `@jskit-ai/connectors-catalog/server/hubspot`.
|
|
147
|
+
Use this guide registration instructions. Configure an own
|
|
148
|
+
registration with `clientId`, `clientSecretRef: "env:HUBSPOT_CLIENT_SECRET"`,
|
|
149
|
+
`callbackUrlRef: "env:HUBSPOT_CALLBACK_URL"` and
|
|
150
|
+
`tokenEndpointAuthMethod: "client_secret_post"`. Select scopes `oauth` and
|
|
151
|
+
`crm.objects.contacts.read`; the integration's authentication is
|
|
152
|
+
`{ "method": "oauth2", "registrationRef": "hubspot" }` when that registration
|
|
153
|
+
is named `hubspot`.
|
|
154
|
+
|
|
155
|
+
Use `beginAuthorization`, the existing application's callback route and
|
|
156
|
+
`completeAuthorization`, then `contacts.list` with optional `limit`, `after`
|
|
157
|
+
and `archived`. Verification reads contacts. The provider implements confidential
|
|
158
|
+
code exchange, scope-array normalization and refresh through HubSpot's current
|
|
159
|
+
token endpoint; do not build another token exchange or gateway.
|
|
160
|
+
|
|
161
|
+
For `per-user`, the application's authenticated identity owns each local grant.
|
|
162
|
+
HubSpot installations normally expose account-level CRM access; this mode does
|
|
163
|
+
not itself enforce HubSpot record ownership or implement application login.
|
|
164
|
+
For `shared`, only authorized app administrators can connect the shared account.
|
|
165
|
+
Use the [API-key pattern](../patterns/api-key-connection/PATTERN.md) instead for a static/private token, retaining the
|
|
166
|
+
`crm.objects.contacts.read` configuration permission. Disconnect is local;
|
|
167
|
+
provider installation removal is separate.
|
package/docs/klipy.md
CHANGED
|
@@ -111,19 +111,6 @@ Outbound reads need no OAuth callback, so VM subdomains and custom deployment
|
|
|
111
111
|
domains do not alter authentication. Record the intended application URL in
|
|
112
112
|
provider setup and satisfy its content/attribution agreement in the application.
|
|
113
113
|
|
|
114
|
-
## Focused evidence
|
|
115
|
-
|
|
116
|
-
Fixtures check trending verification, search encoding, pagination bounds,
|
|
117
|
-
locale/filter errors, unsuccessful envelopes, key rotation, private file-store
|
|
118
|
-
restart, owner isolation and provider failures. Core tests cover path encoding,
|
|
119
|
-
invalid destinations, ambiguous prefixes and error redaction. The editor test
|
|
120
|
-
checks the secret reference, setup link and reload persistence. No live key,
|
|
121
|
-
production approval, media use or generated sample application is exercised.
|
|
122
|
-
|
|
123
|
-
The official Partner Panel guide was rechecked on 2026-09-12. Expanded screen
|
|
124
|
-
steps cover Env handoff, connection verification, production approval and local
|
|
125
|
-
disconnect. Updated rendered review passed using simulated connection responses.
|
|
126
|
-
|
|
127
114
|
## Embedding and limits
|
|
128
115
|
|
|
129
116
|
The application supplies its own picker and native HTTP/runtime wiring in any
|
package/docs/lexware.md
CHANGED
|
@@ -95,14 +95,6 @@ provides an independent allowance. Apply usage limits in the application and
|
|
|
95
95
|
confirm provider capacity before claiming quota isolation.
|
|
96
96
|
[API rate limits](https://developers.lexware.io/docs/).
|
|
97
97
|
|
|
98
|
-
## Focused evidence
|
|
99
|
-
|
|
100
|
-
Simulated replies and real temporary file state verify authentication, restart,
|
|
101
|
-
rotation, ownership, disconnect, empty/full contact pages, role filters,
|
|
102
|
-
fractional/oversized input rejection and malformed/provider failures. The
|
|
103
|
-
editor check verifies reference-only storage and persistence after reload.
|
|
104
|
-
Live provider accounts, billing changes and sample-app generation are excluded.
|
|
105
|
-
|
|
106
98
|
## Accounting operations
|
|
107
99
|
|
|
108
100
|
`contacts.get`, `articles.get`, `invoices.get`, `vouchers.get` take a resource UUID.
|
package/docs/lightspeed.md
CHANGED
|
@@ -118,9 +118,10 @@ do not repeatedly retry the spent refresh token.
|
|
|
118
118
|
## Application ownership, callbacks and capacity
|
|
119
119
|
|
|
120
120
|
The application owner creates the provider registration and stores its secret
|
|
121
|
-
in the application's private Env.
|
|
122
|
-
|
|
123
|
-
references; the editor does not own the
|
|
121
|
+
in the application's private Env. Every editor and CLI uses this same
|
|
122
|
+
[ownership model](../../connectors-core/docs/online-setup.md): the configuration
|
|
123
|
+
file holds the client ID and Env references; the editor does not own the
|
|
124
|
+
application's grants.
|
|
124
125
|
|
|
125
126
|
Register the exact callback implemented by the application. For a hosted project,
|
|
126
127
|
start with its assigned application URL and append the implemented callback path.
|
|
@@ -191,3 +192,31 @@ gift-card/store-credit workflows, webhook receiver or automatic editor tool
|
|
|
191
192
|
attachment. Example: an app can report low stock and sales totals, but cannot
|
|
192
193
|
replenish a shelf or charge a customer through this adapter. Adding a write scope
|
|
193
194
|
does not implement a write operation. No live retailer or generated app was used.
|
|
195
|
+
|
|
196
|
+
## OAuth pattern composition: Lightspeed X-Series
|
|
197
|
+
|
|
198
|
+
Import `lightspeedProvider` from `@jskit-ai/connectors-catalog/server/lightspeed`
|
|
199
|
+
and give it to the existing connection service. Use the JSON and provider setup
|
|
200
|
+
in this guide. The store prefix is required and fixed before consent;
|
|
201
|
+
never route credentials using a callback-supplied domain. Keep `products:read`
|
|
202
|
+
for verification and pass `verificationInput: { page_size: 1 }` when starting it.
|
|
203
|
+
|
|
204
|
+
```js
|
|
205
|
+
const products = await connections.invoke({
|
|
206
|
+
context: authenticatedOwner, integrationId: "retail", operation: "products.list",
|
|
207
|
+
input: { page_size: 50, deleted: false }
|
|
208
|
+
});
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
`customers.list` and `outlets.list` use the same paging inputs with their own read
|
|
212
|
+
scopes. Request subsequent pages explicitly with version bounds. Preserve null
|
|
213
|
+
customer values and avoid assuming a full page means more records certainly exist.
|
|
214
|
+
The library pins the current API version, validates store-bound token responses,
|
|
215
|
+
and persists each rotated refresh token before reading data. It sends PKCE;
|
|
216
|
+
provider enforcement has not been proven with a live client. Do not add retries
|
|
217
|
+
around authorization codes, refresh or interrupted requests.
|
|
218
|
+
|
|
219
|
+
The host owns authenticated subjects, shared-store access, callback routes and
|
|
220
|
+
rendering. CLI and UI use the same configuration; no database is required for
|
|
221
|
+
editor configuration. Each application supplies its own registration and callback; app sign-in is a separate concern. Extra
|
|
222
|
+
scope selections do not create write operations or independent provider quotas.
|
package/docs/linear.md
CHANGED
|
@@ -99,13 +99,6 @@ permit writes at Linear. Discovery does not execute tools. Use `tools.list` to
|
|
|
99
99
|
obtain available schemas rather than maintaining a second catalogue here.
|
|
100
100
|
[Linear MCP authentication](https://linear.app/docs/mcp).
|
|
101
101
|
|
|
102
|
-
## Review evidence
|
|
103
|
-
|
|
104
|
-
The focused fixture tests cover OAuth authorization, cancellation/denial, replay,
|
|
105
|
-
refresh rotation after restart, app/user isolation, lost scopes, raw API-key
|
|
106
|
-
GraphQL authorization and Bearer MCP discovery. No real Linear account, issue,
|
|
107
|
-
consent or tool execution was used. Both credential modes passed a controlled public-editor browser review: configuration survives reload, Env links and provider guides resolve to the intended destinations, and simulated connection controls work. The 496px instruction captures were visually inspected; no live provider consent or fresh phone review is claimed.
|
|
108
|
-
|
|
109
102
|
## Approved project and issue workflows
|
|
110
103
|
|
|
111
104
|
The existing MCP transport can discover and invoke the provider's project/issue
|
|
@@ -134,3 +127,27 @@ assistant tool attachment. Example: an app can explicitly run an approved
|
|
|
134
127
|
issue update, but saving a Linear connection alone does not authorize assistant chat to update that issue. Provider permissions and available tools determine what
|
|
135
128
|
can run. Fixture workflows prove argument/result transport and local denial, not
|
|
136
129
|
actual Linear tool schemas or live execution.
|
|
130
|
+
|
|
131
|
+
## OAuth pattern composition: Linear account connections
|
|
132
|
+
|
|
133
|
+
Import `linearProvider` from `@jskit-ai/connectors-catalog/server/linear` and
|
|
134
|
+
follow this guide to create the project's own registration. Store its
|
|
135
|
+
Client ID in configuration, Client Secret in `env:LINEAR_CLIENT_SECRET`, and
|
|
136
|
+
callback in `env:LINEAR_CALLBACK_URL`; select `client_secret_post`.
|
|
137
|
+
Use authentication `{ "method": "oauth2", "registrationRef": "linear" }`
|
|
138
|
+
when the registration is named `linear`, and keep `scopes: ["read"]`.
|
|
139
|
+
|
|
140
|
+
The application calls `beginAuthorization`, handles its registered callback with
|
|
141
|
+
`completeAuthorization`, then invokes `profile.read` or `issues.list` (optional
|
|
142
|
+
`first` and `after`). The provider owns S256, scope delimiter normalization and
|
|
143
|
+
rotating refresh. The caller owns authorization and subject identity. Shared
|
|
144
|
+
connections belong to the application's authorized administrator; per-user
|
|
145
|
+
connections belong to the signed-in application user. Connecting Linear does not
|
|
146
|
+
implement application login. This flow acts as the consenting Linear user.
|
|
147
|
+
|
|
148
|
+
The same grant supports `tools.list` and `tools.call` against Linear's fixed MCP
|
|
149
|
+
endpoint. Authorize each tool and its arguments before invocation; tools can
|
|
150
|
+
write if the provider permissions allow it. No second MCP registration or Vibe64
|
|
151
|
+
gateway is needed. For personal keys use the [API-key pattern](../patterns/api-key-connection/PATTERN.md), keep the `read`
|
|
152
|
+
configuration scope and restrict the actual key in Linear. Disconnect deletes
|
|
153
|
+
the local grant; provider revocation remains a separate account action.
|
package/docs/linkedin.md
CHANGED
|
@@ -155,20 +155,7 @@ Separate client IDs do not establish independent quotas or permission to serve
|
|
|
155
155
|
unrelated applications. Register and obtain product approval for the actual app.
|
|
156
156
|
Managed assignments are invalid configuration in this runtime.
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
## Credential guidance review (2026-09-12)
|
|
160
|
-
|
|
161
|
-
The inline setup steps now name the developer portal, product approval, exact
|
|
162
|
-
callback registration and project Env handoff before connection. Current OIDC,
|
|
163
|
-
authorization-code and refresh documentation were checked. The existing adapter
|
|
164
|
-
was retained; no provider-login or publishing implementation was added. Ten
|
|
165
|
-
focused runtime fixtures pass, including expiry without refresh, approved
|
|
166
|
-
refresh, cancellation/replay, encryption, missing permissions and host isolation.
|
|
167
|
-
The cancellation test now expects the callback URL exposed by connection status,
|
|
168
|
-
while retaining the complete assertion that declined replacement consent keeps
|
|
169
|
-
the previous grant. Rendered guidance passed the controlled public-editor journey: saved Client ID/callback, Env links, reload, simulated consent/cancellation/reconnect and disconnect. All six steps were visually reviewed at 496px width. No live provider consent or fresh phone review is claimed.
|
|
170
|
-
|
|
171
|
-
## Text publishing acceptance — 2026-09-13
|
|
158
|
+
## Text publishing
|
|
172
159
|
|
|
173
160
|
Use `posts.create` with `{ text, visibility: "PUBLIC" }` or `"CONNECTIONS"` after
|
|
174
161
|
app authorization of the exact message and audience. Text is locally limited to
|
|
@@ -192,5 +179,18 @@ request; a timeout does not prove the post was never created.
|
|
|
192
179
|
|
|
193
180
|
**LIMITATIONS:** Text only. No images/video, organization posts, scheduling, post
|
|
194
181
|
editing/deletion, analytics or editor-assistant attachment. Example: publish an
|
|
195
|
-
approved announcement, but not a photo campaign.
|
|
196
|
-
|
|
182
|
+
approved announcement, but not a photo campaign.
|
|
183
|
+
|
|
184
|
+
## OAuth pattern composition: LinkedIn
|
|
185
|
+
|
|
186
|
+
Use `linkedinProvider` from `@jskit-ai/connectors-catalog/server/linkedin` and
|
|
187
|
+
this guide. Both `openid` and `profile` are required; request `email`
|
|
188
|
+
only when needed. `profile.read` accepts no input and reads the connected
|
|
189
|
+
member's userinfo. Optional email fields may be absent. The fragment discards
|
|
190
|
+
ID tokens and does not implement app login or member posting; preserving
|
|
191
|
+
`w_member_social` in configuration does not provide a publishing operation.
|
|
192
|
+
Ordinary expiry requires reconnect unless LinkedIn approved programmatic
|
|
193
|
+
refresh. Keep the confidential client secret on the backend, including when
|
|
194
|
+
composing a CLI; the separately enabled native flow is not implemented.
|
|
195
|
+
Implement and register the application's callback using its assigned app URL
|
|
196
|
+
or explicit host override. Operator setup belongs to the application developer.
|
package/docs/logo-dev.md
CHANGED
|
@@ -110,32 +110,14 @@ domain matters only if it itself loads the images. That differs from an OAuth
|
|
|
110
110
|
redirect allowlist. Changing application domains can require provider-side
|
|
111
111
|
restriction updates even though the portable reference is unchanged.
|
|
112
112
|
|
|
113
|
-
##
|
|
113
|
+
## Configuration-only contract
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
and a simulated missing-image failure. No live provider use or generated sample
|
|
120
|
-
application is needed.
|
|
115
|
+
Logo.dev sets `configurationOnly`: an editor shows no account-connect controls,
|
|
116
|
+
and setup commands are refused before Env preparation or application execution.
|
|
117
|
+
Constructing an image URL never records Connected; image delivery is observed in
|
|
118
|
+
the browser.
|
|
121
119
|
|
|
122
|
-
|
|
123
|
-
## Credential guidance review (2026-09-12)
|
|
124
|
-
|
|
125
|
-
Current provider key and image documentation were checked against the captured
|
|
126
|
-
publishable-key field. The inline instructions now give the direct dashboard
|
|
127
|
-
URL, exact reference and Env handoff, public/private distinction, domain patterns,
|
|
128
|
-
referrer behavior and support-assisted rotation. The existing image library and
|
|
129
|
-
public-image composition pattern remain the owners of URL generation and wiring.
|
|
130
|
-
The first rendered review exposed an account-connect button because the editor
|
|
131
|
-
consumes configurationOnly metadata rather than runtimeKind. Logo.dev now sets
|
|
132
|
-
that existing flag: the editor omits account controls and the server refuses
|
|
133
|
-
setup commands before Env preparation or application execution. Two targeted
|
|
134
|
-
public-editor tests cover this rule for Logo.dev and Google Analytics.
|
|
135
|
-
All four focused library tests passed, including private-key rejection, fixed-origin URL
|
|
136
|
-
construction, portable configuration and selective reference resolution. Rendered guidance and simulated image delivery passed: the actual editor persists the reference through reload, links to Env and the provider guide, and offers no account-connect controls. Browser image load/error and origin-referrer behavior were checked with a simulated CDN. All five steps were visually reviewed at 496px width; no live provider or generated-app claim.
|
|
137
|
-
|
|
138
|
-
## Lookup coverage — 2026-09-13
|
|
120
|
+
## Lookup inputs
|
|
139
121
|
|
|
140
122
|
Supply exactly one of `domain`, `ticker` or `email` to the same URL helper.
|
|
141
123
|
`{ ticker: "SHEL.L" }` uses the provider's ticker endpoint with an exchange suffix;
|
|
@@ -143,7 +125,7 @@ Supply exactly one of `domain`, `ticker` or `email` to the same URL helper.
|
|
|
143
125
|
lookup. The personal part of the email never enters the URL. These are ordinary
|
|
144
126
|
per-image application inputs, not project credential settings. The same source
|
|
145
127
|
pattern resolves the publishable key; other frameworks can construct equivalent
|
|
146
|
-
URLs without a Node runtime
|
|
128
|
+
URLs without a Node runtime.
|
|
147
129
|
[Ticker endpoint](https://www.logo.dev/docs/logo-images/ticker).
|
|
148
130
|
|
|
149
131
|
**LIMITATIONS:** No private brand search/enrichment, crypto or ISIN lookup, avatar
|
package/docs/mailgun.md
CHANGED
|
@@ -41,8 +41,7 @@ the number of received items to retrieve another page.
|
|
|
41
41
|
Use the [API-key pattern](../patterns/api-key-connection/PATTERN.md) with the file
|
|
42
42
|
store. Application code can use the operations below with the same configured connection. Local disconnect does not revoke the account key. Replace
|
|
43
43
|
the Env value when rotating credentials, and delete obsolete keys in Mailgun.
|
|
44
|
-
|
|
45
|
-
file restart and rejected responses without accessing a real mailbox or account.
|
|
44
|
+
Verification is a domain-list read; it sends no email and changes no DNS.
|
|
46
45
|
|
|
47
46
|
## Automation and application ownership
|
|
48
47
|
|
|
@@ -57,18 +56,6 @@ Each application supplies credentials for its intended Mailgun account. Keys
|
|
|
57
56
|
within one account may share capacity and billing. The application operator
|
|
58
57
|
owns account selection and budgets; key names alone do not isolate quotas.
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
## Credential guidance review (2026-09-12)
|
|
62
|
-
|
|
63
|
-
Current provider key-role, credential-type and domain-list documentation were
|
|
64
|
-
checked against the captured private key and US/EU fields. Inline setup now
|
|
65
|
-
explains the exact dashboard flow, admin requirement, Analyst where available,
|
|
66
|
-
one-time secret display, account-key distinction, region and named Env handoff.
|
|
67
|
-
Verification remains a domain-list read; it sends no email and changes no DNS.
|
|
68
|
-
Three focused test cases passed (1.15s), including the shared regional-destination
|
|
69
|
-
regression: changing region requires verification before credentials reach the
|
|
70
|
-
new allowed origin. No runtime change was needed. The controlled browser review passed: the EU region and MAILGUN_API_KEY reference persist after reload, Env and provider guide links are present, and simulated connect/verify/disconnect work. All six steps were visually inspected at 496px width. No live account, email sending or generated application was exercised.
|
|
71
|
-
|
|
72
59
|
## Sending and domain setup
|
|
73
60
|
|
|
74
61
|
1. In Mailgun, open **Send → Sending → Domains → Add new domain**. Enter a
|
package/docs/mapbox.md
CHANGED
|
@@ -123,14 +123,6 @@ that loads the map. Mapbox does not accept wildcard characters in these
|
|
|
123
123
|
restrictions; consult its matching rules when adding subdomains or custom
|
|
124
124
|
domains. No OAuth callback is involved in these token operations.
|
|
125
125
|
|
|
126
|
-
## Focused evidence
|
|
127
|
-
|
|
128
|
-
Six fixture tests cover file restart, rotation, ownership, optional references,
|
|
129
|
-
HTTP-200 validity failures, coordinates, query bounds, attribution, permanent
|
|
130
|
-
intent and permission/quota failures. The editor test covers both reference
|
|
131
|
-
fields, invalid raw values, save/reload and removing the optional value.
|
|
132
|
-
No live Mapbox account, geocoding use or generated application is exercised.
|
|
133
|
-
|
|
134
126
|
## Browser-only maps and native SDK composition
|
|
135
127
|
|
|
136
128
|
Select **Browser maps only** for `settings.usage: "browser"`, authentication
|
package/docs/microsoft-fabric.md
CHANGED
|
@@ -199,9 +199,10 @@ the runtime does not perform them automatically or request admin rights.
|
|
|
199
199
|
## Application ownership, callbacks and capacity
|
|
200
200
|
|
|
201
201
|
The application owner creates the provider registration and stores its secret
|
|
202
|
-
in the application's private Env.
|
|
203
|
-
|
|
204
|
-
references; the editor does not own the
|
|
202
|
+
in the application's private Env. Every editor and CLI uses this same
|
|
203
|
+
[ownership model](../../connectors-core/docs/online-setup.md): the configuration
|
|
204
|
+
file holds the client ID and Env references; the editor does not own the
|
|
205
|
+
application's grants.
|
|
205
206
|
|
|
206
207
|
Register the exact callback implemented by the application. For a hosted project,
|
|
207
208
|
start with its assigned application URL and append the implemented callback path.
|
|
@@ -221,16 +222,6 @@ still requires the relevant approval and configuration.
|
|
|
221
222
|
Separate registrations support different credentials and policies. They do not
|
|
222
223
|
partition a customer's shared Fabric capacity or guarantee separate quotas.
|
|
223
224
|
|
|
224
|
-
## Verification boundary
|
|
225
|
-
|
|
226
|
-
Local automated tests use controlled HTTP responses and encrypted temporary files.
|
|
227
|
-
They cover both grants, endpoint/tenant binding, variables, partial errors,
|
|
228
|
-
renewal, authorization, malformed responses, cancellation and configuration.
|
|
229
|
-
They create no Entra applications, service principals, Fabric resources or sample
|
|
230
|
-
apps and execute no live documents. Real tenant policy, consent, capacity, API
|
|
231
|
-
endpoint reachability, root-type verification and customer schemas remain live
|
|
232
|
-
acceptance checks requiring the owner's credentials.
|
|
233
|
-
|
|
234
225
|
## Editor credential handoff
|
|
235
226
|
|
|
236
227
|
Save the Application ID, tenant GUID, endpoint and reference fields first. The
|
|
@@ -247,3 +238,49 @@ connections inside the application. Saving alone grants neither API nor source
|
|
|
247
238
|
access. Both methods use app-owned credentials and persistent grants.
|
|
248
239
|
|
|
249
240
|
**LIMITATIONS (acceptance review):** No automatic table browser, schema-specific client, subscriptions, automatic pagination or automatic assistant tool attachment. Example: the app can execute an inventory query using its real schema; this does not provide an inventory dashboard. Both authentication modes and operation/error handling have fixture proof, not live Fabric resource proof.
|
|
241
|
+
|
|
242
|
+
## OAuth pattern composition: Microsoft Fabric GraphQL
|
|
243
|
+
|
|
244
|
+
Import `microsoftFabricProvider` from
|
|
245
|
+
`@jskit-ai/connectors-catalog/server/microsoft-fabric`. Read the package's
|
|
246
|
+
this guide before wiring it. Use its portable configuration with
|
|
247
|
+
an exact directory GUID, Application (client) ID, secret reference and the
|
|
248
|
+
existing GraphQL API endpoint. Do not reuse the ordinary Microsoft Graph
|
|
249
|
+
providers or their permissions: Fabric uses a different resource.
|
|
250
|
+
|
|
251
|
+
User consent uses `authorization_code`, the confidential `client_secret_post`
|
|
252
|
+
method, a callback reference, delegated
|
|
253
|
+
`https://analysis.windows.net/powerbi/api/GraphQLApi.Execute.All` and optional
|
|
254
|
+
`offline_access`. Service accounts use `client_credentials`, the same client
|
|
255
|
+
authentication method, and `https://api.fabric.microsoft.com/.default`. They
|
|
256
|
+
have no callback, user refresh token or per-user ownership. Switching grants
|
|
257
|
+
in the shared UI removes incompatible scopes; choose the new permission before
|
|
258
|
+
saving. The CLI parser enforces the same contract.
|
|
259
|
+
|
|
260
|
+
Reuse `createConnectionService` or `ConnectorsFeature`, the file connection store
|
|
261
|
+
and existing authorization/reference resolver. Call `connectClientCredentials`
|
|
262
|
+
or `connectors.verifyClientCredentials` for a service account; use the ordinary
|
|
263
|
+
authorization start/callback methods for user consent. The library owns token
|
|
264
|
+
exchange, renewal, locking, scope validation and encrypted storage. The app owns
|
|
265
|
+
the authenticated owner mapping and its allowed GraphQL documents.
|
|
266
|
+
|
|
267
|
+
Verification runs `connection.check`, a fixed root `__typename` query. It does
|
|
268
|
+
not establish access to every table. `schema.types` uses explicit introspection,
|
|
269
|
+
which a Fabric workspace administrator must enable; an exported SDL is an
|
|
270
|
+
alternative for authoring. `graphql.execute` accepts a document, optional JSON
|
|
271
|
+
variables and an operation name and returns one response. It can execute writes.
|
|
272
|
+
Keep documents in app server code, validate the permitted variables, and use
|
|
273
|
+
the shared authorization callback to restrict each operation. Do not present
|
|
274
|
+
this as a read-only proxy or accept arbitrary documents from app users. Request
|
|
275
|
+
pagination in the app's chosen document; no automatic traversal is implemented.
|
|
276
|
+
|
|
277
|
+
GraphQL errors, including partial successes, fail without exposing provider
|
|
278
|
+
messages. A failed mutation may have changed data; the runtime does not replay
|
|
279
|
+
it. Cancellation is local interruption, not proof of remote rollback. Token
|
|
280
|
+
renewal persists before the document executes, including when that execution
|
|
281
|
+
fails. Changing tenant, API endpoint, client or grant requires reconnecting.
|
|
282
|
+
|
|
283
|
+
User consent returns to the application's own implemented and registered callback.
|
|
284
|
+
Service access has no callback. Entra registrations, tenant enablement, API
|
|
285
|
+
permissions and source access remain administrator-owned provisioning. Distinct registration names do not isolate Fabric capacity. The application
|
|
286
|
+
owns login separately and keeps its client secret in private Env.
|
package/docs/microsoft-oauth.md
CHANGED
|
@@ -141,3 +141,36 @@ Rotate expiring registration secrets in Env before removing old credentials.
|
|
|
141
141
|
Do not log token exchange bodies. Tests cover code/state consumption, PKCE,
|
|
142
142
|
permission failures, request boundaries, encrypted file restart and refresh
|
|
143
143
|
rotation for all eight providers.
|
|
144
|
+
|
|
145
|
+
## OAuth pattern composition: Microsoft document
|
|
146
|
+
|
|
147
|
+
Import `microsoftWordProvider` or `microsoftPowerPointProvider` from the matching
|
|
148
|
+
`@jskit-ai/connectors-catalog/server/microsoft-word` or
|
|
149
|
+
`@jskit-ai/connectors-catalog/server/microsoft-powerpoint` export. Use that provider
|
|
150
|
+
in the [OAuth pattern](../patterns/oauth-connection/PATTERN.md) composition and the [Word](microsoft-word.md) or [PowerPoint](microsoft-powerpoint.md) guide's JSON. A `files` slot requests
|
|
151
|
+
`Files.Read` and, for refresh capability, `offline_access`. Set `settings.tenantId`
|
|
152
|
+
to an allowed audience or directory GUID matching the registration. The shared
|
|
153
|
+
library uses it for authorization, token exchange and refresh; changing the
|
|
154
|
+
tenant requires reconnecting. Never build token URLs from unvalidated user input.
|
|
155
|
+
|
|
156
|
+
After consent and verification, the host can call the same service:
|
|
157
|
+
|
|
158
|
+
```js
|
|
159
|
+
const page = await connections.invoke({
|
|
160
|
+
context, integrationId: "files", operation: "items.list",
|
|
161
|
+
input: { folderId, pageSize: 25, nextLink }
|
|
162
|
+
});
|
|
163
|
+
const file = await connections.invoke({
|
|
164
|
+
context, integrationId: "files", operation: "items.get", input: { itemId }
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
The host supplies authenticated `context`, an optional `folderId`/`nextLink`
|
|
169
|
+
and the chosen `itemId`. Pass the original folder ID with every continuation.
|
|
170
|
+
Keep `page["@odata.nextLink"]` even if `page.value` is empty: the adapter filters
|
|
171
|
+
an upstream page by file extension, so the next page can contain matching files.
|
|
172
|
+
Display folder and file metadata through the app's existing UI. The returned
|
|
173
|
+
`file` is metadata, not document contents; returned web URLs do not authorize
|
|
174
|
+
additional downloads. These adapters implement no document editing, recursive
|
|
175
|
+
crawl or app login. Leave paging and named-operation HTTP ownership in JSKIT;
|
|
176
|
+
the app owns its file selection, presentation and access policy.
|
|
@@ -91,15 +91,6 @@ See the [callback guide](../../connectors-core/docs/oauth-callbacks.md) for doma
|
|
|
91
91
|
changes and reconnect behavior. Keep the selected Microsoft tenant/audience
|
|
92
92
|
consistent with the provider registration.
|
|
93
93
|
|
|
94
|
-
## Evidence and limits
|
|
95
|
-
|
|
96
|
-
Focused fixtures cover consent, cancellation, encrypted restart, refresh,
|
|
97
|
-
reduced permissions, owner isolation, tenant changes, folder paging, empty
|
|
98
|
-
filtered pages, metadata validation and controlled provider failures. Provider
|
|
99
|
-
HTTP is simulated. No live account, provider registration or generated app is
|
|
100
|
-
used. Provider-console administration and live account acceptance remain
|
|
101
|
-
outside this fixture evidence.
|
|
102
|
-
|
|
103
94
|
## Editor credential handoff
|
|
104
95
|
|
|
105
96
|
The inline guide supplies Entra registration, account audience, Web callback,
|
|
@@ -110,10 +101,8 @@ delegated permissions, secret Value and expiry steps. Save
|
|
|
110
101
|
the prepared application runtime. Per-user connections belong to individual
|
|
111
102
|
users inside that application. No Vibe64 gateway or shared registration is used.
|
|
112
103
|
|
|
113
|
-
##
|
|
104
|
+
## Scope and limitations
|
|
114
105
|
|
|
115
106
|
Delegated project-owned OAuth browses default-drive folders and PowerPoint candidate filenames and fetches selected file metadata, with bounded paging, tenant/audience configuration and refreshed private grants.
|
|
116
107
|
|
|
117
|
-
No slide/presentation content reading, creation/editing, upload/download, conversion, macros, sharing, recursive search, arbitrary drive/site selection or file format validation. Filename extension filtering is not content inspection; filtered empty pages can still have a continuation. No app-only/client-credentials or device-code grant, application login or automatic remote consent revocation. The app owns callback routes, account connection UI, authorization and file-picker/pagination behavior.
|
|
118
|
-
|
|
119
|
-
7 provider-specific source and 7 installed-package cases passed, plus 2 shared Microsoft tenant checks in each 16-test Word/PowerPoint run on September 13. September 12 rendered guidance/form/lifecycle evidence at 496px is retained; no new phone or browser run.
|
|
108
|
+
No slide/presentation content reading, creation/editing, upload/download, conversion, macros, sharing, recursive search, arbitrary drive/site selection or file format validation. Filename extension filtering is not content inspection; filtered empty pages can still have a continuation. No app-only/client-credentials or device-code grant, application login or automatic remote consent revocation. The app owns callback routes, account connection UI, authorization and file-picker/pagination behavior. To extend: use supported native presentation tooling and file transfer, proving actual slide changes, conflict handling and format preservation; no invented Graph slide-editing endpoint. Assistant tool attachment requires explicit host integration. Other frameworks use the same project configuration and their own native tools; JSKIT is optional.
|
package/docs/microsoft-word.md
CHANGED
|
@@ -91,15 +91,6 @@ See the [callback guide](../../connectors-core/docs/oauth-callbacks.md) for doma
|
|
|
91
91
|
changes and reconnect behavior. Keep the selected Microsoft tenant/audience
|
|
92
92
|
consistent with the provider registration.
|
|
93
93
|
|
|
94
|
-
## Evidence and limits
|
|
95
|
-
|
|
96
|
-
Focused fixtures cover consent, cancellation, encrypted restart, refresh,
|
|
97
|
-
reduced permissions, owner isolation, tenant changes, folder paging, empty
|
|
98
|
-
filtered pages, metadata validation and controlled provider failures. Provider
|
|
99
|
-
HTTP is simulated. No live account, provider registration or generated app is
|
|
100
|
-
used. Provider-console administration and live account acceptance remain outside
|
|
101
|
-
this fixture evidence.
|
|
102
|
-
|
|
103
94
|
## Editor credential handoff
|
|
104
95
|
|
|
105
96
|
The inline guide supplies Entra registration, account audience, Web callback,
|
|
@@ -110,10 +101,8 @@ Shared/assistant **Connect account** invokes the prepared application runtime.
|
|
|
110
101
|
Per-user connections belong to individual users inside that application.
|
|
111
102
|
No Vibe64 gateway or shared registration is used.
|
|
112
103
|
|
|
113
|
-
##
|
|
104
|
+
## Scope and limitations
|
|
114
105
|
|
|
115
106
|
Delegated project-owned OAuth browses default-drive folders and Word candidate filenames and fetches selected file metadata, with bounded paging, tenant/audience configuration and refreshed private grants.
|
|
116
107
|
|
|
117
|
-
No document content reading, creation/editing, upload/download, conversion, macros, sharing, recursive search, arbitrary drive/site selection or document format validation. Filename extension filtering is not content inspection; filtered empty pages can still have a continuation. No app-only/client-credentials or device-code grant, application login or automatic remote consent revocation. The app owns callback routes, account connection UI, authorization and file-picker/pagination behavior.
|
|
118
|
-
|
|
119
|
-
7 provider-specific source and 7 installed-package cases passed, plus 2 shared Microsoft tenant checks in each 16-test Word/PowerPoint run on September 13. September 12 rendered guidance/form/lifecycle evidence at 496px is retained; no new phone or browser run.
|
|
108
|
+
No document content reading, creation/editing, upload/download, conversion, macros, sharing, recursive search, arbitrary drive/site selection or document format validation. Filename extension filtering is not content inspection; filtered empty pages can still have a continuation. No app-only/client-credentials or device-code grant, application login or automatic remote consent revocation. The app owns callback routes, account connection UI, authorization and file-picker/pagination behavior. To extend: choose supported native document tooling, implement content/file transfers with conflict and format preservation tests; do not invent Graph document-editing endpoints. Assistant tool attachment requires explicit host integration. Other frameworks use the same project configuration and their own native tools; JSKIT is optional.
|
package/docs/miro.md
CHANGED
|
@@ -90,8 +90,8 @@ For an application integration, use the application's assigned hosting URL as
|
|
|
90
90
|
the initial origin and its implemented callback path. Store the exact callback
|
|
91
91
|
in its Env reference and provider registration. A domain change requires updating
|
|
92
92
|
both values if the callback URL changes; retain the application identity and its
|
|
93
|
-
persistent grants when moving hosts.
|
|
94
|
-
|
|
93
|
+
persistent grants when moving hosts. Every editor and CLI supplies its own
|
|
94
|
+
registrations through this same contract.
|
|
95
95
|
See the [callback guide](../../connectors-core/docs/oauth-callbacks.md).
|
|
96
96
|
|
|
97
97
|
The application or explicitly authorized assistant host owns the client secret
|
package/docs/oura.md
CHANGED
|
@@ -124,9 +124,10 @@ An AI can prepare JSON, callback handlers and runtime composition after an owner
|
|
|
124
124
|
creates and authorizes the registration; approval remains a provider process.
|
|
125
125
|
|
|
126
126
|
The application owner creates the provider registration and stores its secret
|
|
127
|
-
in the application's private Env.
|
|
128
|
-
|
|
129
|
-
references; the editor does not own the
|
|
127
|
+
in the application's private Env. Every editor and CLI uses this same
|
|
128
|
+
[ownership model](../../connectors-core/docs/online-setup.md): the configuration
|
|
129
|
+
file holds the client ID and Env references; the editor does not own the
|
|
130
|
+
application's grants.
|
|
130
131
|
|
|
131
132
|
Register the exact callback implemented by the application. For a hosted project,
|
|
132
133
|
start with its assigned application URL and append the implemented callback path.
|