@zackbart/connecta 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/providers/stripe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/providers/stripe.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  * a bump that forgets this file fails the build rather than shipping a stale
5
5
  * version to `/health` and to downstream MCP handshakes.
6
6
  */
7
- export declare const CONNECTA_VERSION = "0.15.0";
7
+ export declare const CONNECTA_VERSION = "0.15.1";
8
8
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * a bump that forgets this file fails the build rather than shipping a stale
5
5
  * version to `/health` and to downstream MCP handshakes.
6
6
  */
7
- export const CONNECTA_VERSION = "0.15.0";
7
+ export const CONNECTA_VERSION = "0.15.1";
8
8
  //# sourceMappingURL=version.js.map
@@ -23,6 +23,18 @@ const edge = cloudflare("cloudflare_prod", {
23
23
  });
24
24
  ```
25
25
 
26
+ Use the legacy user-scoped Global API Key when an existing deployment needs it:
27
+
28
+ ```ts
29
+ const legacyEdge = cloudflare("cloudflare_legacy", {
30
+ purpose: "Legacy account administration",
31
+ authentication: "globalApiKey",
32
+ });
33
+ ```
34
+
35
+ The operator UI then asks for the Cloudflare user email and Global API Key as
36
+ separate fields. The default remains a scoped API token.
37
+
26
38
  The `id` owns the ordinary connector namespaces; use a different id for every
27
39
  Cloudflare account or estate. `purpose` is required because an agent choosing
28
40
  between a production and a staging instance needs to know which one answers the
@@ -40,7 +52,7 @@ dependency would cost is real — an optional peer with its own install step and
40
52
  version skew, an import that never belongs in the root graph, and a second
41
53
  opinion about what a Cloudflare call looks like.
42
54
 
43
- The API itself does not need one. It is Bearer-token `fetch` with a uniform
55
+ The API itself does not need one. It is authenticated `fetch` with a uniform
44
56
  `{ success, errors, messages, result, result_info }` response envelope. JSON,
45
57
  raw bytes, and multipart request bodies all use Web APIs, which keeps the
46
58
  provider Workers-clean and means `@zackbart/connecta/providers/cloudflare`
@@ -51,10 +63,16 @@ must be relative.
51
63
 
52
64
  ## Credentials
53
65
 
54
- The connection declares one operator-managed credential: a scoped Cloudflare
55
- API token, sent as `Authorization: Bearer <token>`. Create it under My Profile →
56
- API Tokens → Create Token. Do not use a Global API Key — it carries every
57
- permission on the account and cannot be scoped.
66
+ The default credential is a scoped Cloudflare API token, sent as
67
+ `Authorization: Bearer <token>`. Create it under My Profile → API Tokens →
68
+ Create Token.
69
+
70
+ Set `authentication: "globalApiKey"` to use the legacy user-scoped scheme. The
71
+ credential form stores two encrypted fields and sends them as `X-Auth-Email`
72
+ and `X-Auth-Key`. The Global API Key has the same access as its Cloudflare user
73
+ across every account and zone that user can reach. It cannot be scoped, only
74
+ one can exist per user, and it has no expiry or IP limits. Cloudflare recommends
75
+ API tokens for new use, but existing Global API Keys remain supported.
58
76
 
59
77
  Grant only what the deployment needs:
60
78
 
@@ -83,10 +101,9 @@ scope. "Cache Purge" is a single permission with no Read/Write split, and
83
101
  Cloudflare's own reference renders a few labels differently between its
84
102
  Dashboard and API tabs.
85
103
 
86
- `verify_api_token` needs no permission beyond the token existing, which is what
87
- makes it the right first call when something fails. The `/credentials` Test
88
- action runs the same verification against the candidate token before it is
89
- stored.
104
+ `verify_api_token` needs no permission beyond the token existing. In legacy
105
+ mode, `verify_global_api_key` reads `/user` to confirm the email and key pair.
106
+ The `/credentials` Test action runs the matching check before storage.
90
107
 
91
108
  Cloudflare rate-limits *authentication failures* aggressively and separately
92
109
  from the global limit: a few requests with a bad token return HTTP 429 with
@@ -146,7 +163,8 @@ method classification into user input:
146
163
  default; `responseType: "text" | "base64"` retrieves scripts, logs, R2
147
164
  objects, and media bodies without pretending they have a JSON envelope.
148
165
  - `cloudflare_api_mutate` accepts JSON POST, PUT, PATCH, and DELETE. It is always
149
- destructive, even when a particular POST is merely additive.
166
+ destructive, even when a particular POST is merely additive. It preserves
167
+ ordinary non-envelope JSON from endpoints such as `/graphql`.
150
168
  - `cloudflare_api_upload` accepts POST or PUT plus exactly one of raw text,
151
169
  base64 bytes, or multipart fields/files. It is always destructive and reads
152
170
  no local files.
@@ -160,7 +178,7 @@ Paths are relative to `/client/v4`. Absolute URLs, protocol-relative paths,
160
178
  `..` traversal, fragments, and embedded query strings are refused locally;
161
179
  query parameters are explicit name/value pairs. These tools reuse the same
162
180
  credential, admission budget, abort signal, envelope parsing, and typed failure
163
- mapping as named tools. They do not widen the token's Cloudflare permissions.
181
+ mapping as named tools. They do not widen the configured credential's access.
164
182
 
165
183
  This is intentionally not OpenAPI ingestion: it creates three stable tools,
166
184
  not one tool per Cloudflare operation. For example, an agent can list Images at
@@ -271,8 +289,8 @@ official table mapping error codes to causes, so that set is assembled from
271
289
  community reports and probing, not from documentation. The same goes for the
272
290
  claim below that `10000` is overloaded — that is an observation about responses
273
291
  seen in practice. Treat both as well-supported readings that Cloudflare could
274
- invalidate without notice, and prefer `verify_api_token` over the code list
275
- when a diagnosis actually matters.
292
+ invalidate without notice. Prefer `verify_api_token` or
293
+ `verify_global_api_key`, as configured, when a diagnosis matters.
276
294
 
277
295
  Two ordering decisions are deliberate. The 429 branch is checked before the
278
296
  authentication codes, because Cloudflare reuses the generic `10000` code on
@@ -280,15 +298,15 @@ throttled responses and reading a rate limit as an auth failure would tell an
280
298
  agent to stop when it should wait. And `10000` is *not* itself treated as an
281
299
  auth code: Cloudflare returns it for "Authentication error" but also for
282
300
  ordinary validation failures like "Invalid pagination cursor" and
283
- "domain_name is required", so routing on it would tell an agent its token was
301
+ "domain_name is required", so routing on it would tell an agent its credential was
284
302
  broken when its arguments were. Genuine `10000` auth failures arrive with 401
285
303
  or 403 and are caught by status.
286
304
 
287
305
  Because the connection declares an operator-managed credential rather than an
288
306
  OAuth flow, an `auth_required` failure resolves to the `operator_config`
289
- recovery mode — the fix is a human updating the token, not an authorization
290
- URL the agent can open. A missing token fails that way before any request is
291
- made.
307
+ recovery mode — the fix is a human updating the credential, not an authorization
308
+ URL the agent can open. A missing credential fails that way before any request
309
+ is made.
292
310
 
293
311
  Some failures never reach Cloudflare at all. A blank scope id, a `purge_cache`
294
312
  call with no variant or two, and an `update_dns_record` with nothing to change
@@ -309,5 +327,5 @@ enforcement of it. Each runtime keeps its own counter, so N Worker isolates or
309
327
  Node processes serving one deployment can each admit up to 1,200 — and the
310
328
  dashboard traffic of a human sharing the account is counted by Cloudflare but
311
329
  not by Connecta. `maxConcurrency` is the bound that actually protects a shared
312
- token, because a single `execute_code` program can fan out far faster than the
313
- window notices.
330
+ credential, because a single `execute_code` program can fan out far faster than
331
+ the window notices.
@@ -47,13 +47,15 @@ choice does not grant the connection different runtime privileges. Two
47
47
  instances of the same provider are isolated in exactly the same way as two
48
48
  hand-written connectors with different ids.
49
49
 
50
- A prebuilt connection's vetted annotations are fill-in only. They classify what
51
- the downstream leaves unannotated and do not argue with what it states — not an
52
- explicit `destructiveHint: true` or `readOnlyHint: false` on a name the
53
- connection files as a read, nor an explicit `readOnlyHint: true` on a name no
54
- release has classified at all. Silence on an unclassified name still means not
55
- read-only, so catalog drift fails closed. The fail-closed read-only invariant
56
- is unchanged by the authoring path.
50
+ A prebuilt connection's vetted annotations fill in downstream silence and
51
+ otherwise preserve explicit annotations. This includes an explicit
52
+ `destructiveHint: true` or `readOnlyHint: false` on a vetted read, and an
53
+ explicit `readOnlyHint: true` on a name no release has classified. One narrow
54
+ exception stays fail-closed: a release-reviewed destructive classification
55
+ overrides a contradictory `readOnlyHint: true`, because Connecta has
56
+ independently established that the tool mutates existing state. Silence on an
57
+ unclassified name still means not read-only. The authoring path never weakens
58
+ the fail-closed read-only invariant.
57
59
 
58
60
  Prebuilt means preferred when available, not mandatory. A deployment may mix
59
61
  prebuilt connections, custom `remoteMcp()` connections, and custom `api()`
@@ -83,18 +83,17 @@ The wrapper classifies Linear's documented `list_*`, `get_*`, and
83
83
  downstream leaves unannotated fails closed onto `call_destructive_tool` until a
84
84
  Connecta release reviews it.
85
85
 
86
- That classification is **fill-in only**, and unconditionally so: it supplies
87
- the annotations Linear leaves unset and contradicts an explicit downstream
88
- annotation in neither direction. A tool on the read allowlist arriving with
86
+ That classification fills in downstream silence and otherwise preserves
87
+ explicit annotations. A tool on the read allowlist arriving with
89
88
  `destructiveHint: true` or `readOnlyHint: false` keeps exactly what the
90
89
  downstream said and stays behind `call_destructive_tool`. A tool on neither
91
90
  maintained list arriving with `readOnlyHint: true` keeps that too, and stays
92
91
  callable from `execute_code`. Both are the downstream telling you this
93
92
  release's allowlist is stale, and on a name no release has reviewed its word is
94
- the only evidence there is. The one classification that still outranks the
95
- downstream is a name this release reviewed and filed destructive: a `save_*`
96
- tool claiming `readOnlyHint: true` is a downstream bug rather than news, and
97
- stays on the approval path.
93
+ the only evidence there is. One narrow fail-closed exception applies to a name
94
+ this release reviewed and filed destructive: a `save_*` tool claiming
95
+ `readOnlyHint: true` is a downstream bug rather than news, and stays on the
96
+ approval path.
98
97
 
99
98
  One detail of Linear's own design shapes the classification: **`save_*` tools
100
99
  are upserts.** Omitting a record id creates; supplying one updates in place.
@@ -49,18 +49,17 @@ documented create, update, edit, merge, dismiss, duplicate, and delete tools as
49
49
  writes. An unfamiliar tool the downstream leaves unannotated fails closed onto
50
50
  `call_destructive_tool` until a Connecta release reviews it.
51
51
 
52
- That classification is **fill-in only**, and unconditionally so: it supplies
53
- the annotations Mixpanel leaves unset and contradicts an explicit downstream
54
- annotation in neither direction. A tool on the read allowlist arriving with
52
+ That classification fills in downstream silence and otherwise preserves
53
+ explicit annotations. A tool on the read allowlist arriving with
55
54
  `destructiveHint: true` or `readOnlyHint: false` keeps exactly what the
56
55
  downstream said and stays behind `call_destructive_tool`. A tool on neither
57
56
  maintained list arriving with `readOnlyHint: true` keeps that too, and stays
58
57
  callable from `execute_code`. Both are the downstream telling you this
59
58
  release's allowlist is stale, and on a name no release has reviewed its word is
60
- the only evidence there is. The one classification that still outranks the
61
- downstream is a name this release reviewed and filed destructive: a
62
- `Delete-Dashboard` claiming `readOnlyHint: true` is a downstream bug rather
63
- than news, and stays on the approval path. Maintained writes that only create
59
+ the only evidence there is. One narrow fail-closed exception applies to a name
60
+ this release reviewed and filed destructive: a `Delete-Dashboard` claiming
61
+ `readOnlyHint: true` is a downstream bug rather than news, and stays on the
62
+ approval path. Maintained writes that only create
64
63
  something new (`Create-Dashboard`, `Create-Cohort`, `Create-Metric`, and the
65
64
  rest) leave `destructiveHint` unset; `readOnlyHint: false` already routes them
66
65
  through the destructive path, and asserting destruction only inflates the
@@ -137,18 +137,18 @@ exists rather than a fresh object appearing beside it. Additive writes
137
137
  `readOnlyHint: false` already routes them through `call_destructive_tool`, and
138
138
  asserting destruction only inflates the approval copy the host shows a human.
139
139
 
140
- That classification is **fill-in only**, and unconditionally so: it supplies
141
- the annotations Stripe leaves unset — Stripe documents no MCP annotations at
142
- all and contradicts an explicit downstream annotation in neither direction. A
143
- tool on the read allowlist arriving with `destructiveHint: true` or
144
- `readOnlyHint: false` keeps exactly what the downstream said and stays behind
145
- `call_destructive_tool`. A tool on neither maintained list arriving with
146
- `readOnlyHint: true` keeps that too, and stays callable from `execute_code`.
147
- Both are the downstream telling you this release's allowlist is stale, and on a
148
- name no release has reviewed its word is the only evidence there is. The one
149
- classification that still outranks the downstream is a name this release
150
- reviewed and filed destructive: a `create_refund` claiming `readOnlyHint: true`
151
- is a downstream bug rather than news, and stays on the approval path.
140
+ That classification fills in downstream silence and otherwise preserves
141
+ explicit annotations. It supplies the annotations Stripe leaves unset — Stripe
142
+ documents no MCP annotations at all. A tool on the read allowlist arriving with
143
+ `destructiveHint: true` or `readOnlyHint: false` keeps exactly what the
144
+ downstream said and stays behind `call_destructive_tool`. A tool on neither
145
+ maintained list arriving with `readOnlyHint: true` keeps that too, and stays
146
+ callable from `execute_code`. Both are the downstream telling you this release's
147
+ allowlist is stale, and on a name no release has reviewed its word is the only
148
+ evidence there is. One narrow fail-closed exception applies to a name this
149
+ release reviewed and filed destructive: a `create_refund` claiming
150
+ `readOnlyHint: true` is a downstream bug rather than news, and stays on the
151
+ approval path.
152
152
 
153
153
  An unfamiliar tool that annotates nothing fails closed onto
154
154
  `call_destructive_tool` until a Connecta release reviews it. That is not
package/ethos.md CHANGED
@@ -69,7 +69,7 @@ proposing one without a new argument is not.
69
69
  | Multi-tenancy / account model | refused | one deployment per tenant; deploy again instead |
70
70
  | Policy engine, approvals, pauses | refused | the host asks the human; connecta only annotates |
71
71
  | Runtime connector registration | refused | config-as-code is the security model |
72
- | Prebuilt connections as the preferred authoring path | accepted | an a-la-carte provider constructor, imported and constructed in the deployment file, encodes maintained defaults for providers connecta actually uses — preferred *when maintained*, with no promise of one per provider; it returns exactly one ordinary `Connector` with no extra privileges — never a bundle, a group, a preset, or a registry — its tools are hand-written or proxied from a downstream MCP catalog, never generated from a schema document; its vetted annotations classify what the downstream leaves unannotated and never overrule an explicit one; `remoteMcp()` and `api()` stay first-class ([#297](https://github.com/zackbart/connecta/issues/297)) |
72
+ | Prebuilt connections as the preferred authoring path | accepted | an a-la-carte provider constructor, imported and constructed in the deployment file, encodes maintained defaults for providers connecta actually uses — preferred *when maintained*, with no promise of one per provider; it returns exactly one ordinary `Connector` with no extra privileges — never a bundle, a group, a preset, or a registry — its tools are hand-written or proxied from a downstream MCP catalog, never generated from a schema document; its vetted annotations classify what the downstream leaves unannotated and otherwise preserve explicit annotations, with one fail-closed exception: a release-reviewed destructive classification outranks a contradictory downstream `readOnlyHint: true`, because Connecta has independently established that the tool mutates existing state; `remoteMcp()` and `api()` stay first-class ([#297](https://github.com/zackbart/connecta/issues/297), [#315](https://github.com/zackbart/connecta/issues/315)) |
73
73
  | Guarded raw REST escape hatches in a prebuilt connection | accepted | a large, fast-moving provider cannot be honestly represented by a small frozen list: a GET-only tool may expose provider-relative reads, while JSON mutations and explicit-content uploads stay separate and always cross the destructive boundary; the connector owns authentication, rate limits, error mapping, URL confinement, and safe method classification, while the provider token remains the capability boundary — this is not schema ingestion, runtime connector registration, or permission widening |
74
74
  | Provider registry / integration marketplace | refused | prebuilt connections are imports, not listings; discovery happens in documentation, never at runtime ([#297](https://github.com/zackbart/connecta/issues/297)) |
75
75
  | Protocol sessions & server push | refused | stateless per request |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zackbart/connecta",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "One MCP to rule them all — a single MCP endpoint aggregating many downstream connectors behind a code-first surface of seven meta-tools.",