@zackbart/connecta 0.34.1 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +418 -0
- package/README.md +65 -105
- package/SECURITY.md +3 -2
- package/bin/connecta.mjs +41 -16
- package/bin/version.mjs +1 -1
- package/dist/access-tokens.d.ts +2 -1
- package/dist/access-tokens.js +66 -30
- package/dist/activity.d.ts +1 -1
- package/dist/activity.js +2 -0
- package/dist/agent-config.d.ts +23 -0
- package/dist/agent-config.js +59 -0
- package/dist/agent-description.js +16 -0
- package/dist/agent-identity.js +4 -4
- package/dist/agent-observation.js +39 -0
- package/dist/auth/clerk-sdk/client.d.ts +2 -0
- package/dist/auth/clerk-sdk/generated.js +554 -563
- package/dist/auth/clerk-transport.js +70 -3
- package/dist/auth/clerk.d.ts +13 -0
- package/dist/auth/clerk.js +653 -246
- package/dist/auth/cloudflare-access.js +46 -42
- package/dist/auth/downstream-client-metadata.js +2 -2
- package/dist/auth/downstream-oauth.js +2044 -1161
- package/dist/auth/downstream-revocation.js +88 -88
- package/dist/auth/native-call.js +20 -0
- package/dist/auth/native.js +184 -0
- package/dist/auth/oauth-start-reset.js +11 -5
- package/dist/auth/oauth-token-response.js +121 -102
- package/dist/auth/oauth-v2-migration.js +97 -78
- package/dist/auth/renewable-grant.js +10 -0
- package/dist/auth/static-oauth.js +751 -281
- package/dist/auth/vercel-agent.js +266 -0
- package/dist/auth-admission.js +204 -0
- package/dist/auth-elicitation.js +350 -241
- package/dist/authorization-handoff.js +164 -90
- package/dist/call-admission-context.js +3 -10
- package/dist/call-admission.js +2 -0
- package/dist/call-classification.js +9 -0
- package/dist/call-recovery.js +32 -13
- package/dist/canonical-json.js +8 -0
- package/dist/catalog-cache.js +369 -213
- package/dist/catalog-service.js +659 -530
- package/dist/catalog.js +5 -1
- package/dist/concurrency.js +0 -25
- package/dist/config-defaults.d.ts +1 -0
- package/dist/config-defaults.js +1 -0
- package/dist/config-schema.d.ts +3 -1
- package/dist/config-schema.js +13 -3
- package/dist/config.d.ts +40 -6
- package/dist/config.js +40 -26
- package/dist/connector-caller.d.ts +4 -0
- package/dist/connector-caller.js +17 -4
- package/dist/connectors/api-connector.d.ts +29 -7
- package/dist/connectors/api-connector.js +145 -57
- package/dist/connectors/guarded-fetch.d.ts +51 -17
- package/dist/connectors/guarded-fetch.js +215 -121
- package/dist/connectors/negotiation-cache.js +20 -10
- package/dist/connectors/remote-mcp.d.ts +10 -30
- package/dist/connectors/remote-mcp.js +955 -563
- package/dist/d1.js +10 -243
- package/dist/derived-context.js +5 -0
- package/dist/describe-config.d.ts +3 -1
- package/dist/describe-config.js +2 -0
- package/dist/downstream-input.js +347 -260
- package/dist/errors.d.ts +87 -6
- package/dist/errors.js +114 -4
- package/dist/execute.js +87 -50
- package/dist/executor-admission.js +3 -0
- package/dist/executors/quickjs.js +163 -112
- package/dist/guarded-transport.js +50 -0
- package/dist/guest-runtime.js +1 -1
- package/dist/http/client.js +439 -0
- package/dist/http/errors.js +558 -0
- package/dist/http/fields.js +49 -0
- package/dist/http/hatch-paging.js +318 -0
- package/dist/http/hatch.js +1279 -0
- package/dist/http/json-schema.js +267 -0
- package/dist/http/node-transport.js +241 -0
- package/dist/http/oauth.js +162 -0
- package/dist/http/paging.js +227 -0
- package/dist/http/provider.js +221 -0
- package/dist/http/safety.js +82 -0
- package/dist/http/services.js +79 -0
- package/dist/http/tools.js +379 -0
- package/dist/http/vendor-index.js +138 -0
- package/dist/http/vendor.js +448 -0
- package/dist/http/write-request.js +66 -0
- package/dist/http-policy.d.ts +11 -0
- package/dist/http-policy.js +45 -0
- package/dist/inbound-credential.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -0
- package/dist/invocation-auth.js +30 -19
- package/dist/invocation.js +218 -85
- package/dist/mcp-result.js +0 -4
- package/dist/membership.d.ts +4 -0
- package/dist/meta-output.js +1 -1
- package/dist/meta-tools.js +531 -406
- package/dist/native-recovery.js +52 -0
- package/dist/native-tools.js +382 -0
- package/dist/node.d.ts +4 -3
- package/dist/node.js +45 -8
- package/dist/oauth-handoff.js +177 -104
- package/dist/oauth-partition.js +6 -20
- package/dist/oauth-sealing.js +6 -7
- package/dist/operation-vocabulary.js +101 -0
- package/dist/operator-record.d.ts +2 -2
- package/dist/operator-record.js +17 -4
- package/dist/operator-ui/contract.d.ts +8 -3
- package/dist/operator-ui/generated.js +4 -4
- package/dist/operator-ui/model.d.ts +2 -3
- package/dist/program-writes.js +47 -26
- package/dist/provider-call-facts.d.ts +115 -0
- package/dist/provider-call-facts.js +182 -0
- package/dist/provider-call.d.ts +112 -0
- package/dist/provider-call.js +271 -0
- package/dist/provider.d.ts +65 -31
- package/dist/provider.js +116 -39
- package/dist/providers/_shared/google/hatch.js +91 -0
- package/dist/providers/_shared/google/kit.js +427 -0
- package/dist/providers/_shared/google/result-size.js +15 -2
- package/dist/providers/_shared/google/service-account.d.ts +2 -1
- package/dist/providers/_shared/google/service-account.js +8 -4
- package/dist/providers/_shared/google/workspace.d.ts +6 -210
- package/dist/providers/_shared/google/workspace.js +6 -425
- package/dist/providers/_shared/rest/compact-index.js +86 -0
- package/dist/providers/_shared/rest/kit.js +146 -0
- package/dist/providers/_shared/rest/operation-index.js +230 -14
- package/dist/providers/_shared/rest/response-media.js +11 -0
- package/dist/providers/_shared/rest/value-safety.js +353 -195
- package/dist/providers/_shared/sensitive-fields.js +27 -0
- package/dist/providers/breeze/api.js +584 -0
- package/dist/providers/breeze/index.d.ts +1 -3
- package/dist/providers/breeze/index.js +67 -1420
- package/dist/providers/breeze/openapi.generated.js +60 -0
- package/dist/providers/breeze/skill.generated.js +2 -6
- package/dist/providers/breeze/tools.js +696 -0
- package/dist/providers/ccb/api.js +496 -0
- package/dist/providers/ccb/index.d.ts +15 -37
- package/dist/providers/ccb/index.js +77 -1702
- package/dist/providers/ccb/lib/constants.d.ts +34 -0
- package/dist/providers/ccb/lib/constants.js +74 -0
- package/dist/providers/ccb/lib/guide.js +9 -0
- package/dist/providers/ccb/lib/verdicts.js +387 -0
- package/dist/providers/ccb/openapi.generated.js +397 -0
- package/dist/providers/ccb/safety.js +295 -0
- package/dist/providers/ccb/skill.generated.js +2 -6
- package/dist/providers/ccb/tools.js +853 -0
- package/dist/providers/cloudflare/api.js +1066 -0
- package/dist/providers/cloudflare/index.d.ts +5 -22
- package/dist/providers/cloudflare/index.js +79 -197
- package/dist/providers/cloudflare/lib/config.d.ts +16 -0
- package/dist/providers/cloudflare/lib/config.js +2 -0
- package/dist/providers/cloudflare/lib/discovery.js +29 -0
- package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
- package/dist/providers/cloudflare/lib/hatch.js +103 -0
- package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
- package/dist/providers/cloudflare/lib/response-media.js +75 -0
- package/dist/providers/cloudflare/openapi.generated.js +4 -3
- package/dist/providers/cloudflare/{value-safety.js → safety.js} +487 -0
- package/dist/providers/cloudflare/skill.generated.js +2 -10
- package/dist/providers/cloudflare/tools.js +360 -0
- package/dist/providers/docs/api.js +51 -0
- package/dist/providers/docs/index.d.ts +1 -12
- package/dist/providers/docs/index.js +53 -1165
- package/dist/providers/docs/lib/constants.d.ts +18 -0
- package/dist/providers/docs/lib/constants.js +18 -0
- package/dist/providers/docs/lib/discovery.js +26 -0
- package/dist/providers/docs/lib/requests.js +48 -0
- package/dist/providers/docs/lib/schemas.js +168 -0
- package/dist/providers/docs/openapi.generated.js +16 -0
- package/dist/providers/docs/safety.js +54 -0
- package/dist/providers/docs/skill.generated.js +2 -6
- package/dist/providers/docs/tools.js +801 -0
- package/dist/providers/drive/api.js +177 -0
- package/dist/providers/drive/index.d.ts +1 -12
- package/dist/providers/drive/index.js +38 -1448
- package/dist/providers/drive/lib/constants.d.ts +6 -0
- package/dist/providers/drive/lib/constants.js +6 -0
- package/dist/providers/drive/lib/contracts.js +532 -0
- package/dist/providers/drive/lib/hatch.js +197 -0
- package/dist/providers/drive/openapi.generated.js +77 -0
- package/dist/providers/drive/safety.js +90 -0
- package/dist/providers/drive/skill.generated.js +2 -6
- package/dist/providers/drive/tools.js +1290 -0
- package/dist/providers/forms/api.js +71 -0
- package/dist/providers/forms/index.d.ts +1 -12
- package/dist/providers/forms/index.js +49 -1145
- package/dist/providers/forms/lib/constants.d.ts +14 -0
- package/dist/providers/forms/lib/constants.js +19 -0
- package/dist/providers/forms/lib/hatch.js +72 -0
- package/dist/providers/forms/openapi.generated.js +23 -0
- package/dist/providers/forms/safety.js +34 -0
- package/dist/providers/forms/skill.generated.js +2 -8
- package/dist/providers/forms/tools.js +1023 -0
- package/dist/providers/github/api.js +150 -0
- package/dist/providers/github/index.d.ts +4 -5
- package/dist/providers/github/index.js +30 -87
- package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
- package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
- package/dist/providers/github/lib/discovery.js +132 -0
- package/dist/providers/github/lib/operations.js +58 -0
- package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
- package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
- package/dist/providers/github/openapi.generated.js +1216 -0
- package/dist/providers/github/safety.js +216 -0
- package/dist/providers/github/skill.generated.js +2 -5
- package/dist/providers/github/tools.js +506 -0
- package/dist/providers/gmail/api.js +114 -0
- package/dist/providers/gmail/index.d.ts +1 -12
- package/dist/providers/gmail/index.js +73 -1621
- package/dist/providers/gmail/lib/constants.d.ts +13 -0
- package/dist/providers/gmail/lib/constants.js +16 -0
- package/dist/providers/gmail/lib/index.js +173 -0
- package/dist/providers/gmail/lib/schemas.js +176 -0
- package/dist/providers/gmail/lib/threading.js +120 -0
- package/dist/providers/gmail/openapi.generated.js +92 -0
- package/dist/providers/gmail/safety.js +21 -0
- package/dist/providers/gmail/skill.generated.js +2 -6
- package/dist/providers/gmail/tools.js +1435 -0
- package/dist/providers/overflow/api.js +1008 -0
- package/dist/providers/overflow/index.d.ts +1 -17
- package/dist/providers/overflow/index.js +60 -1488
- package/dist/providers/overflow/skill.generated.js +2 -5
- package/dist/providers/overflow/tools.js +873 -0
- package/dist/providers/planning-center/api.js +467 -0
- package/dist/providers/planning-center/index.d.ts +4 -35
- package/dist/providers/planning-center/index.js +69 -2445
- package/dist/providers/planning-center/lib/constants.d.ts +58 -0
- package/dist/providers/planning-center/lib/constants.js +83 -0
- package/dist/providers/planning-center/lib/discovery.js +40 -0
- package/dist/providers/planning-center/lib/guide.js +39 -0
- package/dist/providers/planning-center/lib/json-api.js +83 -0
- package/dist/providers/planning-center/lib/verdicts.js +1758 -0
- package/dist/providers/planning-center/openapi.generated.js +1764 -0
- package/dist/providers/planning-center/safety.js +188 -0
- package/dist/providers/planning-center/skill.generated.js +2 -27
- package/dist/providers/planning-center/tools.js +1010 -0
- package/dist/providers/quickbooks/api.js +299 -0
- package/dist/providers/quickbooks/index.d.ts +13 -0
- package/dist/providers/quickbooks/index.js +93 -0
- package/dist/providers/quickbooks/lib/query.js +118 -0
- package/dist/providers/quickbooks/lib/writes.js +168 -0
- package/dist/providers/quickbooks/safety.js +222 -0
- package/dist/providers/quickbooks/skill.generated.js +5 -0
- package/dist/providers/quickbooks/tools.js +117 -0
- package/dist/providers/sheets/api.js +133 -0
- package/dist/providers/sheets/index.d.ts +4 -16
- package/dist/providers/sheets/index.js +61 -1172
- package/dist/providers/sheets/lib/constants.d.ts +14 -0
- package/dist/providers/sheets/lib/constants.js +14 -0
- package/dist/providers/sheets/lib/hatch.js +163 -0
- package/dist/providers/sheets/lib/requests.js +105 -0
- package/dist/providers/sheets/lib/schemas.js +138 -0
- package/dist/providers/sheets/openapi.generated.js +30 -0
- package/dist/providers/sheets/safety.js +27 -0
- package/dist/providers/sheets/skill.generated.js +2 -7
- package/dist/providers/sheets/tools.js +733 -0
- package/dist/providers/slides/api.js +147 -0
- package/dist/providers/slides/index.d.ts +2 -10
- package/dist/providers/slides/index.js +48 -2555
- package/dist/providers/slides/lib/constants.d.ts +11 -0
- package/dist/providers/slides/lib/constants.js +11 -0
- package/dist/providers/slides/lib/requests.js +60 -0
- package/dist/providers/slides/lib/schemas.js +565 -0
- package/dist/providers/slides/openapi.generated.js +18 -0
- package/dist/providers/slides/skill.generated.js +2 -6
- package/dist/providers/slides/tools.js +1968 -0
- package/dist/providers/stripe/api.js +401 -0
- package/dist/providers/stripe/index.d.ts +5 -27
- package/dist/providers/stripe/index.js +74 -210
- package/dist/providers/stripe/lib/config.d.ts +4 -0
- package/dist/providers/stripe/lib/config.js +2 -0
- package/dist/providers/stripe/openapi.generated.js +4 -3
- package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
- package/dist/providers/stripe/skill.generated.js +2 -11
- package/dist/providers/stripe/tools.js +77 -0
- package/dist/providers/tithely/api.js +531 -0
- package/dist/providers/tithely/index.d.ts +17 -0
- package/dist/providers/tithely/index.js +86 -965
- package/dist/providers/tithely/skill.generated.js +2 -5
- package/dist/providers/tithely/tools.js +426 -0
- package/dist/providers/vercel/api.js +551 -0
- package/dist/providers/vercel/index.d.ts +9 -25
- package/dist/providers/vercel/index.js +65 -260
- package/dist/providers/vercel/lib/config.d.ts +2 -0
- package/dist/providers/vercel/lib/config.js +2 -0
- package/dist/providers/vercel/lib/index.js +117 -0
- package/dist/providers/vercel/lib/logs.js +100 -0
- package/dist/providers/vercel/lib/pin.js +270 -0
- package/dist/providers/vercel/openapi.generated.js +10 -5
- package/dist/providers/vercel/{value-safety.js → safety.js} +247 -38
- package/dist/providers/vercel/skill.generated.js +2 -7
- package/dist/providers/vercel/tools.js +642 -0
- package/dist/redaction-identity.js +47 -0
- package/dist/redaction-marker.js +125 -0
- package/dist/registry.d.ts +21 -15
- package/dist/registry.js +409 -376
- package/dist/routes/access-tokens.js +1 -1
- package/dist/routes/actor-labels.js +1 -1
- package/dist/routes/connect.js +1 -1
- package/dist/routes/dispatch.js +103 -0
- package/dist/routes/mcp.js +170 -79
- package/dist/routes/oauth.js +6 -1
- package/dist/routes/operator.js +2 -2
- package/dist/routes/shared.d.ts +5 -4
- package/dist/routes/shared.js +244 -177
- package/dist/routes/skills.js +10 -8
- package/dist/routes/ui-config.js +27 -3
- package/dist/routes/ui-data.js +21 -20
- package/dist/routes/ui.js +1 -1
- package/dist/runtime/call-admission.js +0 -26
- package/dist/runtime/call-entry.js +30 -0
- package/dist/runtime/call.js +552 -0
- package/dist/runtime/connector-scope.js +7 -0
- package/dist/runtime/credential-probe.js +34 -0
- package/dist/runtime/executor.js +40 -0
- package/dist/runtime/native-storage.js +63 -0
- package/dist/runtime/registry.js +27 -0
- package/dist/runtime/request-scope.js +72 -0
- package/dist/runtime/run.js +15 -7
- package/dist/runtime/shared-read.js +34 -5
- package/dist/runtime/storage.js +34 -21
- package/dist/sent-secrets.d.ts +194 -37
- package/dist/sent-secrets.js +1743 -340
- package/dist/server.js +5 -56
- package/dist/skills.js +322 -223
- package/dist/sqlite.js +15 -14
- package/dist/storage/d1-copy.js +255 -0
- package/dist/storage/d1-driver.js +15 -0
- package/dist/storage/keys.js +28 -0
- package/dist/storage/sql-driver.js +88 -0
- package/dist/storage/sql-native.js +544 -0
- package/dist/storage/sql-schema.d.ts +6 -0
- package/dist/storage/sql-schema.js +15 -0
- package/dist/storage/sql.d.ts +14 -20
- package/dist/storage/sql.js +29 -535
- package/dist/timeout.js +0 -26
- package/dist/tool-safety.js +20 -10
- package/dist/types.d.ts +9 -109
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +0 -1
- package/dist/upward.js +3 -0
- package/dist/usage-guide.js +3 -1
- package/dist/validate.d.ts +4 -2
- package/dist/validate.js +86 -9
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker.js +312 -292
- package/dist/workspace-subject.js +5 -1
- package/dist/write-outcome.js +454 -34
- package/documentation/README.md +28 -7
- package/documentation/architecture.md +2409 -255
- package/documentation/auth.md +867 -114
- package/documentation/code-mode.md +49 -16
- package/documentation/deploying.md +164 -20
- package/documentation/hosted-mcp-migration.md +460 -0
- package/documentation/integrating.md +129 -144
- package/documentation/meta-tools.md +409 -32
- package/documentation/operating.md +27 -3
- package/documentation/operator-tests.md +3 -0
- package/documentation/operator-ui.md +84 -48
- package/documentation/provider-auth-migration.md +16 -63
- package/documentation/provider-migration-0.29.md +10 -5
- package/documentation/provider-migration-0.35.md +975 -0
- package/documentation/providers.md +1347 -0
- package/examples/worker/AGENTS.md +23 -9
- package/examples/worker/README.md +254 -135
- package/examples/worker/alchemy.run.ts +116 -0
- package/examples/worker/gitignore +10 -0
- package/examples/worker/src/connecta.config.ts +23 -21
- package/examples/worker/wrangler.jsonc +14 -5
- package/guides/connecting-agents.md +157 -0
- package/guides/how-it-works.md +156 -0
- package/guides/safety-and-trust.md +153 -0
- package/package.json +30 -50
- package/templates/node/.env.example +3 -0
- package/templates/node/README.md +22 -2
- package/templates/node/docker-compose.yml +1 -0
- package/templates/node/package.json +3 -2
- package/templates/node/src/connecta.config.ts +8 -0
- package/dist/catalog-drift.d.ts +0 -138
- package/dist/catalog-drift.js +0 -578
- package/dist/operator-ui/agents.d.ts +0 -74
- package/dist/operator-ui/agents.js +0 -104
- package/dist/operator-ui/config-summary.js +0 -565
- package/dist/operator-ui/connection-map.js +0 -376
- package/dist/operator-ui/endpoints.js +0 -221
- package/dist/operator-ui/fix-prompts.d.ts +0 -18
- package/dist/operator-ui/fix-prompts.js +0 -87
- package/dist/operator-ui/health.js +0 -52
- package/dist/operator-ui/member-page.js +0 -97
- package/dist/operator-ui/overview.js +0 -123
- package/dist/operator-ui/setup-commands.js +0 -51
- package/dist/operator-ui/view.d.ts +0 -401
- package/dist/operator-ui/view.js +0 -705
- package/dist/providers/_shared/request-token.js +0 -83
- package/dist/providers/_shared/rest/dispatch.js +0 -41
- package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
- package/dist/providers/_shared/rest/tools.d.ts +0 -141
- package/dist/providers/_shared/rest/tools.js +0 -569
- package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
- package/dist/providers/basecamp/index.d.ts +0 -45
- package/dist/providers/basecamp/index.js +0 -997
- package/dist/providers/basecamp/skill.generated.js +0 -9
- package/dist/providers/cloudflare/rest.d.ts +0 -37
- package/dist/providers/cloudflare/rest.js +0 -1097
- package/dist/providers/github/hosted.js +0 -218
- package/dist/providers/github/rest.js +0 -321
- package/dist/providers/infisical/index.d.ts +0 -7
- package/dist/providers/infisical/index.js +0 -713
- package/dist/providers/infisical/skill.generated.js +0 -8
- package/dist/providers/intercom/index.d.ts +0 -24
- package/dist/providers/intercom/index.js +0 -121
- package/dist/providers/intercom/skill.generated.js +0 -8
- package/dist/providers/linear/index.d.ts +0 -55
- package/dist/providers/linear/index.js +0 -537
- package/dist/providers/linear/skill.generated.js +0 -8
- package/dist/providers/mixpanel/index.d.ts +0 -59
- package/dist/providers/mixpanel/index.js +0 -472
- package/dist/providers/mixpanel/operations.js +0 -20
- package/dist/providers/mixpanel/rest.js +0 -603
- package/dist/providers/mixpanel/skill.generated.js +0 -10
- package/dist/providers/mixpanel/value-safety.js +0 -16
- package/dist/providers/notion/index.d.ts +0 -67
- package/dist/providers/notion/index.js +0 -368
- package/dist/providers/notion/openapi.generated.js +0 -75
- package/dist/providers/notion/rest.d.ts +0 -24
- package/dist/providers/notion/rest.js +0 -1226
- package/dist/providers/notion/skill.generated.js +0 -11
- package/dist/providers/notion/value-safety.js +0 -56
- package/dist/providers/revenuecat/index.d.ts +0 -51
- package/dist/providers/revenuecat/index.js +0 -697
- package/dist/providers/revenuecat/skill.generated.js +0 -11
- package/dist/providers/stripe/rest.d.ts +0 -14
- package/dist/providers/stripe/rest.js +0 -402
- package/dist/providers/vercel/rest.d.ts +0 -20
- package/dist/providers/vercel/rest.js +0 -1020
- package/dist/providers/wispr-flow/index.d.ts +0 -14
- package/dist/providers/wispr-flow/index.js +0 -117
- package/dist/providers/wispr-flow/skill.generated.js +0 -8
- /package/dist/providers/github/{key.js → lib/key.js} +0 -0
|
@@ -175,6 +175,9 @@ updates run only through `workflow_dispatch`.
|
|
|
175
175
|
On a matching Linux runner, `pnpm install --frozen-lockfile`, install Chromium with the command above,
|
|
176
176
|
then run `pnpm run test:browser:snapshots`. The normal command is
|
|
177
177
|
`pnpm run test:browser`. Missing baselines fail CI; retries cannot bless them.
|
|
178
|
+
Visual comparisons run in their own Playwright project without retries, so a
|
|
179
|
+
mismatch fails on its first attempt. When any attempt fails, CI uploads
|
|
180
|
+
the HTML report, actual/expected/diff images and traces as `playwright-report`.
|
|
178
181
|
Set `OPERATOR_VISUAL_INSPECT=1` to retain local screenshots under ignored
|
|
179
182
|
`test-results/` for inspection, without updating committed baselines.
|
|
180
183
|
|
|
@@ -42,15 +42,15 @@ No select menu displays configuration. Copy is short labels; a failure names
|
|
|
42
42
|
what to do next in one or two sentences and never quotes a route's or
|
|
43
43
|
downstream's text.
|
|
44
44
|
|
|
45
|
-
| Path | Page
|
|
46
|
-
| ------------------ |
|
|
47
|
-
| `/` | Overview (a member gets the member page)
|
|
48
|
-
| `/endpoints` | Endpoints; `#mcp/<pool>` opens that row
|
|
49
|
-
| `/connectors` | Connectors list; `?view=matrix` for the matrix
|
|
50
|
-
| `/connectors/<id>` | Connector detail; `#tools`, `#connection`, `#activity`
|
|
51
|
-
| `/activity` | Activity
|
|
52
|
-
| `/tokens` | Tokens, when token management is open
|
|
53
|
-
| `/settings` | Settings
|
|
45
|
+
| Path | Page | Who |
|
|
46
|
+
| ------------------ | ------------------------------------------------------------ | ---------- |
|
|
47
|
+
| `/` | Overview (a member gets the member page) | Maintainer |
|
|
48
|
+
| `/endpoints` | Endpoints; `#mcp/<pool>` opens that row | Maintainer |
|
|
49
|
+
| `/connectors` | Connectors list; `?view=matrix` for the matrix | Maintainer |
|
|
50
|
+
| `/connectors/<id>` | Connector detail; `#tools`, `#connection`, `#activity` | Maintainer |
|
|
51
|
+
| `/activity` | Activity | Maintainer |
|
|
52
|
+
| `/tokens` | Tokens, when agents are declared or token management is open | Maintainer |
|
|
53
|
+
| `/settings` | Settings | Maintainer |
|
|
54
54
|
|
|
55
55
|
`/access` redirects to `/endpoints`, `/tools` to `/connectors`, and `/config`
|
|
56
56
|
to `/settings`, replacing the history entry. Connector hashes `#config`,
|
|
@@ -109,6 +109,10 @@ instead of "0 tools".
|
|
|
109
109
|
|
|
110
110
|
### Endpoints
|
|
111
111
|
|
|
112
|
+
Pool endpoint rows show the effective surface (`meta` or `native`) and whether
|
|
113
|
+
code is on. These are read-only facts from deployment configuration; change
|
|
114
|
+
`surface` and `executeCode` in deployment code.
|
|
115
|
+
|
|
112
116
|
One row each for `/mcp` and every pool: the path, a read-only pill on a
|
|
113
117
|
read-only endpoint, a copyable URL, who can use it, its connectors as colored
|
|
114
118
|
monograms (four, then "+N"), its tool count over a read and write bar, and a
|
|
@@ -192,7 +196,7 @@ tabs:
|
|
|
192
196
|
- **Connection.** An Authentication card (mode, OAuth client mechanism, who
|
|
193
197
|
manages it, OAuth actions, and the credential card with masked last four,
|
|
194
198
|
field states, and Replace, Test and Remove); a Diagnostics card of tiles
|
|
195
|
-
(catalog age
|
|
199
|
+
(catalog age and last call) with a fix prompt beside each
|
|
196
200
|
problem; and a Configuration card. Its badges name the kind (Remote MCP,
|
|
197
201
|
HTTP API or Custom), provider, auth scope, endpoint host and usage guide.
|
|
198
202
|
The auth row names the mode and draws each auth fact as a mono badge
|
|
@@ -204,29 +208,12 @@ tabs:
|
|
|
204
208
|
- **Activity.** The [Activity](#activity) page for that connector, without
|
|
205
209
|
connector chips or monograms.
|
|
206
210
|
|
|
207
|
-
#### Read catalog
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
the report until another listing is served.
|
|
214
|
-
|
|
215
|
-
“No catalog refresh yet” means this partition has no observation. “No reviewed
|
|
216
|
-
baseline” means a listing was observed without a reviewed classification.
|
|
217
|
-
“Matches the reviewed manifest” requires a baseline, successful verification,
|
|
218
|
-
no differences, and schema pins for every live reviewed tool. “Schemas not
|
|
219
|
-
pinned” and “Partial schema coverage” describe missing review evidence; they
|
|
220
|
-
are not clean schema comparisons. “Schema verification unavailable” replaces
|
|
221
|
-
an earlier successful report if hashing fails. Known differences remain visible
|
|
222
|
-
alongside coverage or verification limits. Each operator refresh returns the
|
|
223
|
-
comparison from the catalog it just loaded, including hashing failures and
|
|
224
|
-
schema changes, without another downstream status probe.
|
|
225
|
-
|
|
226
|
-
The unserved count excludes reviewed names explicitly marked optional for
|
|
227
|
-
plan, feature, or permission gating. Present optional tools still participate
|
|
228
|
-
in annotation and schema comparisons. Dropped tool names are counted even
|
|
229
|
-
without a baseline, and do not establish one.
|
|
211
|
+
#### Read catalog changes
|
|
212
|
+
|
|
213
|
+
Catalog refresh activity reports added, removed, and changed tool counts within
|
|
214
|
+
its identity partition. The UI no longer compares tools with a release-reviewed
|
|
215
|
+
manifest or shows schema-pin coverage. Check live annotations and deployment
|
|
216
|
+
classification in the catalog when reviewing exposure.
|
|
230
217
|
|
|
231
218
|
### Settings
|
|
232
219
|
|
|
@@ -260,9 +247,13 @@ editing controls. An empty section is not drawn.
|
|
|
260
247
|
|
|
261
248
|
### Tokens
|
|
262
249
|
|
|
263
|
-
One row per agent declared in code,
|
|
264
|
-
mark and name,
|
|
265
|
-
|
|
250
|
+
One row per agent declared in code, including OIDC-only agents when the token
|
|
251
|
+
module is absent: agent mark and name, supported credentials (Agent token,
|
|
252
|
+
Vercel OIDC, or both), pools as chips, a token state pill (Not configured, No
|
|
253
|
+
token, Issued or Revoked), the issue or revoke date, and last seen ("never"
|
|
254
|
+
when unknown). Not configured means the managed token module is absent and
|
|
255
|
+
has no token controls; No token means that module has an unissued slot.
|
|
256
|
+
An OIDC binding works independently of the token's state. The heading note
|
|
266
257
|
reads "Declared in code"; nothing creates or renames an agent. Narrow screens
|
|
267
258
|
stack each row into a card.
|
|
268
259
|
|
|
@@ -412,18 +403,36 @@ The maintainer view carries:
|
|
|
412
403
|
code or credential material.
|
|
413
404
|
- `root`: plain `/mcp`, its `readOnly`, and its `maintainers`, people only.
|
|
414
405
|
- `pools`: every declared pool with `humanPath` (`/mcp/<name>`), `agentPath`
|
|
415
|
-
(`/agent/<name>`), `readOnly`, `
|
|
406
|
+
(`/agent/<name>`), `readOnly`, effective `surface` (`meta` or `native`),
|
|
407
|
+
`executeCode` (whether code is enabled), `owner` (the Workspace address its agents act
|
|
416
408
|
as), its declared `tools` (never intersected; no `requireReadOnly` is ever
|
|
417
409
|
true), and its `members`, agents as `{ kind: "agent", name }`. Every listed
|
|
418
410
|
person carries a `label` from the same directory lookup activity actor
|
|
419
411
|
labels use, on an interactive read only, and `null` without a directory
|
|
420
412
|
(Cloudflare Access) or an entry. An open deployment's anonymous maintainer
|
|
421
413
|
reads every `owner` as `null`.
|
|
422
|
-
- `agents`: every agent declared in code,
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
414
|
+
- `agents`: every agent declared in code, in deployment order, with its pools
|
|
415
|
+
and `credentialTypes` (`access_token`, `vercel_oidc`, or both). These are
|
|
416
|
+
immutable deployment descriptions: the token kind requires the managed
|
|
417
|
+
access-token module, and OIDC requires that agent's own workload binding.
|
|
418
|
+
They grant nothing. `token` is `null` when the token module is absent;
|
|
419
|
+
otherwise its slot (`state`, `issuedAt`, `revokedAt`, `revision`) is exactly
|
|
420
|
+
what `GET /ui/access-tokens` lists, including an unissued `state: "none"`.
|
|
421
|
+
A failed or incomplete slot read answers 503 rather than drop agents.
|
|
422
|
+
`lastSeenAt` is the newest sampled successful agent-endpoint admission or
|
|
423
|
+
visible historical activity timestamp, or `null` when unknown or withheld.
|
|
424
|
+
Admission means credential verification and membership in that declared pool
|
|
425
|
+
succeeded; it does not promise a completed call. Invalid credentials,
|
|
426
|
+
refused/undeclared pools and human routes record nothing. The observation
|
|
427
|
+
stores only the declared name and timestamp, independently of activity.
|
|
428
|
+
Admission observations sample at most once per minute: a valid stored time
|
|
429
|
+
less than 60 seconds behind the candidate skips the write, and an older
|
|
430
|
+
candidate never moves the time backwards. This is minute-level admission
|
|
431
|
+
evidence, not an exact timestamp for every request. Each observation uses at
|
|
432
|
+
most two atomic storage attempts under the smaller of the configured probe
|
|
433
|
+
deadline and 500 ms, within the request lifetime. Failure, timeout or
|
|
434
|
+
contention can lose a sample; a later eligible admission can try again.
|
|
435
|
+
Observation never refuses admission or retries MCP or tool work.
|
|
427
436
|
- `matrix`: a cell per connector for plain `/mcp` (`pool: null`) and for each
|
|
428
437
|
pool that serves it, with that endpoint's tool names or `"all"` and
|
|
429
438
|
`runsAs`. A Workspace connector with a subject mapping is
|
|
@@ -447,10 +456,12 @@ The maintainer view carries:
|
|
|
447
456
|
mechanism when known. Static and unobserved catalogs have a null age;
|
|
448
457
|
persisted catalogs retain their original fetch time.
|
|
449
458
|
- `live.activity`: available, unconfigured, forbidden, or unavailable history.
|
|
450
|
-
|
|
459
|
+
Historical last-call and last-seen lookups need the activity permission and read gate,
|
|
451
460
|
scan up to 1,000 recent rows, filter connector/tool grants, restrict personal
|
|
452
461
|
connectors to the caller's activity identity, and copy a validated timestamp
|
|
453
|
-
and outcome only.
|
|
462
|
+
and outcome only. Admission last-seen reads require a maintainer and honor
|
|
463
|
+
the configured activity read gate, including when history is unavailable;
|
|
464
|
+
they work with no activity module. A null means unknown or withheld.
|
|
454
465
|
- `connectors: []`.
|
|
455
466
|
|
|
456
467
|
The member view is exactly that member's projection: `config`,
|
|
@@ -508,8 +519,9 @@ says the snapshot is for maintainers. It requires the UI module and the
|
|
|
508
519
|
existing doctor authentication environment variables; it runs no diagnostic
|
|
509
520
|
program, follows no redirects, and prints no raw HTTP failure body.
|
|
510
521
|
|
|
511
|
-
The operator shell uses React, TanStack Router
|
|
512
|
-
|
|
522
|
+
The operator shell uses React, TanStack Router, Radix and cmdk. Esbuild bundles
|
|
523
|
+
the authored CSS with an explicit browser reset; it generates no utility classes.
|
|
524
|
+
Hanken Grotesk, JetBrains Mono, CSS, JavaScript and dependency notices are hashed assets
|
|
513
525
|
under `/ui/assets/*`, served identically with immutable cache headers on Node
|
|
514
526
|
and Workers. HTML contains only mount points and escaped inert configuration;
|
|
515
527
|
it remains uncached. Ahead of the stylesheet, every operator page (sign-in
|
|
@@ -526,7 +538,11 @@ private browsing: a read finds nothing stored and a write keeps nothing, so a
|
|
|
526
538
|
bearer token is not remembered there. `generated.ts` is ignored and generated before build and
|
|
527
539
|
test; `check:operator-ui` detects stale assets and shared page styles. The UI
|
|
528
540
|
stays behind `./ui`, outside the root import graph. The identity-fenced store
|
|
529
|
-
owns authenticated reads and existing mutations
|
|
541
|
+
owns authenticated reads and existing mutations, with explicit identity and
|
|
542
|
+
read-cycle AbortControllers, revision fences, and no query cache or automatic
|
|
543
|
+
mutation replay. Browser-only view models ship inside the hashed bundle, with
|
|
544
|
+
no duplicate standalone server modules. The shared contract owns the unchanged
|
|
545
|
+
`OperatorPage` union exported from `@zackbart/connecta/ui`. An Access-only shell selects
|
|
530
546
|
Access even when the HTML request has no trusted context; only authenticated
|
|
531
547
|
API responses establish the session. A gated Access session offers Retry.
|
|
532
548
|
Focus, visibility, and timer-driven recovery share one admission-read schedule
|
|
@@ -544,7 +560,14 @@ duplicate summary, token, config, detail or body reads. The passive retry schedu
|
|
|
544
560
|
stays bounded and does not reset its budget on a deadline. Retry remains available
|
|
545
561
|
during recovery configuration loading and supersedes and aborts the old cycle;
|
|
546
562
|
identity changes, navigation and connector-page unmount also cancel it. Navigation
|
|
547
|
-
that cancels pending data schedules a bounded reread for the destination.
|
|
563
|
+
that cancels pending data schedules a bounded reread for the destination. A scoped OAuth poll publishes only its connector's detail and live row. It does
|
|
564
|
+
not supersede a pending full admission or catalog/auth cycle, release its
|
|
565
|
+
recovery guard, or clear its deadline. That full cycle still publishes other
|
|
566
|
+
connectors as they settle and decides recovery, retaining the newer polled row
|
|
567
|
+
even when its summary was pending or its deadline exposed Retry. Only a newer
|
|
568
|
+
full cycle, mutation, identity change, or sign-out fences older work. Owed
|
|
569
|
+
publication neither spends nor resets the failed-read retry budget and adds no
|
|
570
|
+
timer. Failed reads retry after
|
|
548
571
|
2, 2, 4, and 8 seconds. Refusals preserve the throttle and retry budget. After
|
|
549
572
|
those four automatic retries, a focus return can request one more read after
|
|
550
573
|
the eight-second backoff, without replenishing the automatic budget. Retry
|
|
@@ -601,6 +624,11 @@ names, descriptions or schemas enter the event. Private catalog changes require
|
|
|
601
624
|
a matching principal owner even when the connector uses shared auth. Empty credential declarations
|
|
602
625
|
report `credential_required` before running a connector status or catalog probe.
|
|
603
626
|
|
|
627
|
+
Activity label resolvers receive an optional `AbortSignal`. Pass it to user-directory
|
|
628
|
+
fetches and stop work when it aborts: the reader has left or the label lookup
|
|
629
|
+
budget has expired. Clerk label lookups follow the same lifetime and discard
|
|
630
|
+
late answers after cancellation.
|
|
631
|
+
|
|
604
632
|
## Contributor reference
|
|
605
633
|
|
|
606
634
|
### Source and tests
|
|
@@ -638,3 +666,11 @@ serve the authenticated shell and data. The browser lives in
|
|
|
638
666
|
and [browser flows](https://github.com/zackbart/connecta/blob/main/test/browser/operator-ui.spec.ts)
|
|
639
667
|
defend filtering and behavior. Use [Operator UI tests](./operator-tests.md)
|
|
640
668
|
for the browser state matrix and Linux snapshot procedure.
|
|
669
|
+
|
|
670
|
+
The browser flows also hold configuration and connector reads open across a
|
|
671
|
+
bearer identity switch, observe cancellation of the old HTTP response, and
|
|
672
|
+
require only the replacement viewer's data after navigation. A held OAuth poll
|
|
673
|
+
must abort on navigation without sending its start again; the Access recovery
|
|
674
|
+
flow checks explicit Retry and browser-history navigation without a document
|
|
675
|
+
reload. The packed deployment journey compiles every `OperatorPage` through
|
|
676
|
+
the public `@zackbart/connecta/ui` alias after declaration pruning.
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Provider auth migration
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Hosted selections described in this historical migration are now removed.
|
|
4
|
+
For Stripe, Vercel, Cloudflare, Notion, Mixpanel, and GitHub hosted connections,
|
|
5
|
+
use the [current hosted MCP migration guide](./hosted-mcp-migration.md).
|
|
6
|
+
The API migrations below remain applicable.
|
|
7
|
+
|
|
8
|
+
Use this upgrade guide when moving a Stripe, Vercel, or Cloudflare
|
|
4
9
|
deployment from 0.30 to 0.31, where `auth` selects each provider's
|
|
5
10
|
implementation.
|
|
6
11
|
[Deployment upgrades](./deploying.md#upgrade-an-existing-deployment) cover other
|
|
@@ -13,6 +18,9 @@ uses one implementation: configure two ids for both.
|
|
|
13
18
|
|
|
14
19
|
## Stripe
|
|
15
20
|
|
|
21
|
+
For current API-key setup, use [Maintained provider setup](./providers.md#stripe).
|
|
22
|
+
For the 0.35 argument and paging changes, use [Stripe surface migration](./provider-migration-0.35.md#stripe).
|
|
23
|
+
|
|
16
24
|
## Choose OAuth or an API key
|
|
17
25
|
|
|
18
26
|
Import `stripe` from `@zackbart/connecta/providers/stripe`. Choose one of two setup paths:
|
|
@@ -84,7 +92,8 @@ or a generated one as `Idempotency-Key` and return it (DELETE sends none).
|
|
|
84
92
|
Caller-supplied keys may contain up to 255 characters. An ambiguous POST write
|
|
85
93
|
also returns the key in `uncertainCall.recovery.idempotencyKey`, including when
|
|
86
94
|
the call deadline interrupts it. See [argument recovery](./meta-tools.md#argument-recovery)
|
|
87
|
-
before retrying
|
|
95
|
+
before retrying: a custom connector that wraps or composes Stripe calls gets
|
|
96
|
+
the key as a diagnostic only, never advice to reuse it.
|
|
88
97
|
Every request, v1 and v2, sends `Stripe-Version: 2026-09-30.endive`, the
|
|
89
98
|
version of the pinned index, whatever the account's default API version, so
|
|
90
99
|
response shapes and accepted parameters follow that version. Check fields
|
|
@@ -100,56 +109,9 @@ connector need an OAuth connector beside it. Read the connector runtime guide wi
|
|
|
100
109
|
|
|
101
110
|
## Notion
|
|
102
111
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
```ts
|
|
107
|
-
connectors: [
|
|
108
|
-
notion("notion", { purpose: "Workspace content as the signed-in user", auth: { type: "oauth" } }),
|
|
109
|
-
notion("notion_bot", { purpose: "Internal integration content", auth: { type: "token" } }),
|
|
110
|
-
]
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
| 0.30 configuration | Now |
|
|
114
|
-
| ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
115
|
-
| No `surface`, or `surface: "mcp"` | `auth: { type: "oauth" }`. Same endpoint, reviewed catalog, grant, and optional `callAdmission`. |
|
|
116
|
-
| `surface: "api"` | `auth: { type: "token" }`. The integration token stored for the same connector id carries over; run its Test action. |
|
|
117
|
-
| `credentialLabel` or `defaultPageSize` | Token only, as before. Under OAuth they are refused by name at construction. |
|
|
118
|
-
| `integration_search`, `_get_page`, `_get_page_content`, `_get_data_source_schema`, `_query_data_source`, `_create_page`, `_append_blocks` | Unchanged names and contracts. `integration_append_blocks` also takes `checklist`. |
|
|
119
|
-
| `integration_get_database` | `notion_api_read` `GET /v1/databases/{database_id}`. |
|
|
120
|
-
| `integration_get_page_property` | `notion_api_read` `GET /v1/pages/{page_id}/properties/{property_id}`; `truncated_properties` names it. |
|
|
121
|
-
| `integration_list_users`, `integration_get_self` | `notion_api_read` `GET /v1/users` or `GET /v1/users/me`. |
|
|
122
|
-
| `integration_list_comments`, `integration_add_comment` | `notion_api_read` `GET /v1/comments`; `notion_api_write` `POST /v1/comments`. |
|
|
123
|
-
| `integration_update_page_properties`, `integration_trash_page` | `notion_api_write` `PATCH /v1/pages/{page_id}` with `properties`, or `in_trash` to trash or restore. |
|
|
124
|
-
|
|
125
|
-
Both auth variants accept optional `callAdmission`. On a token connector it
|
|
126
|
-
replaces the whole default policy of 180 calls per minute and 3 concurrent
|
|
127
|
-
per runtime. Malformed policies throw at construction. Notion's
|
|
128
|
-
[request limits](https://developers.notion.com/reference/request-limits) allow
|
|
129
|
-
600 requests per minute per connection on Business and Enterprise and 180 on
|
|
130
|
-
other plans, with a separate workspace-wide limit shared by all connections.
|
|
131
|
-
Account for other runtimes and tools that make multiple HTTP requests when
|
|
132
|
-
choosing an override.
|
|
133
|
-
|
|
134
|
-
The token connector gains Connecta's generic REST tools over Notion's pinned
|
|
135
|
-
API index (`notion_api_search`, `notion_api_details`, `notion_api_read`,
|
|
136
|
-
`notion_api_write`), so every public operation is reachable with the bot's
|
|
137
|
-
token: views, page moves and Markdown, meeting notes, custom agents and
|
|
138
|
-
sessions, file uploads by `external_url`, and data source changes. Every call
|
|
139
|
-
is checked against the index before it is sent, and results arrive as
|
|
140
|
-
`{ status, data, page? }`. The read-only POST queries (search, data source,
|
|
141
|
-
meeting notes, agents, sessions, and session events) use `notion_api_read`;
|
|
142
|
-
`page.in: "body"` says their cursor goes back in the body. Notion's OAuth token
|
|
143
|
-
endpoints and multipart file sends are refused. The 0.29 reconciliation table
|
|
144
|
-
and the `surface: "api"` complement rules no longer apply to Notion.
|
|
145
|
-
|
|
146
|
-
Lost per mode. A token connector acts as the integration bot, never as a
|
|
147
|
-
person, and has none of the hosted MCP's search across connected apps, page
|
|
148
|
-
duplication, team and skill search, attachment downloads, or page-to-skill
|
|
149
|
-
conversion. An OAuth connector acts as the user, and has none of the generic
|
|
150
|
-
REST tools or the `integration_*` projections and authoring helpers. Configure
|
|
151
|
-
both ids when a deployment needs both; a failed call is never retried on the
|
|
152
|
-
other. Read the connector runtime guide with `connecta.skill("connector:<id>")` in `execute_code` for its usage conventions.
|
|
112
|
+
The maintained Notion API provider is removed in 0.35. See the
|
|
113
|
+
[provider removal migration](./provider-migration-0.35.md#remove-infisical-notion-and-mixpanel)
|
|
114
|
+
and use generic `remoteMcp()` for the hosted server.
|
|
153
115
|
|
|
154
116
|
## Vercel
|
|
155
117
|
|
|
@@ -314,16 +276,7 @@ one; read or rotate withheld secrets in the vendor's dashboard.
|
|
|
314
276
|
Failures of credential-bearing operations keep Stripe's type, code, and
|
|
315
277
|
param but not its message. Create client-side sessions and links from your
|
|
316
278
|
own server code.
|
|
317
|
-
|
|
318
|
-
fragment of canonical Notion file links, including links embedded in
|
|
319
|
-
Markdown and async task results. External proxy URLs keep their bytes;
|
|
320
|
-
AWS and Google signing-parameter values are withheld at any host. Writes
|
|
321
|
-
carrying the plain or encoded `[redacted]` placeholder in a Notion file
|
|
322
|
-
link's own query or fragment are refused before dispatch. See the
|
|
323
|
-
connector runtime guide through `connecta.skill("connector:<id>")` in `execute_code` for recognized hosts and scanning limits. Credential-named fields,
|
|
324
|
-
including database properties named like credentials, read as
|
|
325
|
-
`"[redacted]"`. Failures of the OAuth, file upload, bot user, and agent
|
|
326
|
-
operations keep Notion's code but not its message.
|
|
279
|
+
|
|
327
280
|
- **Vercel** replaces environment values with `"[redacted]"` instead of
|
|
328
281
|
dropping the field, and withholds Vercel's error text for every reviewed
|
|
329
282
|
operation and every operation whose request takes a credential-named
|
|
@@ -341,4 +294,4 @@ one; read or rotate withheld secrets in the vendor's dashboard.
|
|
|
341
294
|
[Decision 0005](https://github.com/zackbart/connecta/blob/main/decisions/0005-auth-selects-implementation.md)
|
|
342
295
|
explains why auth selects the implementation. Maintained provider source
|
|
343
296
|
skills and review tables live under `src/providers/` in the repository;
|
|
344
|
-
`src/providers/vercel/
|
|
297
|
+
`src/providers/vercel/safety.ts` owns Vercel's reviewed table.
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
# Notion, Vercel and Cloudflare migration for 0.29
|
|
2
2
|
|
|
3
|
+
Hosted selections described in this historical migration are now removed.
|
|
4
|
+
For Stripe, Vercel, Cloudflare, Notion, Mixpanel, and GitHub hosted connections,
|
|
5
|
+
use the [current hosted MCP migration guide](./hosted-mcp-migration.md).
|
|
6
|
+
The API migrations below remain applicable.
|
|
7
|
+
|
|
3
8
|
Use this upgrade guide for an existing deployment.
|
|
4
9
|
[Deployment upgrades](./deploying.md#upgrade-an-existing-deployment) cover other
|
|
5
10
|
version changes; [integrating services](./integrating.md) covers new connectors.
|
|
6
11
|
[The agent index](./README.md) routes package maintenance separately.
|
|
7
12
|
|
|
8
|
-
This
|
|
9
|
-
|
|
13
|
+
This was the Phase 1 item 5d migration input for [Phase 5 release #709](https://github.com/zackbart/connecta/issues/709),
|
|
14
|
+
which shipped as 0.29.0.
|
|
10
15
|
Deployments that use Notion or Cloudflare must check their actual grants and
|
|
11
16
|
connector ids in deployment configuration before that release.
|
|
12
17
|
The provider audit establishes available auth modes, not production OAuth grants.
|
|
@@ -14,7 +19,7 @@ The provider audit establishes available auth modes, not production OAuth grants
|
|
|
14
19
|
Cloudflare's part of this guide is superseded: `cloudflare()` now selects its
|
|
15
20
|
implementation by `auth` and its key connector is complete on its own. Follow
|
|
16
21
|
the [provider auth migration](./provider-auth-migration.md#cloudflare) for
|
|
17
|
-
Cloudflare; the Cloudflare lines below record the 0.29
|
|
22
|
+
Cloudflare; the Cloudflare lines below record the transition shipped in 0.29.0 only.
|
|
18
23
|
|
|
19
24
|
All three providers now default to hosted MCP. `surface: "api"` explicitly
|
|
20
25
|
selects a REST complement and accepts only its API-specific options. The old
|
|
@@ -36,7 +41,7 @@ Notion has since moved to auth-selected implementations: `surface` is gone,
|
|
|
36
41
|
and `auth: { type: "oauth" }` or `{ type: "token" }` selects hosted MCP or the
|
|
37
42
|
REST connector. Upgrade with the
|
|
38
43
|
[provider auth migration](./provider-auth-migration.md#notion); the rest of
|
|
39
|
-
this paragraph records the 0.29
|
|
44
|
+
this paragraph records the rules shipped in 0.29.0.
|
|
40
45
|
Notion preserves headless/internal-integration capabilities. Add explicit
|
|
41
46
|
`surface: "api"` to retain that identity and migrate old REST names to
|
|
42
47
|
`integration_*`, for example `search` to `integration_search`, `create_page`
|
|
@@ -62,7 +67,7 @@ Writable endpoints may run `execute`; `readOnly` endpoints refuse it.
|
|
|
62
67
|
|
|
63
68
|
Vercel's `surface` and ownership rules were later replaced: `auth` now selects
|
|
64
69
|
the implementation. See the [provider auth migration](./provider-auth-migration.md#vercel).
|
|
65
|
-
The 0.29
|
|
70
|
+
The Vercel guidance shipped in 0.29.0 follows for history. For Vercel, authorize the owning teams in hosted OAuth, migrate discovery/logs,
|
|
66
71
|
domain listing/adding, deployment cancellation and file uploads to live MCP
|
|
67
72
|
schemas, and keep the independently authorized REST complement for value-safe
|
|
68
73
|
project environment variables (including `upsert: false` create-only writes), domain verification/removal and deployment
|