@zackbart/connecta 0.5.0 → 0.6.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.
- package/CHANGELOG.md +505 -0
- package/README.md +159 -267
- package/dist/auth/bearer.d.ts +10 -3
- package/dist/auth/bearer.d.ts.map +1 -1
- package/dist/auth/bearer.js +21 -0
- package/dist/auth/bearer.js.map +1 -1
- package/dist/auth/clerk.d.ts +28 -3
- package/dist/auth/clerk.d.ts.map +1 -1
- package/dist/auth/clerk.js +161 -4
- package/dist/auth/clerk.js.map +1 -1
- package/dist/connectors/remote-mcp.d.ts.map +1 -1
- package/dist/connectors/remote-mcp.js +8 -0
- package/dist/connectors/remote-mcp.js.map +1 -1
- package/dist/credential-health.d.ts +220 -0
- package/dist/credential-health.d.ts.map +1 -0
- package/dist/credential-health.js +551 -0
- package/dist/credential-health.js.map +1 -0
- package/dist/credentials.d.ts +35 -1
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +42 -0
- package/dist/credentials.js.map +1 -1
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +16 -4
- package/dist/execute.js.map +1 -1
- package/dist/index.d.ts +46 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +118 -15
- package/dist/index.js.map +1 -1
- package/dist/meta-tools.d.ts +56 -5
- package/dist/meta-tools.d.ts.map +1 -1
- package/dist/meta-tools.js +249 -92
- package/dist/meta-tools.js.map +1 -1
- package/dist/registry.d.ts +62 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +85 -1
- package/dist/registry.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +305 -40
- package/dist/server.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +3 -3
- package/dist/skills.js.map +1 -1
- package/dist/timeout.d.ts +16 -0
- package/dist/timeout.d.ts.map +1 -0
- package/dist/timeout.js +38 -0
- package/dist/timeout.js.map +1 -0
- package/dist/toolkits.d.ts +95 -1
- package/dist/toolkits.d.ts.map +1 -1
- package/dist/toolkits.js +190 -5
- package/dist/toolkits.js.map +1 -1
- package/dist/types.d.ts +81 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +52 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +144 -13
- package/dist/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/auth/bearer.ts +35 -1
- package/src/auth/clerk.ts +204 -7
- package/src/connectors/remote-mcp.ts +9 -0
- package/src/credential-health.ts +753 -0
- package/src/credentials.ts +71 -1
- package/src/execute.ts +28 -4
- package/src/index.ts +204 -22
- package/src/meta-tools.ts +286 -109
- package/src/registry.ts +125 -1
- package/src/server.ts +366 -38
- package/src/skills.ts +3 -3
- package/src/timeout.ts +49 -0
- package/src/toolkits.ts +241 -6
- package/src/types.ts +87 -1
- package/src/ui.ts +156 -14
- package/src/version.ts +1 -1
package/dist/skills.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,qBAAqB,+qBACmoB,CAAC;AAEtqB,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,qBAAqB,+qBACmoB,CAAC;AAEtqB,eAAO,MAAM,WAAW,4hFAkDvB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,odAIpC,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAI5E;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAInE;AAED,eAAO,MAAM,gBAAgB;;;;EAOnB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAEnD,uDAAuD;AACvD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAGvE;AAwDD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,GAAG,YAAY,EAAE,CAc3E;AAED,MAAM,MAAM,WAAW,GACrB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,WAAW,CAsCb"}
|
package/dist/skills.js
CHANGED
|
@@ -12,7 +12,7 @@ export const USAGE_SKILL = `# Connecta usage
|
|
|
12
12
|
- Truncated result: retry with \`fields\` when possible; otherwise page it with \`get_result\`.
|
|
13
13
|
- \`auth_required\`: use \`authorize_connector\`, have the operator complete consent, then confirm with \`list_connectors\`.
|
|
14
14
|
|
|
15
|
-
Use \`list_connectors({ probe: false })\` for a fast inventory. Use \`probe: true\` only when diagnosing live health or authorization.
|
|
15
|
+
Use \`list_connectors({ probe: false })\` for a fast inventory. Use \`probe: true\` only when diagnosing live health or authorization. The fast inventory already reports a connector whose stored credential failed a proactive check as \`auth_required\` (with \`credentialCheck\` and the URL to open), so trust it and authorize up front rather than probing to confirm.
|
|
16
16
|
|
|
17
17
|
## Code mode
|
|
18
18
|
|
|
@@ -208,13 +208,13 @@ export function resolveSkill(name, connectors) {
|
|
|
208
208
|
return {
|
|
209
209
|
found: false,
|
|
210
210
|
message: connectorGuide(bare)
|
|
211
|
-
? `Unknown skill "${name}". Connector guides are fetched as "${connectorSkillName(name)}". Available: ${available()}.`
|
|
211
|
+
? `Unknown skill "${name}". Connector guides are fetched as "${connectorSkillName(name)}". Available skills: ${available()}.`
|
|
212
212
|
: `Connector "${name}" has no usage guide. Available skills: ${available()}.`,
|
|
213
213
|
};
|
|
214
214
|
}
|
|
215
215
|
return {
|
|
216
216
|
found: false,
|
|
217
|
-
message: `Unknown skill "${name}". Available: ${available()}.`,
|
|
217
|
+
message: `Unknown skill "${name}". Available skills: ${available()}.`,
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
220
|
//# sourceMappingURL=skills.js.map
|
package/dist/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAChC,mqBAAmqB,CAAC;AAEtqB,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;CAIvC,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,kBAAkB,CAAC,UAAgC;IACjE,OAAO,UAAU,CAAC,IAAI,CACpB,CAAC,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,SAAS,CACvD,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,UAAgC;IACzD,OAAO,kBAAkB,CAAC,UAAU,CAAC;QACnC,CAAC,CAAC,WAAW,GAAG,wBAAwB;QACxC,CAAC,CAAC,WAAW,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EACT,0FAA0F;QAC5F,OAAO,EAAE,UAAU;KACpB;CACO,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAEnD,uDAAuD;AACvD,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,OAAO,GAAG,sBAAsB,GAAG,WAAW,EAAE,CAAC;AACnD,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC;IACnC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,8EAA8E;AAC9E,MAAM,OAAO,GAAG,gCAAgC,CAAC;AAEjD,uCAAuC;AACvC,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AAEnC;;;;GAIG;AACH,MAAM,cAAc,GAAG,gDAAgD,CAAC;AAExE,0EAA0E;AAC1E,SAAS,kBAAkB,CAAC,KAAe;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,EAAE,CAAC;IACnE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,SAAoB,EAAE,KAAa;IACzD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,OAAO;YAAE,SAAS;QACtB,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5D,MAAM,IAAI,GAAG,GAAG;YACd,wEAAwE;YACxE,qDAAqD;aACpD,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;aAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QACV,IAAI,IAAI,KAAK,EAAE;YAAE,SAAS;QAC1B,OAAO,IAAI,CAAC,MAAM,IAAI,cAAc;YAClC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC;IACxD,CAAC;IACD,OAAO,SAAS,CAAC,WAAW,IAAI,oBAAoB,SAAS,CAAC,EAAE,IAAI,CAAC;AACvE,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,UAAgC;IACzD,MAAM,OAAO,GAAmB,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,CAAC,CAAC;IACJ,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACtC,WAAW,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,UAAgC;IAEhC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACtE,IAAI,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;IAC1E,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,UAAU,CAAC,UAAU,CAAC;SACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,SAAS,EAAE,GAAG;aACxE,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,cAAc,EAAE,2CAA2C,SAAS,EAAE,GAAG;aACnF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IACnD,IAAI,IAAI,EAAE,CAAC;QACT,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAC,kBAAkB,IAAI,uCAAuC,kBAAkB,CAAC,IAAI,CAAC,wBAAwB,SAAS,EAAE,GAAG;gBAC7H,CAAC,CAAC,cAAc,IAAI,2CAA2C,SAAS,EAAE,GAAG;SAChF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,kBAAkB,IAAI,wBAAwB,SAAS,EAAE,GAAG;KACtE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generous default bound for a single downstream probe/catalog call. High enough
|
|
3
|
+
* to trip only on a pathological hang, not a realistically slow probe.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DEFAULT_PROBE_TIMEOUT_MS = 30000;
|
|
6
|
+
/** A finite, positive integer number of milliseconds, or undefined. */
|
|
7
|
+
export declare function normalizeTimeoutMs(value: number | undefined): number | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* Reject `promise` after `ms` if it has not settled, so one hung downstream
|
|
10
|
+
* cannot stall a whole fan-out. NOTE: this bounds only the caller-facing wait —
|
|
11
|
+
* the registry probe methods take no AbortSignal, so the underlying fetch is
|
|
12
|
+
* NOT cancelled and keeps running in the background. Real cancellation
|
|
13
|
+
* (AbortSignal plumbed through the registry) is a deferred follow-up.
|
|
14
|
+
*/
|
|
15
|
+
export declare function withTimeout<T>(promise: Promise<T>, ms: number, label: string): Promise<T>;
|
|
16
|
+
//# sourceMappingURL=timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../src/timeout.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,uEAAuE;AACvE,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAgBZ"}
|
package/dist/timeout.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// The deadline vocabulary shared by every non-call downstream probe: the
|
|
2
|
+
// discovery meta-tools' catalog fan-out (src/meta-tools.ts) and the credential
|
|
3
|
+
// liveness checks (src/credential-health.ts). One definition so a "probe" means
|
|
4
|
+
// the same thing, and is bounded the same way, wherever one is issued.
|
|
5
|
+
/**
|
|
6
|
+
* Generous default bound for a single downstream probe/catalog call. High enough
|
|
7
|
+
* to trip only on a pathological hang, not a realistically slow probe.
|
|
8
|
+
*/
|
|
9
|
+
export const DEFAULT_PROBE_TIMEOUT_MS = 30_000;
|
|
10
|
+
/** A finite, positive integer number of milliseconds, or undefined. */
|
|
11
|
+
export function normalizeTimeoutMs(value) {
|
|
12
|
+
if (value === undefined || !Number.isFinite(value) || !(value > 0)) {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
return Math.max(1, Math.trunc(value));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reject `promise` after `ms` if it has not settled, so one hung downstream
|
|
19
|
+
* cannot stall a whole fan-out. NOTE: this bounds only the caller-facing wait —
|
|
20
|
+
* the registry probe methods take no AbortSignal, so the underlying fetch is
|
|
21
|
+
* NOT cancelled and keeps running in the background. Real cancellation
|
|
22
|
+
* (AbortSignal plumbed through the registry) is a deferred follow-up.
|
|
23
|
+
*/
|
|
24
|
+
export function withTimeout(promise, ms, label) {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
const timer = setTimeout(() => {
|
|
27
|
+
reject(new Error(`${label} timed out after ${ms}ms`));
|
|
28
|
+
}, ms);
|
|
29
|
+
promise.then((value) => {
|
|
30
|
+
clearTimeout(timer);
|
|
31
|
+
resolve(value);
|
|
32
|
+
}, (err) => {
|
|
33
|
+
clearTimeout(timer);
|
|
34
|
+
reject(err);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../src/timeout.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,+EAA+E;AAC/E,gFAAgF;AAChF,uEAAuE;AAEvE;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,uEAAuE;AACvE,MAAM,UAAU,kBAAkB,CAChC,KAAyB;IAEzB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,OAAmB,EACnB,EAAU,EACV,KAAa;IAEb,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/toolkits.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Connector } from "./types.js";
|
|
1
|
+
import type { Connector, InboundAuth, ToolkitBinding } from "./types.js";
|
|
2
2
|
/** Toolkit names share the connector-id grammar: URL-safe, no separators. */
|
|
3
3
|
export declare const TOOLKIT_NAME_RE: RegExp;
|
|
4
4
|
/** One named scope, declared in `ConnectaConfig.toolkits` (config as code). */
|
|
@@ -41,4 +41,98 @@ export declare function splitAddress(address: string): {
|
|
|
41
41
|
* current (unscoped) behavior.
|
|
42
42
|
*/
|
|
43
43
|
export declare function resolveToolkits(toolkits: ToolkitConfig | undefined, connectors: readonly Connector[]): ReadonlyMap<string, Toolkit> | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* The binding half of an inbound-auth adapter's options — the shape every
|
|
46
|
+
* shipped adapter (`bearerToken`, `clerkAuth`) mixes into its own options so an
|
|
47
|
+
* operator writes one thing in one style, next to the credential it binds.
|
|
48
|
+
*/
|
|
49
|
+
export interface ToolkitBindingOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Toolkit names this credential may select with `?toolkit=<name>`. Present ⇒
|
|
52
|
+
* the identity is BOUND: any other toolkit, and (unless `unscoped`) a
|
|
53
|
+
* connection with no `?toolkit=`, is refused at connect time. Absent ⇒
|
|
54
|
+
* unbound, exactly as before bindings existed.
|
|
55
|
+
*/
|
|
56
|
+
toolkits?: readonly string[];
|
|
57
|
+
/**
|
|
58
|
+
* Also allow a connection with no `?toolkit=` (the full registry, and the
|
|
59
|
+
* deployment-wide operator surfaces). Only meaningful beside `toolkits`.
|
|
60
|
+
*/
|
|
61
|
+
unscoped?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Validate one adapter's binding options into a `ToolkitBinding`, or undefined
|
|
65
|
+
* when the adapter declares none. Structural mistakes THROW where the operator
|
|
66
|
+
* wrote them (adapter construction), for the same reason toolkit definitions do:
|
|
67
|
+
* a binding that does not say what its author meant is worse than none, because
|
|
68
|
+
* it is invisible until the day it denies — or admits — the wrong caller.
|
|
69
|
+
*
|
|
70
|
+
* Names are only checked against the *grammar* here; cross-checking them
|
|
71
|
+
* against the configured toolkits happens in `validateToolkitBindings`, which
|
|
72
|
+
* runs in `createConnecta` where both halves are finally in scope.
|
|
73
|
+
*/
|
|
74
|
+
export declare function resolveToolkitBinding(source: string, options: ToolkitBindingOptions): ToolkitBinding | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Coerce an arbitrary value into a `ToolkitBinding`, or null when it is not one.
|
|
77
|
+
*
|
|
78
|
+
* The shipped adapters build bindings through `resolveToolkitBinding` above, but
|
|
79
|
+
* `InboundAuth` is an open interface and `AuthResult.toolkitBinding` arrives at
|
|
80
|
+
* REQUEST time from code connecta does not own — a custom adapter, or one
|
|
81
|
+
* mapping an IdP claim. Every field is therefore re-checked here rather than
|
|
82
|
+
* trusted from the type, because each way of being wrong fails OPEN if it is
|
|
83
|
+
* merely believed:
|
|
84
|
+
*
|
|
85
|
+
* - `unscoped` is compared to `true` by identity, so a truthy non-boolean (the
|
|
86
|
+
* string `"false"` out of an env var, say) cannot grant the full registry;
|
|
87
|
+
* - `toolkits` must be a real array — a bare string would otherwise reach
|
|
88
|
+
* `String.prototype.includes`, where `?toolkit=sup` would "match" `"support"`
|
|
89
|
+
* by substring;
|
|
90
|
+
* - a missing/!array `toolkits` is not treated as an empty binding, because the
|
|
91
|
+
* caller of a null return refuses the request outright.
|
|
92
|
+
*
|
|
93
|
+
* Returns a frozen, deduplicated copy: nothing downstream can be mutated by the
|
|
94
|
+
* adapter after the check, and every name is known to fit the grammar.
|
|
95
|
+
*/
|
|
96
|
+
export declare function normalizeToolkitBinding(value: unknown): ToolkitBinding | null;
|
|
97
|
+
/**
|
|
98
|
+
* Resolve the binding one admitted identity is actually held to, from the
|
|
99
|
+
* provider's static declaration and whatever its `authorize` returned.
|
|
100
|
+
*
|
|
101
|
+
* - Neither ⇒ unbound (undefined), the pre-binding behavior.
|
|
102
|
+
* - Declaration only ⇒ the declaration.
|
|
103
|
+
* - Per-identity only ⇒ that binding, validated. This is the custom-adapter
|
|
104
|
+
* seam: a provider that declares nothing is asserting it resolves membership
|
|
105
|
+
* itself, so there is nothing to check it against.
|
|
106
|
+
* - Both ⇒ the **intersection**. The declaration is a CEILING, not a default: an
|
|
107
|
+
* adapter that maps a user-writable IdP claim to toolkits must not be able to
|
|
108
|
+
* widen the credential's own binding, which would turn "support token" into
|
|
109
|
+
* "any toolkit, plus the full registry" for anyone who can set that claim.
|
|
110
|
+
* Narrowing is fine and useful (per-user subsets of the team's view).
|
|
111
|
+
*
|
|
112
|
+
* A malformed binding on either side is not silently ignored — it returns
|
|
113
|
+
* `{ ok: false }` and the caller refuses the request, because the alternative
|
|
114
|
+
* (dropping it) is the fail-open reading.
|
|
115
|
+
*/
|
|
116
|
+
export declare function resolveIdentityBinding(declared: unknown, perIdentity: unknown): {
|
|
117
|
+
ok: true;
|
|
118
|
+
binding?: ToolkitBinding;
|
|
119
|
+
} | {
|
|
120
|
+
ok: false;
|
|
121
|
+
reason: string;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Cross-check every statically declared binding against the deployment's
|
|
125
|
+
* toolkits, in `createConnecta`. A name that no toolkit declares is a typo, and
|
|
126
|
+
* a typo here fails CLOSED — the credential would be refused every connection
|
|
127
|
+
* with a 403 the client reads as a transport failure — so it throws at
|
|
128
|
+
* construction rather than becoming a support ticket. A structurally malformed
|
|
129
|
+
* declaration (only reachable from a hand-written `InboundAuth`, since the
|
|
130
|
+
* shipped adapters validate their own options) throws here too, rather than
|
|
131
|
+
* waiting to refuse every request at runtime.
|
|
132
|
+
*
|
|
133
|
+
* Bindings a provider mints per-identity (`AuthResult.toolkitBinding`) do not
|
|
134
|
+
* exist yet and cannot be checked here; they are validated on arrival and capped
|
|
135
|
+
* by the declaration (`resolveIdentityBinding`).
|
|
136
|
+
*/
|
|
137
|
+
export declare function validateToolkitBindings(auth: readonly InboundAuth[], toolkits: ReadonlyMap<string, Toolkit> | undefined): void;
|
|
44
138
|
//# sourceMappingURL=toolkits.d.ts.map
|
package/dist/toolkits.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkits.d.ts","sourceRoot":"","sources":["../src/toolkits.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toolkits.d.ts","sourceRoot":"","sources":["../src/toolkits.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzE,6EAA6E;AAC7E,eAAO,MAAM,eAAe,QAAkB,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAE9D,kFAAkF;AAClF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C,2EAA2E;IAC3E,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GACd;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOlD;AAgID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAsB1C;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB,GAC7B,cAAc,GAAG,SAAS,CA2C5B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAmB7E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,OAAO,GAElB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoChC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,WAAW,EAAE,EAC5B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,IAAI,CA2BN"}
|
package/dist/toolkits.js
CHANGED
|
@@ -4,8 +4,14 @@
|
|
|
4
4
|
// A connecta deployment belongs to an ORG; a toolkit is the view a GROUP OF
|
|
5
5
|
// TEAM MEMBERS inside that org gets — a "support" toolkit seeing Zendesk and
|
|
6
6
|
// Notion, an "exec" toolkit that also sees Gmail. This module only *defines and
|
|
7
|
-
// validates* scopes
|
|
8
|
-
//
|
|
7
|
+
// validates* scopes and the identity bindings that gate them. Enforcement lives
|
|
8
|
+
// in two places, each with one job:
|
|
9
|
+
//
|
|
10
|
+
// - WHICH toolkit an identity may open: the connect-time binding check in
|
|
11
|
+
// `resolveToolkitScope` (src/server.ts), run after the auth gate and before
|
|
12
|
+
// any scoped registry exists.
|
|
13
|
+
// - WHAT a selected toolkit may see: `ScopedRegistry` (src/registry.ts),
|
|
14
|
+
// which every meta-tool inherits through `RegistryView`.
|
|
9
15
|
/** Toolkit names share the connector-id grammar: URL-safe, no separators. */
|
|
10
16
|
export const TOOLKIT_NAME_RE = /^[a-z0-9_-]+$/;
|
|
11
17
|
/**
|
|
@@ -67,9 +73,9 @@ function toolFilter(name, addresses, connectorIds, staticTools, field) {
|
|
|
67
73
|
*
|
|
68
74
|
* Structural mistakes THROW at construction rather than warn: a typo'd id in
|
|
69
75
|
* an allowlist is a scope the operator did not write, and a scope nobody wrote
|
|
70
|
-
* is not one an operator can reason about. (A
|
|
71
|
-
* identity
|
|
72
|
-
* documentation.md §16.) Tool names are checked only for connectors that expose
|
|
76
|
+
* is not one an operator can reason about. (A definition scopes visibility only;
|
|
77
|
+
* WHICH identity may select it is the separate binding below — see the module
|
|
78
|
+
* header and documentation.md §16.) Tool names are checked only for connectors that expose
|
|
73
79
|
* `staticTools` (i.e. `api()`); a remote connector's catalog is fetched lazily
|
|
74
80
|
* over the network and is unknown at construction time.
|
|
75
81
|
*/
|
|
@@ -131,4 +137,183 @@ export function resolveToolkits(toolkits, connectors) {
|
|
|
131
137
|
}
|
|
132
138
|
return resolved;
|
|
133
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Validate one adapter's binding options into a `ToolkitBinding`, or undefined
|
|
142
|
+
* when the adapter declares none. Structural mistakes THROW where the operator
|
|
143
|
+
* wrote them (adapter construction), for the same reason toolkit definitions do:
|
|
144
|
+
* a binding that does not say what its author meant is worse than none, because
|
|
145
|
+
* it is invisible until the day it denies — or admits — the wrong caller.
|
|
146
|
+
*
|
|
147
|
+
* Names are only checked against the *grammar* here; cross-checking them
|
|
148
|
+
* against the configured toolkits happens in `validateToolkitBindings`, which
|
|
149
|
+
* runs in `createConnecta` where both halves are finally in scope.
|
|
150
|
+
*/
|
|
151
|
+
export function resolveToolkitBinding(source, options) {
|
|
152
|
+
const { toolkits, unscoped } = options;
|
|
153
|
+
if (toolkits === undefined) {
|
|
154
|
+
if (unscoped !== undefined) {
|
|
155
|
+
// `unscoped` alone reads like a permission but grants nothing an unbound
|
|
156
|
+
// identity does not already have, so it is almost certainly a half-written
|
|
157
|
+
// binding — the one shape here that would silently fail OPEN.
|
|
158
|
+
throw new Error(`${source}: \`unscoped\` only means something beside \`toolkits\`. ` +
|
|
159
|
+
"List the toolkits this credential may open, or drop `unscoped` to " +
|
|
160
|
+
"leave the credential unbound.");
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
if (!Array.isArray(toolkits)) {
|
|
165
|
+
throw new Error(`${source}: \`toolkits\` must be an array of toolkit names.`);
|
|
166
|
+
}
|
|
167
|
+
const names = [];
|
|
168
|
+
for (const name of toolkits) {
|
|
169
|
+
if (typeof name !== "string" || !TOOLKIT_NAME_RE.test(name)) {
|
|
170
|
+
// A name outside the grammar can never match a declared toolkit, so this
|
|
171
|
+
// would bind the credential to nothing selectable.
|
|
172
|
+
throw new Error(`${source}: \`toolkits\` entry ${JSON.stringify(name)} is not a ` +
|
|
173
|
+
`toolkit name (must match ${TOOLKIT_NAME_RE.source}).`);
|
|
174
|
+
}
|
|
175
|
+
if (!names.includes(name))
|
|
176
|
+
names.push(name);
|
|
177
|
+
}
|
|
178
|
+
if (names.length === 0 && unscoped !== true) {
|
|
179
|
+
throw new Error(`${source}: binds no toolkits and no unscoped access, so this credential ` +
|
|
180
|
+
"could authenticate but never connect. List at least one toolkit, or " +
|
|
181
|
+
"pass `unscoped: true` to bind it to the full registry only.");
|
|
182
|
+
}
|
|
183
|
+
return Object.freeze({
|
|
184
|
+
toolkits: Object.freeze(names),
|
|
185
|
+
...(unscoped === true ? { unscoped: true } : {}),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Coerce an arbitrary value into a `ToolkitBinding`, or null when it is not one.
|
|
190
|
+
*
|
|
191
|
+
* The shipped adapters build bindings through `resolveToolkitBinding` above, but
|
|
192
|
+
* `InboundAuth` is an open interface and `AuthResult.toolkitBinding` arrives at
|
|
193
|
+
* REQUEST time from code connecta does not own — a custom adapter, or one
|
|
194
|
+
* mapping an IdP claim. Every field is therefore re-checked here rather than
|
|
195
|
+
* trusted from the type, because each way of being wrong fails OPEN if it is
|
|
196
|
+
* merely believed:
|
|
197
|
+
*
|
|
198
|
+
* - `unscoped` is compared to `true` by identity, so a truthy non-boolean (the
|
|
199
|
+
* string `"false"` out of an env var, say) cannot grant the full registry;
|
|
200
|
+
* - `toolkits` must be a real array — a bare string would otherwise reach
|
|
201
|
+
* `String.prototype.includes`, where `?toolkit=sup` would "match" `"support"`
|
|
202
|
+
* by substring;
|
|
203
|
+
* - a missing/!array `toolkits` is not treated as an empty binding, because the
|
|
204
|
+
* caller of a null return refuses the request outright.
|
|
205
|
+
*
|
|
206
|
+
* Returns a frozen, deduplicated copy: nothing downstream can be mutated by the
|
|
207
|
+
* adapter after the check, and every name is known to fit the grammar.
|
|
208
|
+
*/
|
|
209
|
+
export function normalizeToolkitBinding(value) {
|
|
210
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
const { toolkits, unscoped } = value;
|
|
214
|
+
if (!Array.isArray(toolkits))
|
|
215
|
+
return null;
|
|
216
|
+
if (unscoped !== undefined && typeof unscoped !== "boolean")
|
|
217
|
+
return null;
|
|
218
|
+
const names = [];
|
|
219
|
+
for (const name of toolkits) {
|
|
220
|
+
if (typeof name !== "string" || !TOOLKIT_NAME_RE.test(name))
|
|
221
|
+
return null;
|
|
222
|
+
if (!names.includes(name))
|
|
223
|
+
names.push(name);
|
|
224
|
+
}
|
|
225
|
+
return Object.freeze({
|
|
226
|
+
toolkits: Object.freeze(names),
|
|
227
|
+
...(unscoped === true ? { unscoped: true } : {}),
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Resolve the binding one admitted identity is actually held to, from the
|
|
232
|
+
* provider's static declaration and whatever its `authorize` returned.
|
|
233
|
+
*
|
|
234
|
+
* - Neither ⇒ unbound (undefined), the pre-binding behavior.
|
|
235
|
+
* - Declaration only ⇒ the declaration.
|
|
236
|
+
* - Per-identity only ⇒ that binding, validated. This is the custom-adapter
|
|
237
|
+
* seam: a provider that declares nothing is asserting it resolves membership
|
|
238
|
+
* itself, so there is nothing to check it against.
|
|
239
|
+
* - Both ⇒ the **intersection**. The declaration is a CEILING, not a default: an
|
|
240
|
+
* adapter that maps a user-writable IdP claim to toolkits must not be able to
|
|
241
|
+
* widen the credential's own binding, which would turn "support token" into
|
|
242
|
+
* "any toolkit, plus the full registry" for anyone who can set that claim.
|
|
243
|
+
* Narrowing is fine and useful (per-user subsets of the team's view).
|
|
244
|
+
*
|
|
245
|
+
* A malformed binding on either side is not silently ignored — it returns
|
|
246
|
+
* `{ ok: false }` and the caller refuses the request, because the alternative
|
|
247
|
+
* (dropping it) is the fail-open reading.
|
|
248
|
+
*/
|
|
249
|
+
export function resolveIdentityBinding(declared, perIdentity) {
|
|
250
|
+
const ceiling = declared === undefined ? undefined : normalizeToolkitBinding(declared);
|
|
251
|
+
if (declared !== undefined && !ceiling) {
|
|
252
|
+
return {
|
|
253
|
+
ok: false,
|
|
254
|
+
reason: "the toolkit binding declared on the provider is malformed " +
|
|
255
|
+
"(`toolkits` must be an array of toolkit names, `unscoped` a boolean)",
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
if (perIdentity === undefined) {
|
|
259
|
+
return ceiling ? { ok: true, binding: ceiling } : { ok: true };
|
|
260
|
+
}
|
|
261
|
+
const identity = normalizeToolkitBinding(perIdentity);
|
|
262
|
+
if (!identity) {
|
|
263
|
+
return {
|
|
264
|
+
ok: false,
|
|
265
|
+
reason: "the toolkit binding its authorize() returned for this identity is " +
|
|
266
|
+
"malformed (`toolkits` must be an array of toolkit names, `unscoped` " +
|
|
267
|
+
"a boolean)",
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
if (!ceiling)
|
|
271
|
+
return { ok: true, binding: identity };
|
|
272
|
+
return {
|
|
273
|
+
ok: true,
|
|
274
|
+
binding: Object.freeze({
|
|
275
|
+
toolkits: Object.freeze(identity.toolkits.filter((name) => ceiling.toolkits.includes(name))),
|
|
276
|
+
...(identity.unscoped === true && ceiling.unscoped === true
|
|
277
|
+
? { unscoped: true }
|
|
278
|
+
: {}),
|
|
279
|
+
}),
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Cross-check every statically declared binding against the deployment's
|
|
284
|
+
* toolkits, in `createConnecta`. A name that no toolkit declares is a typo, and
|
|
285
|
+
* a typo here fails CLOSED — the credential would be refused every connection
|
|
286
|
+
* with a 403 the client reads as a transport failure — so it throws at
|
|
287
|
+
* construction rather than becoming a support ticket. A structurally malformed
|
|
288
|
+
* declaration (only reachable from a hand-written `InboundAuth`, since the
|
|
289
|
+
* shipped adapters validate their own options) throws here too, rather than
|
|
290
|
+
* waiting to refuse every request at runtime.
|
|
291
|
+
*
|
|
292
|
+
* Bindings a provider mints per-identity (`AuthResult.toolkitBinding`) do not
|
|
293
|
+
* exist yet and cannot be checked here; they are validated on arrival and capped
|
|
294
|
+
* by the declaration (`resolveIdentityBinding`).
|
|
295
|
+
*/
|
|
296
|
+
export function validateToolkitBindings(auth, toolkits) {
|
|
297
|
+
for (const provider of auth) {
|
|
298
|
+
if (provider.toolkitBinding === undefined)
|
|
299
|
+
continue;
|
|
300
|
+
const binding = normalizeToolkitBinding(provider.toolkitBinding);
|
|
301
|
+
if (!binding) {
|
|
302
|
+
throw new Error(`Inbound auth provider "${provider.kind}" declares a malformed ` +
|
|
303
|
+
"toolkitBinding: `toolkits` must be an array of toolkit names " +
|
|
304
|
+
`(matching ${TOOLKIT_NAME_RE.source}) and \`unscoped\` a boolean.`);
|
|
305
|
+
}
|
|
306
|
+
if (!toolkits || toolkits.size === 0) {
|
|
307
|
+
throw new Error(`Inbound auth provider "${provider.kind}" binds toolkits ` +
|
|
308
|
+
`(${binding.toolkits.join(", ")}) but this deployment configures no ` +
|
|
309
|
+
"toolkits. Declare them in `toolkits`, or drop the binding.");
|
|
310
|
+
}
|
|
311
|
+
for (const name of binding.toolkits) {
|
|
312
|
+
if (!toolkits.has(name)) {
|
|
313
|
+
throw new Error(`Inbound auth provider "${provider.kind}" binds unknown toolkit ` +
|
|
314
|
+
`"${name}". Configured toolkits: ${[...toolkits.keys()].join(", ")}.`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
134
319
|
//# sourceMappingURL=toolkits.js.map
|
package/dist/toolkits.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkits.js","sourceRoot":"","sources":["../src/toolkits.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"toolkits.js","sourceRoot":"","sources":["../src/toolkits.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -141,6 +141,19 @@ export interface Connector {
|
|
|
141
141
|
testCredential?(value: string, ctx: ConnectorContext): Promise<CredentialTestResult>;
|
|
142
142
|
/** Optional multi-field credential check used by /ui's Test action. */
|
|
143
143
|
testCredentials?(values: ConnectorCredentialValues, ctx: ConnectorContext): Promise<CredentialTestResult>;
|
|
144
|
+
/**
|
|
145
|
+
* Optional: whether this connector currently holds a stored downstream
|
|
146
|
+
* credential — an OAuth grant it persisted, typically. Read only by the
|
|
147
|
+
* credential liveness checks: a connector with nothing stored has no
|
|
148
|
+
* credential whose liveness could be in question, and probing it anyway would
|
|
149
|
+
* start an authorization flow nobody asked for.
|
|
150
|
+
*
|
|
151
|
+
* Implement it on connectors that manage their own credential storage (the
|
|
152
|
+
* shipped `remoteMcp` does, for `auth: { type: "oauth" }`). Connectors whose
|
|
153
|
+
* credential lives in connecta's vault (`credential` above) need not: the
|
|
154
|
+
* vault answers for them. Must not perform downstream I/O.
|
|
155
|
+
*/
|
|
156
|
+
hasStoredCredential?(ctx: ConnectorContext): Promise<boolean>;
|
|
144
157
|
/**
|
|
145
158
|
* Statically-known tool defs, exposed by in-code connectors (`api()`) for
|
|
146
159
|
* startup convention checks. Remote connectors omit this — their tools are
|
|
@@ -204,11 +217,48 @@ export interface ExecutorProvider {
|
|
|
204
217
|
export interface Executor {
|
|
205
218
|
execute(code: string, providers: ExecutorProvider[]): Promise<ExecuteResult>;
|
|
206
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Which toolkits one inbound identity may open — the membership half of the
|
|
222
|
+
* deployment=org / toolkit=team framing (§16). A mapping, never a policy
|
|
223
|
+
* engine: one identity → the toolkit names it may select, plus whether it may
|
|
224
|
+
* connect with no `?toolkit=` at all.
|
|
225
|
+
*
|
|
226
|
+
* An identity with NO binding is unbound and keeps the pre-binding behavior:
|
|
227
|
+
* any declared toolkit, or the full registry. A binding is enforced at connect
|
|
228
|
+
* time, before any scoped registry is constructed.
|
|
229
|
+
*/
|
|
230
|
+
export interface ToolkitBinding {
|
|
231
|
+
/** Toolkit names this identity may select with `?toolkit=<name>`. */
|
|
232
|
+
readonly toolkits: readonly string[];
|
|
233
|
+
/**
|
|
234
|
+
* Whether this identity may also connect with no `?toolkit=` and see the full
|
|
235
|
+
* registry (and read the deployment-wide operator surfaces). Defaults to
|
|
236
|
+
* false: binding a credential to a toolkit means binding it.
|
|
237
|
+
*/
|
|
238
|
+
readonly unscoped?: boolean;
|
|
239
|
+
}
|
|
207
240
|
/** Result of an inbound-auth check. */
|
|
208
241
|
export type AuthResult = {
|
|
209
242
|
ok: true;
|
|
210
243
|
userId?: string;
|
|
211
244
|
subjectId?: string;
|
|
245
|
+
/**
|
|
246
|
+
* Toolkit binding resolved for THIS identity — the seam for an adapter
|
|
247
|
+
* that maps its own users (or an IdP claim) to views. Omit to inherit the
|
|
248
|
+
* provider's `toolkitBinding`.
|
|
249
|
+
*
|
|
250
|
+
* When the provider also declares one, the declaration is a **CEILING**,
|
|
251
|
+
* not a default: connecta intersects the two, and grants `unscoped` only
|
|
252
|
+
* if both do. A per-identity binding can therefore narrow the credential's
|
|
253
|
+
* view but never widen it — otherwise an adapter reading a user-writable
|
|
254
|
+
* claim would let the user name their own toolkits. When the provider
|
|
255
|
+
* declares nothing, this binding is used as given.
|
|
256
|
+
*
|
|
257
|
+
* Validated on arrival (a malformed one refuses the request with 403
|
|
258
|
+
* rather than being ignored), but never checked against the configured
|
|
259
|
+
* toolkits, which is only possible for the static declaration at startup.
|
|
260
|
+
*/
|
|
261
|
+
toolkitBinding?: ToolkitBinding;
|
|
212
262
|
} | {
|
|
213
263
|
ok: false;
|
|
214
264
|
response: Response;
|
|
@@ -217,8 +267,31 @@ export type AuthResult = {
|
|
|
217
267
|
export type UiAuthConfig = {
|
|
218
268
|
kind: "clerk";
|
|
219
269
|
publishableKey: string;
|
|
270
|
+
/**
|
|
271
|
+
* Origin `/ui` fetches its browser sign-in loader from. **Must be an absolute
|
|
272
|
+
* `https:` URL** — the value lands in a `<script src>`, so the gate is
|
|
273
|
+
* stricter than the branding href gate: no `http:`, no loopback exemption, and
|
|
274
|
+
* no root-relative form (a relative path is rejected, not resolved). The
|
|
275
|
+
* shipped `clerkAuth` adapter derives this from the publishable key and
|
|
276
|
+
* Clerk's Frontend API is always https, so nothing legitimate needs a
|
|
277
|
+
* carve-out. A value that fails the gate reaches neither the loader tag nor
|
|
278
|
+
* the page's inline auth config: `/ui` renders without the loader and reports
|
|
279
|
+
* that Clerk could not load, and `createConnecta` names the drop in a startup
|
|
280
|
+
* warning.
|
|
281
|
+
*/
|
|
220
282
|
frontendApiUrl: string;
|
|
283
|
+
/**
|
|
284
|
+
* Hosted Account Portal sign-in address, handed to `Clerk.load`. **Must be an
|
|
285
|
+
* absolute `https:` URL** — the same gate `frontendApiUrl` passes, because
|
|
286
|
+
* this value is where Clerk *navigates* the operator's browser. An Account
|
|
287
|
+
* Portal address is always https, so the stricter gate costs nothing real: a
|
|
288
|
+
* value that fails it (a `javascript:`/`data:` payload, a cleartext `http:`
|
|
289
|
+
* address, a relative path) reaches no part of the page, `/ui` signs in
|
|
290
|
+
* through Clerk's default instead, and `createConnecta` names the drop in a
|
|
291
|
+
* startup warning.
|
|
292
|
+
*/
|
|
221
293
|
signInUrl?: string;
|
|
294
|
+
/** Hosted Account Portal sign-up address. Gated exactly like `signInUrl`. */
|
|
222
295
|
signUpUrl?: string;
|
|
223
296
|
};
|
|
224
297
|
/**
|
|
@@ -267,6 +340,14 @@ export interface InboundAuth {
|
|
|
267
340
|
* provider instead of asking the operator to paste a static bearer secret.
|
|
268
341
|
*/
|
|
269
342
|
uiAuth?: UiAuthConfig;
|
|
343
|
+
/**
|
|
344
|
+
* Optional toolkit binding for every identity this provider admits (§16).
|
|
345
|
+
* Declared statically so `createConnecta` can validate the names against
|
|
346
|
+
* `ConnectaConfig.toolkits` and throw on a typo — a binding nobody wrote is
|
|
347
|
+
* not one an operator can reason about. An `authorize` result may narrow it
|
|
348
|
+
* per identity with its own `toolkitBinding`.
|
|
349
|
+
*/
|
|
350
|
+
toolkitBinding?: ToolkitBinding;
|
|
270
351
|
/** Serve/short-circuit .well-known + OPTIONS. Return null when not handled. */
|
|
271
352
|
handleMetadata?(request: Request, baseUrl: string): Response | null | Promise<Response | null>;
|
|
272
353
|
/** Attempt to authorize a request. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|