@antasphere/chassis-server 1.1.0 → 1.3.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/dist/api/apikeys.d.ts +4 -1
- package/dist/api/apikeys.d.ts.map +1 -1
- package/dist/api/apikeys.js +11 -1
- package/dist/api/apikeys.js.map +1 -1
- package/dist/api/create-api.d.ts +3 -0
- package/dist/api/create-api.d.ts.map +1 -1
- package/dist/api/create-api.js +8 -3
- package/dist/api/create-api.js.map +1 -1
- package/dist/api/invitations.d.ts.map +1 -1
- package/dist/api/invitations.js +6 -0
- package/dist/api/invitations.js.map +1 -1
- package/dist/api/members.d.ts +5 -2
- package/dist/api/members.d.ts.map +1 -1
- package/dist/api/members.js +1 -0
- package/dist/api/members.js.map +1 -1
- package/dist/api/projects.d.ts +3 -0
- package/dist/api/projects.d.ts.map +1 -1
- package/dist/api/projects.js +13 -1
- package/dist/api/projects.js.map +1 -1
- package/dist/api/webhooks.d.ts +24 -0
- package/dist/api/webhooks.d.ts.map +1 -0
- package/dist/api/webhooks.js +170 -0
- package/dist/api/webhooks.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +11 -5
- package/dist/app.js.map +1 -1
- package/dist/boot.d.ts.map +1 -1
- package/dist/boot.js +47 -4
- package/dist/boot.js.map +1 -1
- package/dist/email/index.d.ts +1 -0
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +1 -0
- package/dist/email/index.js.map +1 -1
- package/dist/env.d.ts +9 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +11 -0
- package/dist/env.js.map +1 -1
- package/dist/identity/demo-pass-rules.d.ts.map +1 -1
- package/dist/identity/demo-pass-rules.js +6 -1
- package/dist/identity/demo-pass-rules.js.map +1 -1
- package/dist/identity/hub-reconcile.d.ts +2 -2
- package/dist/identity/hub-reconcile.d.ts.map +1 -1
- package/dist/identity/hub-reconcile.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/jobs/index.d.ts +1 -1
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/jobs/pgboss.d.ts +34 -0
- package/dist/jobs/pgboss.d.ts.map +1 -1
- package/dist/jobs/pgboss.js +32 -9
- package/dist/jobs/pgboss.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-kit.d.ts +2 -0
- package/dist/mcp/tool-kit.d.ts.map +1 -1
- package/dist/mcp/tool-kit.js +5 -1
- package/dist/mcp/tool-kit.js.map +1 -1
- package/dist/mcp/webhooks.d.ts +16 -0
- package/dist/mcp/webhooks.d.ts.map +1 -0
- package/dist/mcp/webhooks.js +226 -0
- package/dist/mcp/webhooks.js.map +1 -0
- package/dist/members/removal.d.ts +10 -2
- package/dist/members/removal.d.ts.map +1 -1
- package/dist/members/removal.js +3 -0
- package/dist/members/removal.js.map +1 -1
- package/dist/middleware/idempotency.d.ts.map +1 -1
- package/dist/middleware/idempotency.js +3 -1
- package/dist/middleware/idempotency.js.map +1 -1
- package/dist/middleware/index.d.ts +1 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +1 -0
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/scopes.d.ts +9 -1
- package/dist/middleware/scopes.d.ts.map +1 -1
- package/dist/middleware/scopes.js +8 -1
- package/dist/middleware/scopes.js.map +1 -1
- package/dist/middleware/static-assets.d.ts +63 -0
- package/dist/middleware/static-assets.d.ts.map +1 -0
- package/dist/middleware/static-assets.js +125 -0
- package/dist/middleware/static-assets.js.map +1 -0
- package/dist/secret-box.d.ts +10 -0
- package/dist/secret-box.d.ts.map +1 -0
- package/dist/secret-box.js +87 -0
- package/dist/secret-box.js.map +1 -0
- package/dist/testing/helpers.d.ts +8 -0
- package/dist/testing/helpers.d.ts.map +1 -1
- package/dist/testing/helpers.js.map +1 -1
- package/dist/tool-definition.d.ts +24 -0
- package/dist/tool-definition.d.ts.map +1 -1
- package/dist/tool-definition.js.map +1 -1
- package/dist/webhooks/catalog.d.ts +80 -0
- package/dist/webhooks/catalog.d.ts.map +1 -0
- package/dist/webhooks/catalog.js +134 -0
- package/dist/webhooks/catalog.js.map +1 -0
- package/dist/webhooks/index.d.ts +9 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +9 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/jobs.d.ts +12 -0
- package/dist/webhooks/jobs.d.ts.map +1 -0
- package/dist/webhooks/jobs.js +77 -0
- package/dist/webhooks/jobs.js.map +1 -0
- package/dist/webhooks/mail.d.ts +24 -0
- package/dist/webhooks/mail.d.ts.map +1 -0
- package/dist/webhooks/mail.js +21 -0
- package/dist/webhooks/mail.js.map +1 -0
- package/dist/webhooks/match.d.ts +22 -0
- package/dist/webhooks/match.d.ts.map +1 -0
- package/dist/webhooks/match.js +40 -0
- package/dist/webhooks/match.js.map +1 -0
- package/dist/webhooks/safe-fetch.d.ts +94 -0
- package/dist/webhooks/safe-fetch.d.ts.map +1 -0
- package/dist/webhooks/safe-fetch.js +263 -0
- package/dist/webhooks/safe-fetch.js.map +1 -0
- package/dist/webhooks/service.d.ts +245 -0
- package/dist/webhooks/service.d.ts.map +1 -0
- package/dist/webhooks/service.js +861 -0
- package/dist/webhooks/service.js.map +1 -0
- package/dist/webhooks/signing.d.ts +40 -0
- package/dist/webhooks/signing.d.ts.map +1 -0
- package/dist/webhooks/signing.js +108 -0
- package/dist/webhooks/signing.js.map +1 -0
- package/dist/webhooks/tx-send.d.ts +31 -0
- package/dist/webhooks/tx-send.d.ts.map +1 -0
- package/dist/webhooks/tx-send.js +22 -0
- package/dist/webhooks/tx-send.js.map +1 -0
- package/package.json +7 -3
- package/src/api/apikeys.ts +12 -1
- package/src/api/create-api.ts +17 -3
- package/src/api/invitations.ts +6 -0
- package/src/api/members.ts +6 -2
- package/src/api/projects.ts +16 -1
- package/src/api/webhooks.ts +205 -0
- package/src/app.ts +17 -4
- package/src/boot.ts +48 -4
- package/src/email/index.ts +1 -0
- package/src/env.ts +11 -0
- package/src/identity/demo-pass-rules.ts +6 -1
- package/src/identity/hub-reconcile.ts +2 -2
- package/src/index.ts +13 -1
- package/src/jobs/index.ts +1 -0
- package/src/jobs/pgboss.ts +71 -9
- package/src/mcp/index.ts +1 -0
- package/src/mcp/server.ts +10 -2
- package/src/mcp/tool-kit.ts +7 -1
- package/src/mcp/webhooks.ts +370 -0
- package/src/members/removal.ts +21 -1
- package/src/middleware/idempotency.ts +3 -1
- package/src/middleware/index.ts +11 -0
- package/src/middleware/scopes.ts +14 -0
- package/src/middleware/static-assets.ts +144 -0
- package/src/secret-box.ts +93 -0
- package/src/testing/helpers.ts +8 -0
- package/src/tool-definition.ts +29 -0
- package/src/webhooks/catalog.ts +205 -0
- package/src/webhooks/index.ts +58 -0
- package/src/webhooks/jobs.ts +92 -0
- package/src/webhooks/mail.ts +48 -0
- package/src/webhooks/match.ts +52 -0
- package/src/webhooks/safe-fetch.ts +335 -0
- package/src/webhooks/service.ts +1089 -0
- package/src/webhooks/signing.ts +132 -0
- package/src/webhooks/tx-send.ts +53 -0
- package/test/host/drizzle/0002_webhooks.sql +49 -0
- package/test/host/drizzle/meta/0002_snapshot.json +3952 -0
- package/test/host/drizzle/meta/_journal.json +8 -1
- package/test/host/identity.ts +6 -1
- package/test/host/minimal-host.ts +2 -1
- package/test/host/minimal-tool.ts +32 -4
- package/test/integration/mcp-webhooks.test.ts +360 -0
- package/test/integration/webhooks.test.ts +1684 -0
- package/test/unit/secret-box.test.ts +124 -0
- package/test/unit/static-assets.test.ts +227 -0
- package/test/unit/tx-send.test.ts +23 -0
- package/test/unit/webhook-catalog.test.ts +151 -0
- package/test/unit/webhook-env.test.ts +60 -0
- package/test/unit/webhook-jobs.test.ts +92 -0
- package/test/unit/webhook-match.test.ts +81 -0
- package/test/unit/webhook-safe-fetch.test.ts +330 -0
- package/test/unit/webhook-signing.test.ts +169 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/middleware/idempotency.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,5 @@ export { MAX_JSON_DEPTH, exceedsJsonDepth, jsonDepthLimit } from './json-depth.j
|
|
|
9
9
|
export { noStoreAuthenticated } from './no-store.js';
|
|
10
10
|
export { isPublicOauthPath, oauthPublicEndpoints } from './oauth-public.js';
|
|
11
11
|
export { buildCsp, hstsValue, inlineScriptHashes, securityHeaders } from './security-headers.js';
|
|
12
|
+
export { IMMUTABLE_ASSET_PREFIX, IMMUTABLE_CACHE_CONTROL, REVALIDATE_CACHE_CONTROL, type SpaFallback, type StaticAssetsOptions, acceptedEncodings, loadSpaFallback, staticAssets, staticCacheControl } from './static-assets.js';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,kBAAkB,EACnB,MAAM,oBAAoB,CAAC"}
|
package/dist/middleware/index.js
CHANGED
|
@@ -9,4 +9,5 @@ export { MAX_JSON_DEPTH, exceedsJsonDepth, jsonDepthLimit } from './json-depth.j
|
|
|
9
9
|
export { noStoreAuthenticated } from './no-store.js';
|
|
10
10
|
export { isPublicOauthPath, oauthPublicEndpoints } from './oauth-public.js';
|
|
11
11
|
export { buildCsp, hstsValue, inlineScriptHashes, securityHeaders } from './security-headers.js';
|
|
12
|
+
export { IMMUTABLE_ASSET_PREFIX, IMMUTABLE_CACHE_CONTROL, REVALIDATE_CACHE_CONTROL, acceptedEncodings, loadSpaFallback, staticAssets, staticCacheControl } from './static-assets.js';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA8C,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAA8C,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EAGxB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,kBAAkB,EACnB,MAAM,oBAAoB,CAAC"}
|
|
@@ -26,8 +26,16 @@ export interface ScopeAllowlistOptions<S extends string> {
|
|
|
26
26
|
write: S;
|
|
27
27
|
/** The tool's dedicated opt-in scope for the full-workspace export. */
|
|
28
28
|
dataExport: S;
|
|
29
|
+
/**
|
|
30
|
+
* The tool's dedicated opt-in scope for the webhooks family (PRDCT-3482):
|
|
31
|
+
* registering an endpoint is a standing read of the workspace to a URL of
|
|
32
|
+
* the caller's choice, so no read or write key opens it. Absent: no
|
|
33
|
+
* machine principal reaches `/webhooks` at all (the catalog read stays
|
|
34
|
+
* under the read scope).
|
|
35
|
+
*/
|
|
36
|
+
webhooks?: S | undefined;
|
|
29
37
|
/** The tool's own rules, asked in order AFTER the chassis rules. */
|
|
30
38
|
rules: ReadonlyArray<ScopeRule<S>>;
|
|
31
39
|
}
|
|
32
|
-
export declare function createScopeAllowlist<S extends string>({ read, write, dataExport, rules }: ScopeAllowlistOptions<S>): (path: string, method: string) => S | null;
|
|
40
|
+
export declare function createScopeAllowlist<S extends string>({ read, write, dataExport, webhooks, rules }: ScopeAllowlistOptions<S>): (path: string, method: string) => S | null;
|
|
33
41
|
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC;AAEtG,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC;IACR,6FAA6F;IAC7F,KAAK,EAAE,CAAC,CAAC;IACT,uEAAuE;IACvE,UAAU,EAAE,CAAC,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC;AAqDD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,IAAI,EACJ,KAAK,EACL,UAAU,EACV,KAAK,EACN,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC;AAEtG,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,MAAM;IACrD,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC;IACR,6FAA6F;IAC7F,KAAK,EAAE,CAAC,CAAC;IACT,uEAAuE;IACvE,UAAU,EAAE,CAAC,CAAC;IACd;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IACzB,oEAAoE;IACpE,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC;AAqDD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,EACrD,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACN,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,CA8DvE"}
|
|
@@ -71,7 +71,7 @@ function teamAccess(path, method) {
|
|
|
71
71
|
return method === 'DELETE' ? 'write' : null;
|
|
72
72
|
return null;
|
|
73
73
|
}
|
|
74
|
-
export function createScopeAllowlist({ read, write, dataExport, rules }) {
|
|
74
|
+
export function createScopeAllowlist({ read, write, dataExport, webhooks, rules }) {
|
|
75
75
|
return function requiredScopeFor(path, method) {
|
|
76
76
|
const isRead = method === 'GET' || method === 'HEAD';
|
|
77
77
|
if (path === '/api/v1/me' && isRead)
|
|
@@ -117,6 +117,13 @@ export function createScopeAllowlist({ read, write, dataExport, rules }) {
|
|
|
117
117
|
const team = teamAccess(path, method);
|
|
118
118
|
if (team !== null)
|
|
119
119
|
return team === 'read' ? read : write;
|
|
120
|
+
// Webhooks (PRDCT-3482): the catalog is a read any key may make; the
|
|
121
|
+
// family itself, reads included, needs the tool's dedicated scope, and
|
|
122
|
+
// closes entirely when the tool declares none.
|
|
123
|
+
if (path === '/api/v1/webhooks/events' && isRead)
|
|
124
|
+
return read;
|
|
125
|
+
if (path === '/api/v1/webhooks' || path.startsWith('/api/v1/webhooks/'))
|
|
126
|
+
return webhooks ?? null;
|
|
120
127
|
for (const rule of rules) {
|
|
121
128
|
const needed = rule(path, method, isRead);
|
|
122
129
|
if (needed !== null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/middleware/scopes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Context, MiddlewareHandler } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* The dashboard build, served so the browser keeps it (PRDCT-3584).
|
|
4
|
+
*
|
|
5
|
+
* Before this middleware the SPA's files went out with no `Cache-Control`,
|
|
6
|
+
* no validator and no compression: every visit to a tool re-downloaded the
|
|
7
|
+
* whole dashboard (about 1.2 MB of JavaScript in a hundred files on the
|
|
8
|
+
* team stack, measured 2026-10-17), and the splash the person stared at
|
|
9
|
+
* was that download. Two rules fix it, both on the build's own shape:
|
|
10
|
+
*
|
|
11
|
+
* - `/_app/immutable/*` is CONTENT-HASHED by SvelteKit: a changed file has a
|
|
12
|
+
* new name, so the cached copy can never be stale. It is served with
|
|
13
|
+
* `public, max-age=31536000, immutable`: a second visit transfers none of
|
|
14
|
+
* it. Every other static path (the HTML, the icons, the manifest) is
|
|
15
|
+
* `no-cache`: kept, but revalidated on every use, so a release reaches
|
|
16
|
+
* the browser on its next load.
|
|
17
|
+
* - A `.br`, `.zst` or `.gz` sibling written at build time (the dashboard's
|
|
18
|
+
* adapter has `precompress: true`) is served in place of the file when
|
|
19
|
+
* the request accepts that encoding, with `Content-Encoding` and `Vary:
|
|
20
|
+
* Accept-Encoding`. The server compresses nothing at runtime, and the
|
|
21
|
+
* API is untouched: this middleware runs on the static files alone,
|
|
22
|
+
* after every credentialed route has answered.
|
|
23
|
+
*
|
|
24
|
+
* Nothing here is a security input. `immutable` never reaches a response
|
|
25
|
+
* that is not a hashed asset, so no user-bearing answer can be cached; the
|
|
26
|
+
* authenticated JSON keeps its `no-store` (middleware/no-store.ts).
|
|
27
|
+
*/
|
|
28
|
+
/** The content-hashed prefix of a SvelteKit build. */
|
|
29
|
+
export declare const IMMUTABLE_ASSET_PREFIX = "/_app/immutable/";
|
|
30
|
+
export declare const IMMUTABLE_CACHE_CONTROL = "public, max-age=31536000, immutable";
|
|
31
|
+
export declare const REVALIDATE_CACHE_CONTROL = "no-cache";
|
|
32
|
+
/** The `Cache-Control` a static path of the build is served with. */
|
|
33
|
+
export declare function staticCacheControl(requestPath: string): string;
|
|
34
|
+
export interface StaticAssetsOptions {
|
|
35
|
+
/** The directory holding the built dashboard (`index.html`, `_app/`). */
|
|
36
|
+
publicDir: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Serve `publicDir` with the cache policy above and the precompressed
|
|
40
|
+
* siblings. Falls through (`next()`) on a path that is not a file there, so
|
|
41
|
+
* the SPA fallback behind it answers the application routes.
|
|
42
|
+
*/
|
|
43
|
+
export declare function staticAssets(options: StaticAssetsOptions): MiddlewareHandler;
|
|
44
|
+
/** The encodings a request accepts, read from `Accept-Encoding` with any `;q=` weight ignored. */
|
|
45
|
+
export declare function acceptedEncodings(header: string | undefined): Set<string>;
|
|
46
|
+
export interface SpaFallback {
|
|
47
|
+
/** The strong ETag of the plain HTML (the variants derive theirs from it). */
|
|
48
|
+
readonly etag: string;
|
|
49
|
+
/** Answer the application's HTML for a route the build has no file for. */
|
|
50
|
+
respond(c: Context): Response;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The application's HTML under any route the build has no file for, served
|
|
54
|
+
* with the two things the bare `c.html()` lacked (the tier 1 verifier's two
|
|
55
|
+
* caveats, PRDCT-3584): a strong `ETag` so `no-cache` means "revalidate"
|
|
56
|
+
* (a `304` costs no bytes), and the `.br` / `.gz` sibling of `index.html`
|
|
57
|
+
* when the build wrote one and the request accepts it, so a deep link costs
|
|
58
|
+
* the same as the root on a front that compresses nothing (Cloud Run, a
|
|
59
|
+
* self-hosted instance with no proxy). The HTML is read once at boot, like
|
|
60
|
+
* `indexHtml` itself.
|
|
61
|
+
*/
|
|
62
|
+
export declare function loadSpaFallback(publicDir: string, html: string): Promise<SpaFallback>;
|
|
63
|
+
//# sourceMappingURL=static-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-assets.d.ts","sourceRoot":"","sources":["../../src/middleware/static-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAMvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,uBAAuB,wCAAwC,CAAC;AAC7E,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,qEAAqE;AACrE,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,iBAAiB,CAgB5E;AAWD,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAOzE;AAED,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoC3F"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { serveStatic } from '@hono/node-server/serve-static';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import { readFile } from 'node:fs/promises';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* The dashboard build, served so the browser keeps it (PRDCT-3584).
|
|
7
|
+
*
|
|
8
|
+
* Before this middleware the SPA's files went out with no `Cache-Control`,
|
|
9
|
+
* no validator and no compression: every visit to a tool re-downloaded the
|
|
10
|
+
* whole dashboard (about 1.2 MB of JavaScript in a hundred files on the
|
|
11
|
+
* team stack, measured 2026-10-17), and the splash the person stared at
|
|
12
|
+
* was that download. Two rules fix it, both on the build's own shape:
|
|
13
|
+
*
|
|
14
|
+
* - `/_app/immutable/*` is CONTENT-HASHED by SvelteKit: a changed file has a
|
|
15
|
+
* new name, so the cached copy can never be stale. It is served with
|
|
16
|
+
* `public, max-age=31536000, immutable`: a second visit transfers none of
|
|
17
|
+
* it. Every other static path (the HTML, the icons, the manifest) is
|
|
18
|
+
* `no-cache`: kept, but revalidated on every use, so a release reaches
|
|
19
|
+
* the browser on its next load.
|
|
20
|
+
* - A `.br`, `.zst` or `.gz` sibling written at build time (the dashboard's
|
|
21
|
+
* adapter has `precompress: true`) is served in place of the file when
|
|
22
|
+
* the request accepts that encoding, with `Content-Encoding` and `Vary:
|
|
23
|
+
* Accept-Encoding`. The server compresses nothing at runtime, and the
|
|
24
|
+
* API is untouched: this middleware runs on the static files alone,
|
|
25
|
+
* after every credentialed route has answered.
|
|
26
|
+
*
|
|
27
|
+
* Nothing here is a security input. `immutable` never reaches a response
|
|
28
|
+
* that is not a hashed asset, so no user-bearing answer can be cached; the
|
|
29
|
+
* authenticated JSON keeps its `no-store` (middleware/no-store.ts).
|
|
30
|
+
*/
|
|
31
|
+
/** The content-hashed prefix of a SvelteKit build. */
|
|
32
|
+
export const IMMUTABLE_ASSET_PREFIX = '/_app/immutable/';
|
|
33
|
+
export const IMMUTABLE_CACHE_CONTROL = 'public, max-age=31536000, immutable';
|
|
34
|
+
export const REVALIDATE_CACHE_CONTROL = 'no-cache';
|
|
35
|
+
/** The `Cache-Control` a static path of the build is served with. */
|
|
36
|
+
export function staticCacheControl(requestPath) {
|
|
37
|
+
return requestPath.startsWith(IMMUTABLE_ASSET_PREFIX) ? IMMUTABLE_CACHE_CONTROL : REVALIDATE_CACHE_CONTROL;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Serve `publicDir` with the cache policy above and the precompressed
|
|
41
|
+
* siblings. Falls through (`next()`) on a path that is not a file there, so
|
|
42
|
+
* the SPA fallback behind it answers the application routes.
|
|
43
|
+
*/
|
|
44
|
+
export function staticAssets(options) {
|
|
45
|
+
const serve = serveStatic({ root: options.publicDir, precompressed: true });
|
|
46
|
+
return async (c, next) => {
|
|
47
|
+
// The application's HTML itself (`/`, `/index.html`) is the SPA
|
|
48
|
+
// fallback's to answer, with its validator and its sibling; the static
|
|
49
|
+
// server would hand it out with neither (verifier round 2).
|
|
50
|
+
if (c.req.path === '/' || c.req.path === '/index.html')
|
|
51
|
+
return next();
|
|
52
|
+
const res = await serve(c, next);
|
|
53
|
+
// serveStatic answers a Response for a file it found and the result of
|
|
54
|
+
// `next()` otherwise; only the file gets the policy.
|
|
55
|
+
if (res instanceof Response) {
|
|
56
|
+
res.headers.set('Cache-Control', staticCacheControl(c.req.path));
|
|
57
|
+
if (!res.headers.has('Vary'))
|
|
58
|
+
res.headers.set('Vary', 'Accept-Encoding');
|
|
59
|
+
}
|
|
60
|
+
return res;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// ── The SPA fallback ────────────────────────────────────────────────────────
|
|
64
|
+
/** The encodings a precompressed sibling may carry, in the order they are preferred. */
|
|
65
|
+
const FALLBACK_ENCODINGS = [
|
|
66
|
+
{ name: 'br', ext: '.br' },
|
|
67
|
+
{ name: 'gzip', ext: '.gz' }
|
|
68
|
+
];
|
|
69
|
+
/** The encodings a request accepts, read from `Accept-Encoding` with any `;q=` weight ignored. */
|
|
70
|
+
export function acceptedEncodings(header) {
|
|
71
|
+
return new Set((header ?? '')
|
|
72
|
+
.split(',')
|
|
73
|
+
.map((part) => part.split(';')[0].trim().toLowerCase())
|
|
74
|
+
.filter(Boolean));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The application's HTML under any route the build has no file for, served
|
|
78
|
+
* with the two things the bare `c.html()` lacked (the tier 1 verifier's two
|
|
79
|
+
* caveats, PRDCT-3584): a strong `ETag` so `no-cache` means "revalidate"
|
|
80
|
+
* (a `304` costs no bytes), and the `.br` / `.gz` sibling of `index.html`
|
|
81
|
+
* when the build wrote one and the request accepts it, so a deep link costs
|
|
82
|
+
* the same as the root on a front that compresses nothing (Cloud Run, a
|
|
83
|
+
* self-hosted instance with no proxy). The HTML is read once at boot, like
|
|
84
|
+
* `indexHtml` itself.
|
|
85
|
+
*/
|
|
86
|
+
export async function loadSpaFallback(publicDir, html) {
|
|
87
|
+
const plain = Buffer.from(html, 'utf8');
|
|
88
|
+
const etag = `"${createHash('sha256').update(plain).digest('base64url').slice(0, 27)}"`;
|
|
89
|
+
const variants = new Map();
|
|
90
|
+
for (const { name, ext } of FALLBACK_ENCODINGS) {
|
|
91
|
+
try {
|
|
92
|
+
variants.set(name, await readFile(join(publicDir, `index.html${ext}`)));
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// no sibling of that encoding: the plain HTML answers those requests
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
etag,
|
|
100
|
+
respond(c) {
|
|
101
|
+
const accepted = acceptedEncodings(c.req.header('accept-encoding'));
|
|
102
|
+
const encoding = FALLBACK_ENCODINGS.find((e) => accepted.has(e.name) && variants.has(e.name))?.name;
|
|
103
|
+
// One validator per representation: a cached brotli body is never
|
|
104
|
+
// confirmed against a plain one.
|
|
105
|
+
const variantEtag = encoding ? etag.replace(/"$/, `-${encoding}"`) : etag;
|
|
106
|
+
// The type rides the 304 too: the node server would otherwise stamp a
|
|
107
|
+
// text/plain default on it (verifier round 2), and RFC 9110 allows the
|
|
108
|
+
// 304 to repeat what the 200 carries.
|
|
109
|
+
const headers = {
|
|
110
|
+
'Cache-Control': REVALIDATE_CACHE_CONTROL,
|
|
111
|
+
'Content-Type': 'text/html; charset=utf-8',
|
|
112
|
+
ETag: variantEtag,
|
|
113
|
+
Vary: 'Accept-Encoding'
|
|
114
|
+
};
|
|
115
|
+
if (c.req.header('if-none-match') === variantEtag) {
|
|
116
|
+
return c.body(null, 304, headers);
|
|
117
|
+
}
|
|
118
|
+
if (encoding)
|
|
119
|
+
headers['Content-Encoding'] = encoding;
|
|
120
|
+
const body = encoding ? variants.get(encoding) : plain;
|
|
121
|
+
return c.body(new Uint8Array(body), 200, headers);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=static-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-assets.js","sourceRoot":"","sources":["../../src/middleware/static-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class SecretBoxError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export interface SecretBox {
|
|
5
|
+
seal(plain: string): string;
|
|
6
|
+
open(sealed: string): string;
|
|
7
|
+
}
|
|
8
|
+
/** `info` separates the boxes: two boxes of one instance with different infos never open each other's values. */
|
|
9
|
+
export declare function createSecretBox(authSecret: string, info: string): SecretBox;
|
|
10
|
+
//# sourceMappingURL=secret-box.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-box.d.ts","sourceRoot":"","sources":["../src/secret-box.ts"],"names":[],"mappings":"AA4BA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AAED,iHAAiH;AACjH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAmD3E"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, hkdfSync, randomBytes } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* A box for secrets the instance must read back (a signing secret it hands to
|
|
4
|
+
* a receiver, a refresh token it presents later): AES-256-GCM under a key
|
|
5
|
+
* derived from the instance's auth secret by HKDF-SHA256 with a caller-given
|
|
6
|
+
* `info`, so the database never holds them in the clear and a copy of the
|
|
7
|
+
* database alone opens nothing. A one-way secret (a password, an API key the
|
|
8
|
+
* instance only compares) never goes in here: it is hashed, not sealed.
|
|
9
|
+
*
|
|
10
|
+
* `info` separates the boxes: two boxes of one instance with different infos
|
|
11
|
+
* derive different keys, so a value sealed for one purpose never opens under
|
|
12
|
+
* another. Name it `<area>:<purpose>` and never change it once values are
|
|
13
|
+
* stored under it (they would no longer open).
|
|
14
|
+
*
|
|
15
|
+
* A sealed value reads `v1.<iv>.<tag>.<ciphertext>`, each part base64url: a
|
|
16
|
+
* fresh 12-byte IV per seal (two seals of one value differ), the 16-byte GCM
|
|
17
|
+
* tag, which `open` checks before it answers anything (a changed byte
|
|
18
|
+
* anywhere is refused, never decrypted to garbage). The version prefix lets a
|
|
19
|
+
* later key or cipher change read the old rows. Every refusal, a malformed
|
|
20
|
+
* string included, is a `SecretBoxError` and nothing else.
|
|
21
|
+
*/
|
|
22
|
+
const VERSION = 'v1';
|
|
23
|
+
const IV_BYTES = 12;
|
|
24
|
+
const TAG_BYTES = 16;
|
|
25
|
+
const KEY_BYTES = 32;
|
|
26
|
+
const BASE64URL = /^[A-Za-z0-9_-]*$/;
|
|
27
|
+
export class SecretBoxError extends Error {
|
|
28
|
+
constructor(message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.name = 'SecretBoxError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** `info` separates the boxes: two boxes of one instance with different infos never open each other's values. */
|
|
34
|
+
export function createSecretBox(authSecret, info) {
|
|
35
|
+
if (typeof authSecret !== 'string' || authSecret.length === 0) {
|
|
36
|
+
throw new SecretBoxError('the secret box needs the auth secret');
|
|
37
|
+
}
|
|
38
|
+
if (typeof info !== 'string' || info.length === 0) {
|
|
39
|
+
throw new SecretBoxError('the secret box needs an info string that names its purpose');
|
|
40
|
+
}
|
|
41
|
+
const key = Buffer.from(hkdfSync('sha256', authSecret, Buffer.alloc(0), info, KEY_BYTES));
|
|
42
|
+
return {
|
|
43
|
+
seal(plain) {
|
|
44
|
+
if (typeof plain !== 'string')
|
|
45
|
+
throw new SecretBoxError('the secret box seals strings only');
|
|
46
|
+
const iv = randomBytes(IV_BYTES);
|
|
47
|
+
const cipher = createCipheriv('aes-256-gcm', key, iv, { authTagLength: TAG_BYTES });
|
|
48
|
+
const ciphertext = Buffer.concat([cipher.update(plain, 'utf8'), cipher.final()]);
|
|
49
|
+
const tag = cipher.getAuthTag();
|
|
50
|
+
return [
|
|
51
|
+
VERSION,
|
|
52
|
+
iv.toString('base64url'),
|
|
53
|
+
tag.toString('base64url'),
|
|
54
|
+
ciphertext.toString('base64url')
|
|
55
|
+
].join('.');
|
|
56
|
+
},
|
|
57
|
+
open(sealed) {
|
|
58
|
+
if (typeof sealed !== 'string')
|
|
59
|
+
throw new SecretBoxError('not a sealed value');
|
|
60
|
+
const parts = sealed.split('.');
|
|
61
|
+
if (parts.length !== 4 || parts[0] !== VERSION) {
|
|
62
|
+
throw new SecretBoxError('not a sealed value of this version');
|
|
63
|
+
}
|
|
64
|
+
const [, ivPart, tagPart, ciphertextPart] = parts;
|
|
65
|
+
// Buffer.from skips characters outside the alphabet silently: refuse them
|
|
66
|
+
// here, so only the one spelling of a sealed value opens.
|
|
67
|
+
if (!BASE64URL.test(ivPart) || !BASE64URL.test(tagPart) || !BASE64URL.test(ciphertextPart)) {
|
|
68
|
+
throw new SecretBoxError('a sealed value with a part that is not base64url');
|
|
69
|
+
}
|
|
70
|
+
const iv = Buffer.from(ivPart, 'base64url');
|
|
71
|
+
const tag = Buffer.from(tagPart, 'base64url');
|
|
72
|
+
const ciphertext = Buffer.from(ciphertextPart, 'base64url');
|
|
73
|
+
if (iv.length !== IV_BYTES || tag.length !== TAG_BYTES) {
|
|
74
|
+
throw new SecretBoxError('a sealed value with a malformed iv or tag');
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
const decipher = createDecipheriv('aes-256-gcm', key, iv, { authTagLength: TAG_BYTES });
|
|
78
|
+
decipher.setAuthTag(tag);
|
|
79
|
+
return Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString('utf8');
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
throw new SecretBoxError('the sealed value does not open under this key');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=secret-box.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-box.js","sourceRoot":"","sources":["../src/secret-box.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,14 @@ export interface ChassisTestHost<TResult extends BootResultLike, TOverrides> {
|
|
|
79
79
|
* scope) that answers 200 to any principal the gates let through.
|
|
80
80
|
*/
|
|
81
81
|
probeRoute: string;
|
|
82
|
+
/**
|
|
83
|
+
* The host's tool is the chassis's minimal test tool, which declares the
|
|
84
|
+
* `thing` subject and the `thing.created` / `thing.deleted` events the
|
|
85
|
+
* webhooks suite emits (PRDCT-3482). A real tool leaves it unset: the
|
|
86
|
+
* suite's delivery scenarios skip under its host, and the tool proves its
|
|
87
|
+
* own events in its own suite.
|
|
88
|
+
*/
|
|
89
|
+
webhooks?: boolean;
|
|
82
90
|
}
|
|
83
91
|
/**
|
|
84
92
|
* End a pool and wait until every one of its clients has REALLY closed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmC,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,MAAe,CAAC,CAAC,0CAA0C;IAClE,QAAQ,GAAG,IAAI,CAAC;IAChB,IAAI,GAAmB,EAAE,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,OAAqB;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;AACnD,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/testing/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAmC,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAG,MAAe,CAAC,CAAC,0CAA0C;IAClE,QAAQ,GAAG,IAAI,CAAC;IAChB,IAAI,GAAmB,EAAE,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,OAAqB;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAE1D,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;AACnD,CAAC;AAqED,wGAAwG;AACxG,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,YAAoB,qBAAqB;IACpF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA8B,EAAE,EAAE;QAClD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc;YAAE,MAAM,GAAG,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3B,IAAI,KAAiC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC3C,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACrB,IAAI,EAAE,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,OAAO,CAAC,IAAI,CACV,YAAY,IAAI,wCAAwC,SAAS,mCAAmC,CACrG,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACjB,MAAM,MAAM,CAAC;IACb,YAAY,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAiC;IAMjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB;YACE,YAAY,EAAE,gBAAgB;YAC9B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,0DAA0D;YACvE,WAAW;YACX,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,OAAO;YAClB,eAAe,EAAE,uBAAuB;YACxC,oEAAoE;YACpE,uCAAuC;YACvC,WAAW,EAAE,MAAM;YACnB,qEAAqE;YACrE,mEAAmE;YACnE,wCAAwC;YACxC,yBAAyB,EAAE,QAAQ;YACnC,oBAAoB,EAAE,OAAO;YAC7B,GAAG,QAAQ;SACZ,EACD,SAAS,CACV,CAAC;QACF,OAAO;YACL,GAAG,MAAM;YACT,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACzC,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAsB,EAAE,EAAU;IACxE,IAAI,GAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,IAAI,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,MAAM,IAAI,KAAK,CAAC,yCAAyC,EAAE,eAAe,CAAC,CAAC;AAC9E,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAqC,EAAE,IAAY;IACtF,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,gBAAwB;IACxD,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAC5B,6DAA6D,CAC9D,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,2BAA2B,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAa;IAC1C,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACpE,OAAO,SAAS;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -29,6 +29,8 @@ import type { McpToolDefinition } from './mcp/server.js';
|
|
|
29
29
|
import type { BucketDeclaration, ClientIpFn, RateLimiters } from './middleware/rate-limit.js';
|
|
30
30
|
import type { Otel } from './observability/otel.js';
|
|
31
31
|
import type { EventBus } from './platform/events.js';
|
|
32
|
+
import type { WebhookCatalogDeclaration, WebhookDials, WebhookEmitter, WebhookService } from './webhooks/index.js';
|
|
33
|
+
import type { SafeFetchOptions } from './webhooks/safe-fetch.js';
|
|
32
34
|
import type { PlatformRegistry } from './platform/registry.js';
|
|
33
35
|
import type { RuntimeState } from './state.js';
|
|
34
36
|
import type { StorageDriver } from './storage/driver.js';
|
|
@@ -62,6 +64,13 @@ export interface ServiceCore<TEnvShape extends z.ZodRawShape, TEvents, TToolOver
|
|
|
62
64
|
authSecret: string;
|
|
63
65
|
/** One-off timers on the queues the `jobs` slot declared (`jobs/timers.ts`): a service arms and withdraws them. */
|
|
64
66
|
timers: Timers;
|
|
67
|
+
/**
|
|
68
|
+
* The outbound webhooks' emitter (PRDCT-3482): a service calls
|
|
69
|
+
* `webhooks.emit(tx, …)` INSIDE the transaction of the write it reports,
|
|
70
|
+
* with a type the tool's `webhooks` slot declared. Costs one lookup when
|
|
71
|
+
* no endpoint of the workspace listens.
|
|
72
|
+
*/
|
|
73
|
+
webhooks: WebhookEmitter;
|
|
65
74
|
/** The tool's own test seams (`BootOverrides.tool`); undefined in production. */
|
|
66
75
|
overrides: TToolOverrides | undefined;
|
|
67
76
|
}
|
|
@@ -293,6 +302,15 @@ export interface ToolDefinition<TEnvShape extends z.ZodRawShape, TDomain, TBucke
|
|
|
293
302
|
* Absent = nothing declared: no route gated, empty lists in discovery.
|
|
294
303
|
*/
|
|
295
304
|
entitlements?: (env: ToolEnv<TEnvShape>, ctx: EntitlementsContext<TDomain>) => ToolEntitlementDeclaration;
|
|
305
|
+
/**
|
|
306
|
+
* Slot 25: the tool's event catalog for outbound webhooks (PRDCT-3482):
|
|
307
|
+
* the subjects an endpoint may filter on (each with the envelope field it
|
|
308
|
+
* is written under) and the event types the tool emits, each with the zod
|
|
309
|
+
* schema of its `data`. Checked at boot (`buildWebhookCatalog`), merged
|
|
310
|
+
* with the chassis's own events, served on `GET /webhooks/events`. Absent
|
|
311
|
+
* = the chassis events alone; the routes exist on every instance.
|
|
312
|
+
*/
|
|
313
|
+
webhooks?: WebhookCatalogDeclaration;
|
|
296
314
|
}
|
|
297
315
|
/**
|
|
298
316
|
* What the `entitlements` slot receives beside the env (PRDCT-2634): the
|
|
@@ -356,6 +374,10 @@ export interface BootOverrides<TToolOverrides = never> {
|
|
|
356
374
|
hubCreateOrg?: HubOrgCreator;
|
|
357
375
|
/** The tool's own test seams, handed to its `services` slot as `core.overrides`. */
|
|
358
376
|
tool?: TToolOverrides;
|
|
377
|
+
/** Shrinks the webhooks' retry budget, hold, auto-disable streak, listener cache and overlap for the tests. */
|
|
378
|
+
webhookDials?: Partial<WebhookDials> | undefined;
|
|
379
|
+
/** The guarded fetch's seams (a lookup, a transport) so a suite delivers to a loopback receiver. */
|
|
380
|
+
webhookFetch?: SafeFetchOptions | undefined;
|
|
359
381
|
}
|
|
360
382
|
export interface BootResult<TEnvShape extends z.ZodRawShape, TDomain, TEvents = {}> {
|
|
361
383
|
app: Hono;
|
|
@@ -371,6 +393,8 @@ export interface BootResult<TEnvShape extends z.ZodRawShape, TDomain, TEvents =
|
|
|
371
393
|
email: EmailDriver;
|
|
372
394
|
otel: Otel;
|
|
373
395
|
authSecret: string;
|
|
396
|
+
/** The outbound webhooks (PRDCT-3482): the emitter, the fan-out and the delivery, for a suite to drive directly. */
|
|
397
|
+
webhooks: WebhookService;
|
|
374
398
|
}
|
|
375
399
|
/**
|
|
376
400
|
* The boot-time half of "identity is required": a definition that reached the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-definition.d.ts","sourceRoot":"","sources":["../src/tool-definition.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-definition.d.ts","sourceRoot":"","sources":["../src/tool-definition.ts"],"names":[],"mappings":"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"}
|