was-teaching-server 0.9.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 +1432 -0
- package/LICENSE +661 -0
- package/README.md +305 -0
- package/common/css/materialize.1.0.0.min.css +13 -0
- package/dist/auth-header-hooks.d.ts +84 -0
- package/dist/auth-header-hooks.d.ts.map +1 -0
- package/dist/auth-header-hooks.js +136 -0
- package/dist/auth-header-hooks.js.map +1 -0
- package/dist/authorize.d.ts +45 -0
- package/dist/authorize.d.ts.map +1 -0
- package/dist/authorize.js +76 -0
- package/dist/authorize.js.map +1 -0
- package/dist/backends/filesystem.d.ts +1179 -0
- package/dist/backends/filesystem.d.ts.map +1 -0
- package/dist/backends/filesystem.js +2727 -0
- package/dist/backends/filesystem.js.map +1 -0
- package/dist/backends/postgres.d.ts +833 -0
- package/dist/backends/postgres.d.ts.map +1 -0
- package/dist/backends/postgres.js +2164 -0
- package/dist/backends/postgres.js.map +1 -0
- package/dist/backends/postgresSchema.d.ts +36 -0
- package/dist/backends/postgresSchema.d.ts.map +1 -0
- package/dist/backends/postgresSchema.js +203 -0
- package/dist/backends/postgresSchema.js.map +1 -0
- package/dist/config.default.d.ts +360 -0
- package/dist/config.default.d.ts.map +1 -0
- package/dist/config.default.js +493 -0
- package/dist/config.default.js.map +1 -0
- package/dist/corsProxy.d.ts +45 -0
- package/dist/corsProxy.d.ts.map +1 -0
- package/dist/corsProxy.js +278 -0
- package/dist/corsProxy.js.map +1 -0
- package/dist/digest.d.ts +45 -0
- package/dist/digest.d.ts.map +1 -0
- package/dist/digest.js +174 -0
- package/dist/digest.js.map +1 -0
- package/dist/errors.d.ts +654 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +960 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/atomicFile.d.ts +61 -0
- package/dist/lib/atomicFile.d.ts.map +1 -0
- package/dist/lib/atomicFile.js +150 -0
- package/dist/lib/atomicFile.js.map +1 -0
- package/dist/lib/backendRegistry.d.ts +59 -0
- package/dist/lib/backendRegistry.d.ts.map +1 -0
- package/dist/lib/backendRegistry.js +92 -0
- package/dist/lib/backendRegistry.js.map +1 -0
- package/dist/lib/backendUsage.d.ts +28 -0
- package/dist/lib/backendUsage.d.ts.map +1 -0
- package/dist/lib/backendUsage.js +55 -0
- package/dist/lib/backendUsage.js.map +1 -0
- package/dist/lib/backends.d.ts +142 -0
- package/dist/lib/backends.d.ts.map +1 -0
- package/dist/lib/backends.js +272 -0
- package/dist/lib/backends.js.map +1 -0
- package/dist/lib/blindedIndex.d.ts +156 -0
- package/dist/lib/blindedIndex.d.ts.map +1 -0
- package/dist/lib/blindedIndex.js +338 -0
- package/dist/lib/blindedIndex.js.map +1 -0
- package/dist/lib/collectionDescription.d.ts +33 -0
- package/dist/lib/collectionDescription.d.ts.map +1 -0
- package/dist/lib/collectionDescription.js +21 -0
- package/dist/lib/collectionDescription.js.map +1 -0
- package/dist/lib/cursor.d.ts +18 -0
- package/dist/lib/cursor.d.ts.map +1 -0
- package/dist/lib/cursor.js +50 -0
- package/dist/lib/cursor.js.map +1 -0
- package/dist/lib/edvEnvelope.d.ts +50 -0
- package/dist/lib/edvEnvelope.d.ts.map +1 -0
- package/dist/lib/edvEnvelope.js +106 -0
- package/dist/lib/edvEnvelope.js.map +1 -0
- package/dist/lib/encryption.d.ts +192 -0
- package/dist/lib/encryption.d.ts.map +1 -0
- package/dist/lib/encryption.js +383 -0
- package/dist/lib/encryption.js.map +1 -0
- package/dist/lib/etag.d.ts +33 -0
- package/dist/lib/etag.d.ts.map +1 -0
- package/dist/lib/etag.js +36 -0
- package/dist/lib/etag.js.map +1 -0
- package/dist/lib/exportManifest.d.ts +29 -0
- package/dist/lib/exportManifest.d.ts.map +1 -0
- package/dist/lib/exportManifest.js +77 -0
- package/dist/lib/exportManifest.js.map +1 -0
- package/dist/lib/importTar.d.ts +81 -0
- package/dist/lib/importTar.d.ts.map +1 -0
- package/dist/lib/importTar.js +301 -0
- package/dist/lib/importTar.js.map +1 -0
- package/dist/lib/isJson.d.ts +16 -0
- package/dist/lib/isJson.d.ts.map +1 -0
- package/dist/lib/isJson.js +17 -0
- package/dist/lib/isJson.js.map +1 -0
- package/dist/lib/keyEpoch.d.ts +38 -0
- package/dist/lib/keyEpoch.d.ts.map +1 -0
- package/dist/lib/keyEpoch.js +75 -0
- package/dist/lib/keyEpoch.js.map +1 -0
- package/dist/lib/keyedMutex.d.ts +28 -0
- package/dist/lib/keyedMutex.d.ts.map +1 -0
- package/dist/lib/keyedMutex.js +45 -0
- package/dist/lib/keyedMutex.js.map +1 -0
- package/dist/lib/kmsModule.d.ts +62 -0
- package/dist/lib/kmsModule.d.ts.map +1 -0
- package/dist/lib/kmsModule.js +327 -0
- package/dist/lib/kmsModule.js.map +1 -0
- package/dist/lib/kmsRecordCipher.d.ts +82 -0
- package/dist/lib/kmsRecordCipher.d.ts.map +1 -0
- package/dist/lib/kmsRecordCipher.js +226 -0
- package/dist/lib/kmsRecordCipher.js.map +1 -0
- package/dist/lib/pagination.d.ts +19 -0
- package/dist/lib/pagination.d.ts.map +1 -0
- package/dist/lib/pagination.js +21 -0
- package/dist/lib/pagination.js.map +1 -0
- package/dist/lib/paths.d.ts +273 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/paths.js +270 -0
- package/dist/lib/paths.js.map +1 -0
- package/dist/lib/preconditions.d.ts +65 -0
- package/dist/lib/preconditions.d.ts.map +1 -0
- package/dist/lib/preconditions.js +112 -0
- package/dist/lib/preconditions.js.map +1 -0
- package/dist/lib/resourceFileName.d.ts +41 -0
- package/dist/lib/resourceFileName.d.ts.map +1 -0
- package/dist/lib/resourceFileName.js +58 -0
- package/dist/lib/resourceFileName.js.map +1 -0
- package/dist/lib/revocations.d.ts +49 -0
- package/dist/lib/revocations.d.ts.map +1 -0
- package/dist/lib/revocations.js +86 -0
- package/dist/lib/revocations.js.map +1 -0
- package/dist/lib/validateDid.d.ts +19 -0
- package/dist/lib/validateDid.d.ts.map +1 -0
- package/dist/lib/validateDid.js +35 -0
- package/dist/lib/validateDid.js.map +1 -0
- package/dist/lib/validateId.d.ts +66 -0
- package/dist/lib/validateId.d.ts.map +1 -0
- package/dist/lib/validateId.js +126 -0
- package/dist/lib/validateId.js.map +1 -0
- package/dist/plugin.d.ts +115 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +134 -0
- package/dist/plugin.js.map +1 -0
- package/dist/policy.d.ts +78 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +115 -0
- package/dist/policy.js.map +1 -0
- package/dist/provisioning.d.ts +38 -0
- package/dist/provisioning.d.ts.map +1 -0
- package/dist/provisioning.js +72 -0
- package/dist/provisioning.js.map +1 -0
- package/dist/requests/BackendRequest.d.ts +61 -0
- package/dist/requests/BackendRequest.d.ts.map +1 -0
- package/dist/requests/BackendRequest.js +152 -0
- package/dist/requests/BackendRequest.js.map +1 -0
- package/dist/requests/CollectionRequest.d.ts +234 -0
- package/dist/requests/CollectionRequest.d.ts.map +1 -0
- package/dist/requests/CollectionRequest.js +705 -0
- package/dist/requests/CollectionRequest.js.map +1 -0
- package/dist/requests/KeyRequest.d.ts +115 -0
- package/dist/requests/KeyRequest.d.ts.map +1 -0
- package/dist/requests/KeyRequest.js +468 -0
- package/dist/requests/KeyRequest.js.map +1 -0
- package/dist/requests/KeystoreRequest.d.ts +99 -0
- package/dist/requests/KeystoreRequest.d.ts.map +1 -0
- package/dist/requests/KeystoreRequest.js +247 -0
- package/dist/requests/KeystoreRequest.js.map +1 -0
- package/dist/requests/PolicyRequest.d.ts +53 -0
- package/dist/requests/PolicyRequest.d.ts.map +1 -0
- package/dist/requests/PolicyRequest.js +124 -0
- package/dist/requests/PolicyRequest.js.map +1 -0
- package/dist/requests/ResourceRequest.d.ts +134 -0
- package/dist/requests/ResourceRequest.d.ts.map +1 -0
- package/dist/requests/ResourceRequest.js +548 -0
- package/dist/requests/ResourceRequest.js.map +1 -0
- package/dist/requests/RevocationRequest.d.ts +67 -0
- package/dist/requests/RevocationRequest.d.ts.map +1 -0
- package/dist/requests/RevocationRequest.js +187 -0
- package/dist/requests/RevocationRequest.js.map +1 -0
- package/dist/requests/SpaceRequest.d.ts +204 -0
- package/dist/requests/SpaceRequest.d.ts.map +1 -0
- package/dist/requests/SpaceRequest.js +520 -0
- package/dist/requests/SpaceRequest.js.map +1 -0
- package/dist/requests/SpacesRepositoryRequest.d.ts +50 -0
- package/dist/requests/SpacesRepositoryRequest.d.ts.map +1 -0
- package/dist/requests/SpacesRepositoryRequest.js +159 -0
- package/dist/requests/SpacesRepositoryRequest.js.map +1 -0
- package/dist/requests/collectionContext.d.ts +21 -0
- package/dist/requests/collectionContext.d.ts.map +1 -0
- package/dist/requests/collectionContext.js +30 -0
- package/dist/requests/collectionContext.js.map +1 -0
- package/dist/requests/controllerConsent.d.ts +58 -0
- package/dist/requests/controllerConsent.d.ts.map +1 -0
- package/dist/requests/controllerConsent.js +73 -0
- package/dist/requests/controllerConsent.js.map +1 -0
- package/dist/requests/keystoreContext.d.ts +68 -0
- package/dist/requests/keystoreContext.d.ts.map +1 -0
- package/dist/requests/keystoreContext.js +87 -0
- package/dist/requests/keystoreContext.js.map +1 -0
- package/dist/requests/resourceInput.d.ts +19 -0
- package/dist/requests/resourceInput.d.ts.map +1 -0
- package/dist/requests/resourceInput.js +102 -0
- package/dist/requests/resourceInput.js.map +1 -0
- package/dist/requests/spaceContext.d.ts +127 -0
- package/dist/requests/spaceContext.d.ts.map +1 -0
- package/dist/requests/spaceContext.js +201 -0
- package/dist/requests/spaceContext.js.map +1 -0
- package/dist/routes.d.ts +55 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +306 -0
- package/dist/routes.js.map +1 -0
- package/dist/server.d.ts +20 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +60 -0
- package/dist/server.js.map +1 -0
- package/dist/start.d.ts +7 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +61 -0
- package/dist/start.js.map +1 -0
- package/dist/storage.d.ts +29 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +47 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +915 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/views/home.hbs +9 -0
- package/dist/views/templates/main.hbs +12 -0
- package/dist/zcap.d.ts +267 -0
- package/dist/zcap.d.ts.map +1 -0
- package/dist/zcap.js +478 -0
- package/dist/zcap.js.map +1 -0
- package/package.json +109 -0
- package/src/auth-header-hooks.ts +163 -0
- package/src/authorize.ts +117 -0
- package/src/backends/filesystem.ts +3626 -0
- package/src/backends/postgres.ts +3073 -0
- package/src/backends/postgresSchema.ts +231 -0
- package/src/config.default.ts +657 -0
- package/src/corsProxy.ts +326 -0
- package/src/declarations.d.ts +28 -0
- package/src/digest.ts +223 -0
- package/src/errors.ts +1122 -0
- package/src/index.ts +21 -0
- package/src/lib/atomicFile.ts +176 -0
- package/src/lib/backendRegistry.ts +139 -0
- package/src/lib/backendUsage.ts +79 -0
- package/src/lib/backends.ts +351 -0
- package/src/lib/blindedIndex.ts +466 -0
- package/src/lib/collectionDescription.ts +43 -0
- package/src/lib/cursor.ts +52 -0
- package/src/lib/edvEnvelope.ts +120 -0
- package/src/lib/encryption.ts +472 -0
- package/src/lib/etag.ts +40 -0
- package/src/lib/exportManifest.ts +115 -0
- package/src/lib/importTar.ts +381 -0
- package/src/lib/isJson.ts +18 -0
- package/src/lib/keyEpoch.ts +89 -0
- package/src/lib/keyedMutex.ts +45 -0
- package/src/lib/kmsModule.ts +451 -0
- package/src/lib/kmsRecordCipher.ts +292 -0
- package/src/lib/pagination.ts +22 -0
- package/src/lib/paths.ts +382 -0
- package/src/lib/preconditions.ts +145 -0
- package/src/lib/resourceFileName.ts +69 -0
- package/src/lib/revocations.ts +116 -0
- package/src/lib/validateDid.ts +41 -0
- package/src/lib/validateId.ts +148 -0
- package/src/plugin.ts +288 -0
- package/src/policy.ts +176 -0
- package/src/provisioning.ts +98 -0
- package/src/requests/BackendRequest.ts +219 -0
- package/src/requests/CollectionRequest.ts +899 -0
- package/src/requests/KeyRequest.ts +617 -0
- package/src/requests/KeystoreRequest.ts +325 -0
- package/src/requests/PolicyRequest.ts +169 -0
- package/src/requests/ResourceRequest.ts +649 -0
- package/src/requests/RevocationRequest.ts +267 -0
- package/src/requests/SpaceRequest.ts +686 -0
- package/src/requests/SpacesRepositoryRequest.ts +194 -0
- package/src/requests/collectionContext.ts +41 -0
- package/src/requests/controllerConsent.ts +108 -0
- package/src/requests/keystoreContext.ts +124 -0
- package/src/requests/resourceInput.ts +118 -0
- package/src/requests/spaceContext.ts +311 -0
- package/src/routes.ts +420 -0
- package/src/server.ts +69 -0
- package/src/start.ts +71 -0
- package/src/storage.ts +60 -0
- package/src/types.ts +1016 -0
- package/src/views/home.hbs +9 -0
- package/src/views/templates/main.hbs +12 -0
- package/src/zcap.ts +657 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceRequest.js","sourceRoot":"","sources":["../../src/requests/ResourceRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request handlers for zcap revocation, one per route family:
|
|
3
|
+
* - POST /kms/keystores/:keystoreId/zcaps/revocations/:revocationId
|
|
4
|
+
* - POST /space/:spaceId/zcaps/revocations/:revocationId
|
|
5
|
+
*
|
|
6
|
+
* Both share one submission flow (`submitRevocation`), differing only in the
|
|
7
|
+
* scope the revocation aggregates under -- a keystore or a Space -- the action
|
|
8
|
+
* the invocation must carry (the webkms `write` vs the WAS route families'
|
|
9
|
+
* HTTP verb), and the `/kms` delegation policy the WAS families do not impose.
|
|
10
|
+
*
|
|
11
|
+
* The wire contract is protocol-fixed by ezcap-express's
|
|
12
|
+
* `authorizeZcapRevocation` / `@interop/webkms-client` (the conformance
|
|
13
|
+
* suite): `:revocationId` is the to-be-revoked capability's id, URL-encoded;
|
|
14
|
+
* the body is that capability, verbatim; success is 204 with no body. The
|
|
15
|
+
* submission is authorized under the dual-root rule -- an invocation rooted
|
|
16
|
+
* in the scope, or in the revocation URL itself, whose synthesized root is
|
|
17
|
+
* controlled by every controller in the to-be-revoked capability's (fully
|
|
18
|
+
* verified) chain -- so a delegee can revoke its own zcap without holding a
|
|
19
|
+
* separate capability. Root zcaps cannot be revoked. The stored revocation is
|
|
20
|
+
* consulted by the chain-inspection hook on every subsequent verification
|
|
21
|
+
* rooted in that scope (`lib/revocations.ts`).
|
|
22
|
+
*/
|
|
23
|
+
import type { FastifyReply, FastifyRequest } from 'fastify';
|
|
24
|
+
export declare class RevocationRequest {
|
|
25
|
+
/**
|
|
26
|
+
* POST /kms/keystores/:keystoreId/zcaps/revocations/:revocationId
|
|
27
|
+
* Revoke a capability delegated from a keystore. Carries the unified `/kms`
|
|
28
|
+
* delegation policy, and the webkms `write` action. Responds 204, no body; a
|
|
29
|
+
* concurrent duplicate insert is the 409 `DuplicateRevocationError`.
|
|
30
|
+
*
|
|
31
|
+
* @param request {import('fastify').FastifyRequest}
|
|
32
|
+
* @param reply {import('fastify').FastifyReply}
|
|
33
|
+
* @returns {Promise<FastifyReply>}
|
|
34
|
+
*/
|
|
35
|
+
static post(request: FastifyRequest<{
|
|
36
|
+
Params: {
|
|
37
|
+
keystoreId: string;
|
|
38
|
+
revocationId: string;
|
|
39
|
+
};
|
|
40
|
+
Body: Record<string, unknown>;
|
|
41
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
42
|
+
/**
|
|
43
|
+
* POST /space/:spaceId/zcaps/revocations/:revocationId
|
|
44
|
+
* Revoke a capability delegated from a Space -- the WAS-route sibling of
|
|
45
|
+
* `post`, scoped to the Space rather than a keystore. The revoked capability
|
|
46
|
+
* is rejected from then on wherever a Space-rooted chain is verified: the
|
|
47
|
+
* write/privileged routes (`fetchSpaceAndVerify`) and the capability leg of
|
|
48
|
+
* the read routes (`authorize`). The invoked action is the HTTP verb, since
|
|
49
|
+
* WAS capabilities are scoped by HTTP method. No delegation-policy caps
|
|
50
|
+
* apply, matching the rest of the WAS route families.
|
|
51
|
+
*
|
|
52
|
+
* Responds 204, no body; a concurrent duplicate insert is the 409
|
|
53
|
+
* `DuplicateRevocationError`.
|
|
54
|
+
*
|
|
55
|
+
* @param request {import('fastify').FastifyRequest}
|
|
56
|
+
* @param reply {import('fastify').FastifyReply}
|
|
57
|
+
* @returns {Promise<FastifyReply>}
|
|
58
|
+
*/
|
|
59
|
+
static postSpace(request: FastifyRequest<{
|
|
60
|
+
Params: {
|
|
61
|
+
spaceId: string;
|
|
62
|
+
revocationId: string;
|
|
63
|
+
};
|
|
64
|
+
Body: Record<string, unknown>;
|
|
65
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=RevocationRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RevocationRequest.d.ts","sourceRoot":"","sources":["../../src/requests/RevocationRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkK3D,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;WACU,IAAI,CACf,OAAO,EAAE,cAAc,CAAC;QACtB,MAAM,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;QACpD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9B,CAAC,EACF,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC;IAsBxB;;;;;;;;;;;;;;;;OAgBG;WACU,SAAS,CACpB,OAAO,EAAE,cAAc,CAAC;QACtB,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAA;QACjD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC9B,CAAC,EACF,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC;CAoBzB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { handleRevocationInvocationVerify, verifyRevocationChain } from '../zcap.js';
|
|
2
|
+
import { revocationChainInspector } from '../lib/revocations.js';
|
|
3
|
+
import { spacePath } from '../lib/paths.js';
|
|
4
|
+
import { KMS_MAX_CHAIN_LENGTH, KMS_MAX_DELEGATION_TTL } from '../config.default.js';
|
|
5
|
+
import { InvalidRevocationError } from '../errors.js';
|
|
6
|
+
import { fetchKeystore } from './keystoreContext.js';
|
|
7
|
+
import { fetchSpace } from './spaceContext.js';
|
|
8
|
+
/** One day in milliseconds -- the revocation record's GC margin. */
|
|
9
|
+
const ONE_DAY = 24 * 60 * 60 * 1000;
|
|
10
|
+
/**
|
|
11
|
+
* The scope-agnostic revocation submission: validate the body capability,
|
|
12
|
+
* verify its delegation chain (it must root in `rootTarget`), which yields
|
|
13
|
+
* the chain's controllers for the dual-root invocation check, then -- only
|
|
14
|
+
* once the invocation is authorized -- reject a chain containing an
|
|
15
|
+
* already-revoked link (resubmissions included) with the 400
|
|
16
|
+
* `InvalidRevocationError`, per ezcap-express, and store the record. The
|
|
17
|
+
* store check runs strictly AFTER the 404-masking authorization so an
|
|
18
|
+
* unauthorized caller cannot probe whether a capability is revoked (a
|
|
19
|
+
* 400-vs-404 oracle otherwise). The record expires one day after the
|
|
20
|
+
* capability itself does (from then on the capability is rejected on expiry
|
|
21
|
+
* alone; the margin covers clock-skew grace periods).
|
|
22
|
+
*
|
|
23
|
+
* @param options {object}
|
|
24
|
+
* @param options.request {FastifyRequest} supplies url, method, headers,
|
|
25
|
+
* logger, and `request.server` for serverUrl + storage
|
|
26
|
+
* @param options.revocationId {string} the URL's revocation id (the
|
|
27
|
+
* to-be-revoked capability's id, already URL-decoded by the router)
|
|
28
|
+
* @param options.scope {RevocationScope} the keystore or Space the record is
|
|
29
|
+
* stored under
|
|
30
|
+
* @param options.rootTarget {string} the scope's full URL (the required root
|
|
31
|
+
* of the revoked capability's chain, and one of the two accepted invocation
|
|
32
|
+
* roots)
|
|
33
|
+
* @param options.rootController {IDID} the scope's controller
|
|
34
|
+
* @param options.expectedAction {string} the action the invocation must
|
|
35
|
+
* carry (`write` on `/kms`, `POST` on the WAS route families)
|
|
36
|
+
* @param options.requestName {string} human-readable request name, used in
|
|
37
|
+
* error titles
|
|
38
|
+
* @param [options.maxChainLength] {number} max chain length, root included
|
|
39
|
+
* @param [options.maxDelegationTtl] {number} max delegated-zcap TTL (ms)
|
|
40
|
+
* @returns {Promise<void>}
|
|
41
|
+
*/
|
|
42
|
+
async function submitRevocation({ request, revocationId, scope, rootTarget, rootController, expectedAction, requestName, maxChainLength, maxDelegationTtl }) {
|
|
43
|
+
const { url, method, headers, body } = request;
|
|
44
|
+
const { serverUrl, storage } = request.server;
|
|
45
|
+
if (typeof body !== 'object' ||
|
|
46
|
+
body === null ||
|
|
47
|
+
Array.isArray(body) ||
|
|
48
|
+
typeof body.id !== 'string') {
|
|
49
|
+
throw new InvalidRevocationError({
|
|
50
|
+
detail: 'The revocation body must be a capability with a string "id".'
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const capabilityBody = body;
|
|
54
|
+
if (capabilityBody.id.startsWith('urn:zcap:root:')) {
|
|
55
|
+
throw new InvalidRevocationError({
|
|
56
|
+
detail: 'A root capability cannot be revoked.'
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// The submitted capability must be the one the URL names (the client
|
|
60
|
+
// frames the id with `encodeURIComponent` into the final path segment).
|
|
61
|
+
if (capabilityBody.id !== revocationId) {
|
|
62
|
+
throw new InvalidRevocationError({
|
|
63
|
+
detail: 'The capability "id" does not match the revocation URL.'
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
// Verify the to-be-revoked capability's own delegation chain (400 when
|
|
67
|
+
// invalid); its controllers feed the dual-root invocation check below.
|
|
68
|
+
// Structural only -- the revocation store is not consulted until after
|
|
69
|
+
// authorization (see below).
|
|
70
|
+
const { delegator, chainControllers, capabilities } = await verifyRevocationChain({
|
|
71
|
+
capability: capabilityBody,
|
|
72
|
+
rootTarget,
|
|
73
|
+
rootController,
|
|
74
|
+
maxChainLength,
|
|
75
|
+
maxDelegationTtl
|
|
76
|
+
});
|
|
77
|
+
await handleRevocationInvocationVerify({
|
|
78
|
+
url,
|
|
79
|
+
method,
|
|
80
|
+
headers,
|
|
81
|
+
serverUrl,
|
|
82
|
+
rootTarget,
|
|
83
|
+
rootController,
|
|
84
|
+
chainControllers,
|
|
85
|
+
expectedAction,
|
|
86
|
+
// The *invoking* chain is checked against the store as on every other
|
|
87
|
+
// route: a revoked capability cannot authorize a revocation.
|
|
88
|
+
inspectCapabilityChain: revocationChainInspector({ storage, scope }),
|
|
89
|
+
maxChainLength,
|
|
90
|
+
maxDelegationTtl,
|
|
91
|
+
requestName,
|
|
92
|
+
logger: request.log
|
|
93
|
+
});
|
|
94
|
+
// The caller is authorized; NOW consult the store for the to-be-revoked
|
|
95
|
+
// chain. A chain containing an already-revoked link (resubmissions
|
|
96
|
+
// included) is the 400, per ezcap-express; the 409 duplicate stays
|
|
97
|
+
// reserved for a write race at the store. Running this after the masked
|
|
98
|
+
// authorization keeps revocation state undisclosed to unauthorized callers.
|
|
99
|
+
if (await storage.isRevoked({ scope, capabilities })) {
|
|
100
|
+
throw new InvalidRevocationError({
|
|
101
|
+
detail: 'The capability (or a capability in its chain) is already revoked.'
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const capability = capabilityBody;
|
|
105
|
+
// Compute the record's GC expiry only from a parseable `expires`; an
|
|
106
|
+
// unparseable one yields `NaN`, and `new Date(NaN).toISOString()` would
|
|
107
|
+
// throw a `RangeError` (500). Omitting `expires` here just drops the GC
|
|
108
|
+
// margin -- the capability is still rejected on its own expiry.
|
|
109
|
+
const expiresMs = capability.expires ? Date.parse(capability.expires) : NaN;
|
|
110
|
+
const record = {
|
|
111
|
+
capability,
|
|
112
|
+
meta: {
|
|
113
|
+
delegator,
|
|
114
|
+
rootTarget,
|
|
115
|
+
created: new Date().toISOString(),
|
|
116
|
+
...(Number.isFinite(expiresMs) && {
|
|
117
|
+
expires: new Date(expiresMs + ONE_DAY).toISOString()
|
|
118
|
+
})
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
await storage.insertRevocation({ scope, record });
|
|
122
|
+
}
|
|
123
|
+
export class RevocationRequest {
|
|
124
|
+
/**
|
|
125
|
+
* POST /kms/keystores/:keystoreId/zcaps/revocations/:revocationId
|
|
126
|
+
* Revoke a capability delegated from a keystore. Carries the unified `/kms`
|
|
127
|
+
* delegation policy, and the webkms `write` action. Responds 204, no body; a
|
|
128
|
+
* concurrent duplicate insert is the 409 `DuplicateRevocationError`.
|
|
129
|
+
*
|
|
130
|
+
* @param request {import('fastify').FastifyRequest}
|
|
131
|
+
* @param reply {import('fastify').FastifyReply}
|
|
132
|
+
* @returns {Promise<FastifyReply>}
|
|
133
|
+
*/
|
|
134
|
+
static async post(request, reply) {
|
|
135
|
+
const requestName = 'Revoke Capability';
|
|
136
|
+
const { keystoreId, revocationId } = request.params;
|
|
137
|
+
// 404-masks an unknown keystore before any verification work.
|
|
138
|
+
const config = await fetchKeystore({ request, keystoreId, requestName });
|
|
139
|
+
await submitRevocation({
|
|
140
|
+
request,
|
|
141
|
+
revocationId,
|
|
142
|
+
scope: { keystoreId },
|
|
143
|
+
rootTarget: config.id,
|
|
144
|
+
rootController: config.controller,
|
|
145
|
+
expectedAction: 'write',
|
|
146
|
+
requestName,
|
|
147
|
+
maxChainLength: KMS_MAX_CHAIN_LENGTH,
|
|
148
|
+
maxDelegationTtl: KMS_MAX_DELEGATION_TTL
|
|
149
|
+
});
|
|
150
|
+
return reply.status(204).send();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* POST /space/:spaceId/zcaps/revocations/:revocationId
|
|
154
|
+
* Revoke a capability delegated from a Space -- the WAS-route sibling of
|
|
155
|
+
* `post`, scoped to the Space rather than a keystore. The revoked capability
|
|
156
|
+
* is rejected from then on wherever a Space-rooted chain is verified: the
|
|
157
|
+
* write/privileged routes (`fetchSpaceAndVerify`) and the capability leg of
|
|
158
|
+
* the read routes (`authorize`). The invoked action is the HTTP verb, since
|
|
159
|
+
* WAS capabilities are scoped by HTTP method. No delegation-policy caps
|
|
160
|
+
* apply, matching the rest of the WAS route families.
|
|
161
|
+
*
|
|
162
|
+
* Responds 204, no body; a concurrent duplicate insert is the 409
|
|
163
|
+
* `DuplicateRevocationError`.
|
|
164
|
+
*
|
|
165
|
+
* @param request {import('fastify').FastifyRequest}
|
|
166
|
+
* @param reply {import('fastify').FastifyReply}
|
|
167
|
+
* @returns {Promise<FastifyReply>}
|
|
168
|
+
*/
|
|
169
|
+
static async postSpace(request, reply) {
|
|
170
|
+
const requestName = 'Revoke Capability';
|
|
171
|
+
const { spaceId, revocationId } = request.params;
|
|
172
|
+
const { serverUrl } = request.server;
|
|
173
|
+
// 404-masks an unknown Space before any verification work.
|
|
174
|
+
const spaceDescription = await fetchSpace({ request, spaceId, requestName });
|
|
175
|
+
await submitRevocation({
|
|
176
|
+
request,
|
|
177
|
+
revocationId,
|
|
178
|
+
scope: { spaceId },
|
|
179
|
+
rootTarget: new URL(spacePath({ spaceId }), serverUrl).toString(),
|
|
180
|
+
rootController: spaceDescription.controller,
|
|
181
|
+
expectedAction: request.method,
|
|
182
|
+
requestName
|
|
183
|
+
});
|
|
184
|
+
return reply.status(204).send();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=RevocationRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RevocationRequest.js","sourceRoot":"","sources":["../../src/requests/RevocationRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request handlers for Space operations: get/update/delete a Space, add a
|
|
3
|
+
* Collection to it, list its Collections, and export it.
|
|
4
|
+
*/
|
|
5
|
+
import type { FastifyReply, FastifyRequest } from 'fastify';
|
|
6
|
+
import type { Readable } from 'node:stream';
|
|
7
|
+
import type { IDID } from '../types.js';
|
|
8
|
+
export declare class SpaceRequest {
|
|
9
|
+
/**
|
|
10
|
+
* GET /space/:spaceId
|
|
11
|
+
* Request handler for "Read Space" request
|
|
12
|
+
* Before this, `parseAuthHeaders()` hook executed, resulting in:
|
|
13
|
+
* request.zcap: {
|
|
14
|
+
* keyId, headers, signature, created, expires, invocation, digest
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* Example Space Description Object:
|
|
18
|
+
* {
|
|
19
|
+
* "id": "6b5be748-5f39-4936-a895-409e393c399c",
|
|
20
|
+
* "type": ["Space"],
|
|
21
|
+
* "name": "Alice's space",
|
|
22
|
+
* "controller": "did:key:z6MkpBMbMaRSv5nsgifRAwEKvHHoiKDMhiAHShTFNmkJNdVW"
|
|
23
|
+
* }
|
|
24
|
+
*
|
|
25
|
+
* @param request {import('fastify').FastifyRequest}
|
|
26
|
+
* @param reply {import('fastify').FastifyReply}
|
|
27
|
+
* @returns {Promise<FastifyReply>}
|
|
28
|
+
*/
|
|
29
|
+
static get(request: FastifyRequest<{
|
|
30
|
+
Params: {
|
|
31
|
+
spaceId: string;
|
|
32
|
+
};
|
|
33
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
34
|
+
/**
|
|
35
|
+
* GET /space/:spaceId/linkset
|
|
36
|
+
* Request handler for the Space's linkset (RFC9264): advertises the Space's
|
|
37
|
+
* access-control `policy` resource for discovery. Readable by whoever may read
|
|
38
|
+
* the Space (capability or fallback policy).
|
|
39
|
+
*
|
|
40
|
+
* @param request {import('fastify').FastifyRequest}
|
|
41
|
+
* @param reply {import('fastify').FastifyReply}
|
|
42
|
+
* @returns {Promise<FastifyReply>}
|
|
43
|
+
*/
|
|
44
|
+
static linkset(request: FastifyRequest<{
|
|
45
|
+
Params: {
|
|
46
|
+
spaceId: string;
|
|
47
|
+
};
|
|
48
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
49
|
+
/**
|
|
50
|
+
* PUT /space/:spaceId
|
|
51
|
+
* Request handler for "Update or Create Space by Id" request
|
|
52
|
+
* Before this, `parseAuthHeaders()` hook executed, resulting in:
|
|
53
|
+
* request.zcap: {
|
|
54
|
+
* keyId, headers, signature, created, expires, invocation, digest
|
|
55
|
+
* }
|
|
56
|
+
*
|
|
57
|
+
* @param request {import('fastify').FastifyRequest}
|
|
58
|
+
* @param reply {import('fastify').FastifyReply}
|
|
59
|
+
* @returns {Promise<FastifyReply>}
|
|
60
|
+
*/
|
|
61
|
+
static put(request: FastifyRequest<{
|
|
62
|
+
Params: {
|
|
63
|
+
spaceId: string;
|
|
64
|
+
};
|
|
65
|
+
Body: {
|
|
66
|
+
id?: string;
|
|
67
|
+
name?: string;
|
|
68
|
+
controller: IDID;
|
|
69
|
+
};
|
|
70
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
71
|
+
/**
|
|
72
|
+
* POST /space/:spaceId/
|
|
73
|
+
* Request handler for "Create Collection" request
|
|
74
|
+
* Before this, `parseAuthHeaders()` hook executed, resulting in:
|
|
75
|
+
* request.zcap: {
|
|
76
|
+
* keyId, headers, signature, created, expires, invocation, digest
|
|
77
|
+
* }
|
|
78
|
+
*
|
|
79
|
+
* @param request {import('fastify').FastifyRequest}
|
|
80
|
+
* @param reply {import('fastify').FastifyReply}
|
|
81
|
+
* @returns {Promise<FastifyReply>}
|
|
82
|
+
*/
|
|
83
|
+
static post(request: FastifyRequest<{
|
|
84
|
+
Params: {
|
|
85
|
+
spaceId: string;
|
|
86
|
+
};
|
|
87
|
+
Body: {
|
|
88
|
+
id?: string;
|
|
89
|
+
name?: string;
|
|
90
|
+
backend?: unknown;
|
|
91
|
+
encryption?: unknown;
|
|
92
|
+
};
|
|
93
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
94
|
+
/**
|
|
95
|
+
* DELETE /space/:spaceId
|
|
96
|
+
* Request handler for "Delete Space" request
|
|
97
|
+
* Before this, `parseAuthHeaders()` hook executed, resulting in:
|
|
98
|
+
* request.zcap: {
|
|
99
|
+
* keyId, headers, signature, created, expires, invocation, digest
|
|
100
|
+
* }
|
|
101
|
+
*
|
|
102
|
+
* @param request {import('fastify').FastifyRequest}
|
|
103
|
+
* @param reply {import('fastify').FastifyReply}
|
|
104
|
+
* @returns {Promise<FastifyReply>}
|
|
105
|
+
*/
|
|
106
|
+
static delete(request: FastifyRequest<{
|
|
107
|
+
Params: {
|
|
108
|
+
spaceId: string;
|
|
109
|
+
};
|
|
110
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
111
|
+
/**
|
|
112
|
+
* POST /space/:spaceId/export
|
|
113
|
+
* Request handler for "Export Space" request
|
|
114
|
+
*
|
|
115
|
+
* @param request {import('fastify').FastifyRequest}
|
|
116
|
+
* @param reply {import('fastify').FastifyReply}
|
|
117
|
+
* @returns {Promise<FastifyReply>}
|
|
118
|
+
*/
|
|
119
|
+
static export(request: FastifyRequest<{
|
|
120
|
+
Params: {
|
|
121
|
+
spaceId: string;
|
|
122
|
+
};
|
|
123
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
124
|
+
/**
|
|
125
|
+
* POST /space/:spaceId/import
|
|
126
|
+
* Request handler for "Import Space" request (merge from tarball)
|
|
127
|
+
*
|
|
128
|
+
* @param request {import('fastify').FastifyRequest}
|
|
129
|
+
* @param reply {import('fastify').FastifyReply}
|
|
130
|
+
* @returns {Promise<FastifyReply>}
|
|
131
|
+
*/
|
|
132
|
+
static import(request: FastifyRequest<{
|
|
133
|
+
Params: {
|
|
134
|
+
spaceId: string;
|
|
135
|
+
};
|
|
136
|
+
Body: Readable;
|
|
137
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
138
|
+
/**
|
|
139
|
+
* GET /space/:spaceId/collections/
|
|
140
|
+
* Request handler for "List Collections" request
|
|
141
|
+
*
|
|
142
|
+
* @param request {import('fastify').FastifyRequest}
|
|
143
|
+
* @param reply {import('fastify').FastifyReply}
|
|
144
|
+
* @returns {Promise<FastifyReply>}
|
|
145
|
+
*/
|
|
146
|
+
static listCollections(request: FastifyRequest<{
|
|
147
|
+
Params: {
|
|
148
|
+
spaceId: string;
|
|
149
|
+
};
|
|
150
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
151
|
+
/**
|
|
152
|
+
* GET /space/:spaceId/backends
|
|
153
|
+
* Request handler for the "Space Backends Available" request: the list of
|
|
154
|
+
* storage backends registered for the Space. This reference server ships a
|
|
155
|
+
* single server-configured backend (registered as `default`), so the list has
|
|
156
|
+
* one entry, derived from the active backend's own `describe()`.
|
|
157
|
+
*
|
|
158
|
+
* Authorization is capability-or-policy, the same as List Collections: the
|
|
159
|
+
* backends list is no more sensitive than the Space description, so a
|
|
160
|
+
* public-readable Space may also list its backends.
|
|
161
|
+
*
|
|
162
|
+
* @param request {import('fastify').FastifyRequest}
|
|
163
|
+
* @param reply {import('fastify').FastifyReply}
|
|
164
|
+
* @returns {Promise<FastifyReply>}
|
|
165
|
+
*/
|
|
166
|
+
static listBackends(request: FastifyRequest<{
|
|
167
|
+
Params: {
|
|
168
|
+
spaceId: string;
|
|
169
|
+
};
|
|
170
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
171
|
+
/**
|
|
172
|
+
* GET /space/:spaceId/quotas
|
|
173
|
+
* Request handler for the "Quotas" request: the Space's storage report,
|
|
174
|
+
* grouped by backend (spec "Quotas"). This reference server ships a single
|
|
175
|
+
* server-configured backend, so the `backends` array has one entry, measured
|
|
176
|
+
* from the active backend's `reportUsage()`.
|
|
177
|
+
*
|
|
178
|
+
* The per-Collection `usageByCollection` breakdown is opt-in via the spec's
|
|
179
|
+
* `?include=collections` query parameter (omitted otherwise, to keep the
|
|
180
|
+
* hot-path payload lean). Reading that query string on a capability-signed
|
|
181
|
+
* request requires `allowTargetQuery` on the authorization call -- the spec's
|
|
182
|
+
* "Quotas" / "Pagination parameters and authorization" rule that a query
|
|
183
|
+
* parameter selecting a representation does not change the target a capability
|
|
184
|
+
* must match (see `verifyZcap`).
|
|
185
|
+
*
|
|
186
|
+
* Authorization is capability-or-policy, the same as List Collections and the
|
|
187
|
+
* backends list: a caller not authorized to read the report receives a 404
|
|
188
|
+
* (the spec's maximum-privacy invariant), and a public-readable Space may read
|
|
189
|
+
* its quota report. Authorization runs before the query is consulted.
|
|
190
|
+
*
|
|
191
|
+
* @param request {import('fastify').FastifyRequest}
|
|
192
|
+
* @param reply {import('fastify').FastifyReply}
|
|
193
|
+
* @returns {Promise<FastifyReply>}
|
|
194
|
+
*/
|
|
195
|
+
static quotas(request: FastifyRequest<{
|
|
196
|
+
Params: {
|
|
197
|
+
spaceId: string;
|
|
198
|
+
};
|
|
199
|
+
Querystring: {
|
|
200
|
+
include?: string | string[];
|
|
201
|
+
};
|
|
202
|
+
}>, reply: FastifyReply): Promise<FastifyReply>;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=SpaceRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpaceRequest.d.ts","sourceRoot":"","sources":["../../src/requests/SpaceRequest.ts"],"names":[],"mappings":"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"}
|