@interop/was-conformance-suite 0.1.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/LICENSE.md +20 -0
- package/README.md +264 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +69 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/main.d.ts +64 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +294 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/reporters/json.d.ts +32 -0
- package/dist/cli/reporters/json.d.ts.map +1 -0
- package/dist/cli/reporters/json.js +30 -0
- package/dist/cli/reporters/json.js.map +1 -0
- package/dist/cli/reporters/pretty.d.ts +21 -0
- package/dist/cli/reporters/pretty.d.ts.map +1 -0
- package/dist/cli/reporters/pretty.js +152 -0
- package/dist/cli/reporters/pretty.js.map +1 -0
- package/dist/harness/assert.d.ts +13 -0
- package/dist/harness/assert.d.ts.map +1 -0
- package/dist/harness/assert.js +13 -0
- package/dist/harness/assert.js.map +1 -0
- package/dist/harness/runner.d.ts +25 -0
- package/dist/harness/runner.d.ts.map +1 -0
- package/dist/harness/runner.js +240 -0
- package/dist/harness/runner.js.map +1 -0
- package/dist/harness/types.d.ts +199 -0
- package/dist/harness/types.d.ts.map +1 -0
- package/dist/harness/types.js +2 -0
- package/dist/harness/types.js.map +1 -0
- package/dist/helpers.d.ts +103 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +195 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/suites/changes-query-api.d.ts +9 -0
- package/dist/suites/changes-query-api.d.ts.map +1 -0
- package/dist/suites/changes-query-api.js +115 -0
- package/dist/suites/changes-query-api.js.map +1 -0
- package/dist/suites/client-backends.d.ts +11 -0
- package/dist/suites/client-backends.d.ts.map +1 -0
- package/dist/suites/client-backends.js +198 -0
- package/dist/suites/client-backends.js.map +1 -0
- package/dist/suites/client-delegation.d.ts +21 -0
- package/dist/suites/client-delegation.d.ts.map +1 -0
- package/dist/suites/client-delegation.js +94 -0
- package/dist/suites/client-delegation.js.map +1 -0
- package/dist/suites/client-export-import.d.ts +19 -0
- package/dist/suites/client-export-import.d.ts.map +1 -0
- package/dist/suites/client-export-import.js +74 -0
- package/dist/suites/client-export-import.js.map +1 -0
- package/dist/suites/client-resources.d.ts +11 -0
- package/dist/suites/client-resources.d.ts.map +1 -0
- package/dist/suites/client-resources.js +193 -0
- package/dist/suites/client-resources.js.map +1 -0
- package/dist/suites/client-spaces.d.ts +11 -0
- package/dist/suites/client-spaces.d.ts.map +1 -0
- package/dist/suites/client-spaces.js +347 -0
- package/dist/suites/client-spaces.js.map +1 -0
- package/dist/suites/collection-api.d.ts +7 -0
- package/dist/suites/collection-api.d.ts.map +1 -0
- package/dist/suites/collection-api.js +266 -0
- package/dist/suites/collection-api.js.map +1 -0
- package/dist/suites/encryption-marker-api.d.ts +9 -0
- package/dist/suites/encryption-marker-api.d.ts.map +1 -0
- package/dist/suites/encryption-marker-api.js +266 -0
- package/dist/suites/encryption-marker-api.js.map +1 -0
- package/dist/suites/index.d.ts +23 -0
- package/dist/suites/index.d.ts.map +1 -0
- package/dist/suites/index.js +32 -0
- package/dist/suites/index.js.map +1 -0
- package/dist/suites/policy-api.d.ts +12 -0
- package/dist/suites/policy-api.d.ts.map +1 -0
- package/dist/suites/policy-api.js +187 -0
- package/dist/suites/policy-api.js.map +1 -0
- package/dist/suites/resource-api.d.ts +8 -0
- package/dist/suites/resource-api.d.ts.map +1 -0
- package/dist/suites/resource-api.js +393 -0
- package/dist/suites/resource-api.js.map +1 -0
- package/dist/suites/server.d.ts +3 -0
- package/dist/suites/server.d.ts.map +1 -0
- package/dist/suites/server.js +25 -0
- package/dist/suites/server.js.map +1 -0
- package/dist/suites/spaces-api.d.ts +11 -0
- package/dist/suites/spaces-api.d.ts.map +1 -0
- package/dist/suites/spaces-api.js +411 -0
- package/dist/suites/spaces-api.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../src/suites/collection-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Suite } from '../harness/types.js';
|
|
2
|
+
interface State {
|
|
3
|
+
alice: any;
|
|
4
|
+
bob: any;
|
|
5
|
+
createCollection: (json: object) => Promise<any>;
|
|
6
|
+
}
|
|
7
|
+
export declare const encryptionMarkerApi: Suite<State>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=encryption-marker-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-marker-api.d.ts","sourceRoot":"","sources":["../../src/suites/encryption-marker-api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAgBhD,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACjD;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAoS5C,CAAA"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* WAS conformance tests -- Collection client-side encryption marker.
|
|
6
|
+
*/
|
|
7
|
+
import assert from '../harness/assert.js';
|
|
8
|
+
import { Collection } from '@interop/was-client';
|
|
9
|
+
/**
|
|
10
|
+
* A minimal conforming EDV Encrypted Document: the stored representation for an
|
|
11
|
+
* `edv` Collection (a JSON object whose `jwe` member is a JWE-JSON envelope),
|
|
12
|
+
* reused for both a content write and a `/meta` `custom` envelope.
|
|
13
|
+
*/
|
|
14
|
+
const edvDocument = {
|
|
15
|
+
id: 'z1',
|
|
16
|
+
sequence: 0,
|
|
17
|
+
indexed: [],
|
|
18
|
+
jwe: { protected: 'eyJhbGciOiJkaXI', ciphertext: 'c1phertext' }
|
|
19
|
+
};
|
|
20
|
+
export const encryptionMarkerApi = {
|
|
21
|
+
id: 'encryption-marker-api',
|
|
22
|
+
name: 'Encryption marker API',
|
|
23
|
+
setup: async (ctx) => {
|
|
24
|
+
const alice = { ...ctx.actors.alice };
|
|
25
|
+
const bob = { ...ctx.actors.bob };
|
|
26
|
+
alice.space1 = { id: ctx.generateId() };
|
|
27
|
+
await ctx.createSpace({
|
|
28
|
+
spaceDescription: {
|
|
29
|
+
id: alice.space1.id,
|
|
30
|
+
name: "Alice's Encryption Space",
|
|
31
|
+
controller: alice.did
|
|
32
|
+
},
|
|
33
|
+
rootClient: alice.rootClient
|
|
34
|
+
});
|
|
35
|
+
/** POSTs a Collection (raw, so an `encryption` marker can be sent). */
|
|
36
|
+
function createCollection(json) {
|
|
37
|
+
return alice.rootClient.request({
|
|
38
|
+
url: new URL(`/space/${alice.space1.id}/`, ctx.serverUrl).toString(),
|
|
39
|
+
method: 'POST',
|
|
40
|
+
action: 'POST',
|
|
41
|
+
json
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return { alice, bob, createCollection };
|
|
45
|
+
},
|
|
46
|
+
teardown: async (ctx, state) => {
|
|
47
|
+
const { alice } = state;
|
|
48
|
+
try {
|
|
49
|
+
await alice.rootClient.request({
|
|
50
|
+
url: new URL(`/space/${alice.space1.id}`, ctx.serverUrl).toString(),
|
|
51
|
+
method: 'DELETE'
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
/* best-effort cleanup */
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
tests: [
|
|
59
|
+
{
|
|
60
|
+
id: 'encryption.persist-echo-marker',
|
|
61
|
+
name: '[root] persists and echoes the marker on create',
|
|
62
|
+
run: async (ctx, state) => {
|
|
63
|
+
const { serverUrl } = ctx;
|
|
64
|
+
const { alice, createCollection } = state;
|
|
65
|
+
const response = await createCollection({
|
|
66
|
+
id: 'vault',
|
|
67
|
+
name: 'Vault',
|
|
68
|
+
encryption: { scheme: 'edv' }
|
|
69
|
+
});
|
|
70
|
+
assert.equal(response.status, 201);
|
|
71
|
+
assert.deepStrictEqual(response.data.encryption, { scheme: 'edv' });
|
|
72
|
+
const read = await alice.rootClient.request({
|
|
73
|
+
url: new URL(`/space/${alice.space1.id}/vault`, serverUrl).toString(),
|
|
74
|
+
method: 'GET'
|
|
75
|
+
});
|
|
76
|
+
assert.deepStrictEqual(read.data.encryption, { scheme: 'edv' });
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'encryption.delegated-discovers-marker',
|
|
81
|
+
name: 'a delegated consumer discovers the marker by reading the Description',
|
|
82
|
+
run: async (ctx, state) => {
|
|
83
|
+
const { alice, bob } = state;
|
|
84
|
+
// Alice grants Bob read on the vault; Bob -- who did not create it --
|
|
85
|
+
// rebuilds a handle and reads the Description, seeing the marker (this is how
|
|
86
|
+
// a consuming app learns to decrypt with its own keys).
|
|
87
|
+
const zcap = await alice.was
|
|
88
|
+
.space(alice.space1.id)
|
|
89
|
+
.collection('vault')
|
|
90
|
+
.grant({ to: bob.did, actions: ['GET'] });
|
|
91
|
+
const handle = bob.was.fromCapability(zcap);
|
|
92
|
+
assert.ok(handle instanceof Collection);
|
|
93
|
+
const description = (await handle.describe());
|
|
94
|
+
assert.deepStrictEqual(description.encryption, { scheme: 'edv' });
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 'encryption.malformed-marker-400',
|
|
99
|
+
name: '[root] rejects a malformed marker (400 invalid-request-body)',
|
|
100
|
+
specRefs: ['https://wallet.storage/spec#invalid-request-body'],
|
|
101
|
+
run: async (ctx, state) => {
|
|
102
|
+
const { createCollection } = state;
|
|
103
|
+
let expectedError;
|
|
104
|
+
try {
|
|
105
|
+
await createCollection({ id: 'bad', encryption: { foo: 1 } });
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
expectedError = err;
|
|
109
|
+
}
|
|
110
|
+
assert.ok(expectedError, 'expected the malformed-marker create to be rejected');
|
|
111
|
+
assert.equal(expectedError.response.status, 400);
|
|
112
|
+
assert.equal(expectedError.data.type, 'https://wallet.storage/spec#invalid-request-body');
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: 'encryption.unrecognized-scheme-400',
|
|
117
|
+
name: '[root] rejects an unrecognized scheme (400 unsupported-encryption-scheme)',
|
|
118
|
+
specRefs: ['https://wallet.storage/spec#unsupported-encryption-scheme'],
|
|
119
|
+
run: async (ctx, state) => {
|
|
120
|
+
const { serverUrl } = ctx;
|
|
121
|
+
const { alice } = state;
|
|
122
|
+
// With v1 recognizing only `edv`, naming any other scheme -- whether on a
|
|
123
|
+
// fresh Collection or as a change to `vault` -- is rejected by the
|
|
124
|
+
// fail-closed scheme gate before the set-once `encryption-immutable` check
|
|
125
|
+
// could apply, so the stored marker cannot be corrupted either way.
|
|
126
|
+
let expectedError;
|
|
127
|
+
try {
|
|
128
|
+
await alice.rootClient.request({
|
|
129
|
+
url: new URL(`/space/${alice.space1.id}/vault`, serverUrl).toString(),
|
|
130
|
+
method: 'PUT',
|
|
131
|
+
action: 'PUT',
|
|
132
|
+
json: { id: 'vault', encryption: { scheme: 'other' } }
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
expectedError = err;
|
|
137
|
+
}
|
|
138
|
+
assert.ok(expectedError, 'expected the unrecognized scheme to be rejected');
|
|
139
|
+
assert.equal(expectedError.response.status, 400);
|
|
140
|
+
assert.equal(expectedError.data.type, 'https://wallet.storage/spec#unsupported-encryption-scheme');
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: 'encryption.non-envelope-write-422',
|
|
145
|
+
name: '[root] rejects a non-envelope write into an encrypted Collection (422 scheme-mismatch)',
|
|
146
|
+
specRefs: ['https://wallet.storage/spec#encryption-scheme-mismatch'],
|
|
147
|
+
run: async (ctx, state) => {
|
|
148
|
+
const { serverUrl } = ctx;
|
|
149
|
+
const { alice } = state;
|
|
150
|
+
// The fail-closed guarantee (spec "Encryption Scheme Registry"): the `vault`
|
|
151
|
+
// Collection is `edv`, so a plaintext JSON write is structurally rejected --
|
|
152
|
+
// server-visible plaintext can never land in an encrypted Collection, even
|
|
153
|
+
// from a writer that forgets (or refuses) to encrypt.
|
|
154
|
+
let expectedError;
|
|
155
|
+
try {
|
|
156
|
+
await alice.rootClient.request({
|
|
157
|
+
url: new URL(`/space/${alice.space1.id}/vault/plaintext-doc`, serverUrl).toString(),
|
|
158
|
+
method: 'PUT',
|
|
159
|
+
action: 'PUT',
|
|
160
|
+
json: { hello: 'world' }
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
expectedError = err;
|
|
165
|
+
}
|
|
166
|
+
assert.ok(expectedError, 'expected the plaintext write to be rejected');
|
|
167
|
+
assert.equal(expectedError.response.status, 422);
|
|
168
|
+
assert.equal(expectedError.data.type, 'https://wallet.storage/spec#encryption-scheme-mismatch');
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
id: 'encryption.accepts-edv-document',
|
|
173
|
+
name: '[root] accepts a conforming EDV Document into an encrypted Collection',
|
|
174
|
+
run: async (ctx, state) => {
|
|
175
|
+
const { serverUrl } = ctx;
|
|
176
|
+
const { alice } = state;
|
|
177
|
+
// The stored representation is an EDV Encrypted Document (`{ jwe, ... }`)
|
|
178
|
+
// under `application/json` -- what the EDV codec actually produces.
|
|
179
|
+
const response = await alice.rootClient.request({
|
|
180
|
+
url: new URL(`/space/${alice.space1.id}/vault/envelope-doc`, serverUrl).toString(),
|
|
181
|
+
method: 'PUT',
|
|
182
|
+
action: 'PUT',
|
|
183
|
+
body: new TextEncoder().encode(JSON.stringify(edvDocument)),
|
|
184
|
+
headers: { 'content-type': 'application/json' }
|
|
185
|
+
});
|
|
186
|
+
assert.equal(response.status, 204);
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
id: 'encryption.plaintext-meta-422',
|
|
191
|
+
name: '[root] rejects a plaintext `custom` on PUT /meta of an encrypted Collection (422)',
|
|
192
|
+
specRefs: ['https://wallet.storage/spec#encryption-scheme-mismatch'],
|
|
193
|
+
run: async (ctx, state) => {
|
|
194
|
+
const { serverUrl } = ctx;
|
|
195
|
+
const { alice } = state;
|
|
196
|
+
// Spec "Encrypted Collections": on an encrypted Collection a resource's
|
|
197
|
+
// user-writable `custom` metadata MUST be a conforming envelope, so a
|
|
198
|
+
// plaintext `{ name }` is fail-closed rejected -- server-visible plaintext
|
|
199
|
+
// name/tags can never land in an encrypted Collection.
|
|
200
|
+
let expectedError;
|
|
201
|
+
try {
|
|
202
|
+
await alice.rootClient.request({
|
|
203
|
+
url: new URL(`/space/${alice.space1.id}/vault/envelope-doc/meta`, serverUrl).toString(),
|
|
204
|
+
method: 'PUT',
|
|
205
|
+
action: 'PUT',
|
|
206
|
+
json: { custom: { name: 'leaked' } }
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
catch (err) {
|
|
210
|
+
expectedError = err;
|
|
211
|
+
}
|
|
212
|
+
assert.ok(expectedError, 'expected the plaintext /meta write to be rejected');
|
|
213
|
+
assert.equal(expectedError.response.status, 422);
|
|
214
|
+
assert.equal(expectedError.data.type, 'https://wallet.storage/spec#encryption-scheme-mismatch');
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: 'encryption.envelope-meta-etag',
|
|
219
|
+
name: '[root] accepts an envelope `custom` on PUT /meta and returns its metaVersion ETag',
|
|
220
|
+
optional: true,
|
|
221
|
+
run: async (ctx, state) => {
|
|
222
|
+
const { serverUrl } = ctx;
|
|
223
|
+
const { alice } = state;
|
|
224
|
+
const response = await alice.rootClient.request({
|
|
225
|
+
url: new URL(`/space/${alice.space1.id}/vault/envelope-doc/meta`, serverUrl).toString(),
|
|
226
|
+
method: 'PUT',
|
|
227
|
+
action: 'PUT',
|
|
228
|
+
json: { custom: edvDocument }
|
|
229
|
+
});
|
|
230
|
+
assert.equal(response.status, 204);
|
|
231
|
+
// The `/meta` sub-resource carries its own ETag (`metaVersion`).
|
|
232
|
+
assert.ok(response.headers.get('etag'), 'expected a /meta ETag');
|
|
233
|
+
// GET /meta returns the opaque envelope verbatim (no plaintext name leaked).
|
|
234
|
+
const read = await alice.rootClient.request({
|
|
235
|
+
url: new URL(`/space/${alice.space1.id}/vault/envelope-doc/meta`, serverUrl).toString(),
|
|
236
|
+
method: 'GET'
|
|
237
|
+
});
|
|
238
|
+
assert.deepStrictEqual(read.data.custom, edvDocument);
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: 'encryption.replicates-metadata-changes',
|
|
243
|
+
name: '[root] replicates the encrypted metadata edit in the changes feed',
|
|
244
|
+
optional: true,
|
|
245
|
+
run: async (ctx, state) => {
|
|
246
|
+
const { serverUrl } = ctx;
|
|
247
|
+
const { alice } = state;
|
|
248
|
+
// Decision 6: a metadata-only edit rides the change feed -- the resource
|
|
249
|
+
// re-surfaces carrying the opaque `custom` envelope and a `metaVersion`, so a
|
|
250
|
+
// replicating client picks up the metadata change without decryption.
|
|
251
|
+
const response = await alice.rootClient.request({
|
|
252
|
+
url: new URL(`/space/${alice.space1.id}/vault/query`, serverUrl).toString(),
|
|
253
|
+
method: 'POST',
|
|
254
|
+
action: 'POST',
|
|
255
|
+
json: { profile: 'changes', limit: 100 }
|
|
256
|
+
});
|
|
257
|
+
assert.equal(response.status, 200);
|
|
258
|
+
const doc = response.data.documents.find((entry) => entry.id === 'envelope-doc');
|
|
259
|
+
assert.ok(doc, 'expected the edited resource in the feed');
|
|
260
|
+
assert.deepStrictEqual(doc.custom, edvDocument);
|
|
261
|
+
assert.equal(typeof doc.metaVersion, 'number');
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
};
|
|
266
|
+
//# sourceMappingURL=encryption-marker-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryption-marker-api.js","sourceRoot":"","sources":["../../src/suites/encryption-marker-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import type { Suite } from '../harness/types.js';
|
|
5
|
+
import { changesQueryApi } from './changes-query-api.js';
|
|
6
|
+
import { clientBackends } from './client-backends.js';
|
|
7
|
+
import { clientDelegation } from './client-delegation.js';
|
|
8
|
+
import { clientExportImport } from './client-export-import.js';
|
|
9
|
+
import { clientResources } from './client-resources.js';
|
|
10
|
+
import { clientSpaces } from './client-spaces.js';
|
|
11
|
+
import { collectionApi } from './collection-api.js';
|
|
12
|
+
import { encryptionMarkerApi } from './encryption-marker-api.js';
|
|
13
|
+
import { policyApi } from './policy-api.js';
|
|
14
|
+
import { resourceApi } from './resource-api.js';
|
|
15
|
+
import { server } from './server.js';
|
|
16
|
+
import { spacesApi } from './spaces-api.js';
|
|
17
|
+
/**
|
|
18
|
+
* The full conformance registry, in canonical run order (matching the
|
|
19
|
+
* original file-alphabetical execution order of the ported suite).
|
|
20
|
+
*/
|
|
21
|
+
export declare const suites: Array<Suite<any>>;
|
|
22
|
+
export { changesQueryApi, clientBackends, clientDelegation, clientExportImport, clientResources, clientSpaces, collectionApi, encryptionMarkerApi, policyApi, resourceApi, server, spacesApi };
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/suites/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAapC,CAAA;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACV,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { changesQueryApi } from './changes-query-api.js';
|
|
2
|
+
import { clientBackends } from './client-backends.js';
|
|
3
|
+
import { clientDelegation } from './client-delegation.js';
|
|
4
|
+
import { clientExportImport } from './client-export-import.js';
|
|
5
|
+
import { clientResources } from './client-resources.js';
|
|
6
|
+
import { clientSpaces } from './client-spaces.js';
|
|
7
|
+
import { collectionApi } from './collection-api.js';
|
|
8
|
+
import { encryptionMarkerApi } from './encryption-marker-api.js';
|
|
9
|
+
import { policyApi } from './policy-api.js';
|
|
10
|
+
import { resourceApi } from './resource-api.js';
|
|
11
|
+
import { server } from './server.js';
|
|
12
|
+
import { spacesApi } from './spaces-api.js';
|
|
13
|
+
/**
|
|
14
|
+
* The full conformance registry, in canonical run order (matching the
|
|
15
|
+
* original file-alphabetical execution order of the ported suite).
|
|
16
|
+
*/
|
|
17
|
+
export const suites = [
|
|
18
|
+
changesQueryApi,
|
|
19
|
+
clientBackends,
|
|
20
|
+
clientDelegation,
|
|
21
|
+
clientExportImport,
|
|
22
|
+
clientResources,
|
|
23
|
+
clientSpaces,
|
|
24
|
+
collectionApi,
|
|
25
|
+
encryptionMarkerApi,
|
|
26
|
+
policyApi,
|
|
27
|
+
resourceApi,
|
|
28
|
+
server,
|
|
29
|
+
spacesApi
|
|
30
|
+
];
|
|
31
|
+
export { changesQueryApi, clientBackends, clientDelegation, clientExportImport, clientResources, clientSpaces, collectionApi, encryptionMarkerApi, policyApi, resourceApi, server, spacesApi };
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/suites/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAsB;IACvC,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,WAAW;IACX,MAAM;IACN,SAAS;CACV,CAAA;AAED,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,MAAM,EACN,SAAS,EACV,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Suite } from '../harness/types.js';
|
|
2
|
+
interface State {
|
|
3
|
+
alice: any;
|
|
4
|
+
bob: any;
|
|
5
|
+
collectionId: string;
|
|
6
|
+
resourceId: string;
|
|
7
|
+
resourceUrl: () => string;
|
|
8
|
+
policyUrl: () => string;
|
|
9
|
+
}
|
|
10
|
+
export declare const policyApi: Suite<State>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=policy-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-api.d.ts","sourceRoot":"","sources":["../../src/suites/policy-api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,MAAM,CAAA;IACzB,SAAS,EAAE,MAAM,MAAM,CAAA;CACxB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,KAAK,CAqNlC,CAAA"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* WAS conformance tests -- Access-control policy (public-read fallback).
|
|
6
|
+
*/
|
|
7
|
+
import assert from '../harness/assert.js';
|
|
8
|
+
export const policyApi = {
|
|
9
|
+
id: 'policy-api',
|
|
10
|
+
name: 'Access-control policy API',
|
|
11
|
+
setup: async (ctx) => {
|
|
12
|
+
const alice = { ...ctx.actors.alice };
|
|
13
|
+
const bob = { ...ctx.actors.bob };
|
|
14
|
+
const collectionId = 'public-credentials';
|
|
15
|
+
const resourceId = 'public-vc';
|
|
16
|
+
const resourceUrl = () => new URL(`/space/${alice.space1.id}/${collectionId}/${resourceId}`, ctx.serverUrl).toString();
|
|
17
|
+
const policyUrl = () => new URL(`/space/${alice.space1.id}/${collectionId}/policy`, ctx.serverUrl).toString();
|
|
18
|
+
alice.space1 = { id: ctx.generateId() };
|
|
19
|
+
await ctx.createSpace({
|
|
20
|
+
spaceDescription: {
|
|
21
|
+
id: alice.space1.id,
|
|
22
|
+
name: "Alice's Space #1",
|
|
23
|
+
controller: alice.did
|
|
24
|
+
},
|
|
25
|
+
rootClient: alice.rootClient
|
|
26
|
+
});
|
|
27
|
+
await alice.rootClient.request({
|
|
28
|
+
url: new URL(`/space/${alice.space1.id}/`, ctx.serverUrl).toString(),
|
|
29
|
+
method: 'POST',
|
|
30
|
+
json: { id: collectionId, name: 'Public Credentials' }
|
|
31
|
+
});
|
|
32
|
+
await alice.rootClient.request({
|
|
33
|
+
url: resourceUrl(),
|
|
34
|
+
method: 'PUT',
|
|
35
|
+
json: { id: resourceId, name: 'A shared Verifiable Credential' }
|
|
36
|
+
});
|
|
37
|
+
return { alice, bob, collectionId, resourceId, resourceUrl, policyUrl };
|
|
38
|
+
},
|
|
39
|
+
teardown: async (ctx, state) => {
|
|
40
|
+
const { alice } = state;
|
|
41
|
+
try {
|
|
42
|
+
await alice.rootClient.request({
|
|
43
|
+
url: new URL(`/space/${alice.space1.id}`, ctx.serverUrl).toString(),
|
|
44
|
+
method: 'DELETE'
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
/* best-effort cleanup */
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
tests: [
|
|
52
|
+
{
|
|
53
|
+
id: 'policy.anonymous-no-policy-404',
|
|
54
|
+
name: 'anonymous GET of a resource with no policy is denied (404)',
|
|
55
|
+
run: async (ctx, state) => {
|
|
56
|
+
const { resourceUrl } = state;
|
|
57
|
+
const response = await fetch(resourceUrl());
|
|
58
|
+
assert.equal(response.status, 404);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'policy.put-collection-public-201',
|
|
63
|
+
name: '[controller] PUT a PublicCanRead policy on the collection (201)',
|
|
64
|
+
run: async (ctx, state) => {
|
|
65
|
+
const { alice, policyUrl } = state;
|
|
66
|
+
const response = await alice.rootClient.request({
|
|
67
|
+
url: policyUrl(),
|
|
68
|
+
method: 'PUT',
|
|
69
|
+
json: { type: 'PublicCanRead' }
|
|
70
|
+
});
|
|
71
|
+
assert.equal(response.status, 201);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'policy.anonymous-public-read-200',
|
|
76
|
+
name: 'anonymous GET of a resource in a PublicCanRead collection succeeds (200)',
|
|
77
|
+
run: async (ctx, state) => {
|
|
78
|
+
const { resourceUrl } = state;
|
|
79
|
+
const response = await fetch(resourceUrl());
|
|
80
|
+
assert.equal(response.status, 200);
|
|
81
|
+
const body = (await response.json());
|
|
82
|
+
assert.equal(body.name, 'A shared Verifiable Credential');
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: 'policy.unauthorized-falls-back-200',
|
|
87
|
+
name: 'a caller whose capability does not authorize falls back to policy (200)',
|
|
88
|
+
run: async (ctx, state) => {
|
|
89
|
+
const { bob, resourceUrl } = state;
|
|
90
|
+
// Bob is not the Space controller, so his capability does not verify; the
|
|
91
|
+
// PublicCanRead policy grants the read.
|
|
92
|
+
const response = await bob.rootClient.request({
|
|
93
|
+
url: resourceUrl(),
|
|
94
|
+
method: 'GET'
|
|
95
|
+
});
|
|
96
|
+
assert.equal(response.status, 200);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: 'policy.anonymous-write-rejected-401',
|
|
101
|
+
name: 'anonymous write is still rejected (401) on a public collection',
|
|
102
|
+
run: async (ctx, state) => {
|
|
103
|
+
const { resourceUrl } = state;
|
|
104
|
+
const response = await fetch(resourceUrl(), {
|
|
105
|
+
method: 'PUT',
|
|
106
|
+
headers: { 'content-type': 'application/json' },
|
|
107
|
+
body: JSON.stringify({ name: 'anon write' })
|
|
108
|
+
});
|
|
109
|
+
assert.equal(response.status, 401);
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
id: 'policy.linkset-advertises-policy',
|
|
114
|
+
name: 'the collection linkset advertises the policy resource',
|
|
115
|
+
specRefs: ['https://wallet.storage/spec#policy'],
|
|
116
|
+
run: async (ctx, state) => {
|
|
117
|
+
const { serverUrl } = ctx;
|
|
118
|
+
const { alice, collectionId } = state;
|
|
119
|
+
const response = await fetch(new URL(`/space/${alice.space1.id}/${collectionId}/linkset`, serverUrl));
|
|
120
|
+
assert.equal(response.status, 200);
|
|
121
|
+
assert.match(response.headers.get('content-type'), /application\/linkset\+json/);
|
|
122
|
+
const body = (await response.json());
|
|
123
|
+
assert.equal(body.linkset[0]['https://wallet.storage/spec#policy'][0].href, `/space/${alice.space1.id}/${collectionId}/policy`);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: 'policy.delete-revokes-404',
|
|
128
|
+
name: '[controller] DELETE the policy revokes public access (404)',
|
|
129
|
+
run: async (ctx, state) => {
|
|
130
|
+
const { alice, policyUrl, resourceUrl } = state;
|
|
131
|
+
const del = await alice.rootClient.request({
|
|
132
|
+
url: policyUrl(),
|
|
133
|
+
method: 'DELETE'
|
|
134
|
+
});
|
|
135
|
+
assert.equal(del.status, 204);
|
|
136
|
+
const response = await fetch(resourceUrl());
|
|
137
|
+
assert.equal(response.status, 404);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: 'policy.resource-level-grant',
|
|
142
|
+
name: 'a resource-level policy grants public read on a single resource',
|
|
143
|
+
run: async (ctx, state) => {
|
|
144
|
+
const { serverUrl } = ctx;
|
|
145
|
+
const { alice, resourceUrl } = state;
|
|
146
|
+
// The collection policy was just removed, so this isolates resource-level.
|
|
147
|
+
await alice.rootClient.request({
|
|
148
|
+
url: new URL(`${resourceUrl()}/policy`, serverUrl).toString(),
|
|
149
|
+
method: 'PUT',
|
|
150
|
+
json: { type: 'PublicCanRead' }
|
|
151
|
+
});
|
|
152
|
+
const response = await fetch(resourceUrl());
|
|
153
|
+
assert.equal(response.status, 200);
|
|
154
|
+
// Clean up so it does not mask the space-level inheritance check below.
|
|
155
|
+
await alice.rootClient.request({
|
|
156
|
+
url: new URL(`${resourceUrl()}/policy`, serverUrl).toString(),
|
|
157
|
+
method: 'DELETE'
|
|
158
|
+
});
|
|
159
|
+
assert.equal((await fetch(resourceUrl())).status, 404);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
id: 'policy.space-level-inherited',
|
|
164
|
+
name: 'a space-level policy is inherited by resources',
|
|
165
|
+
run: async (ctx, state) => {
|
|
166
|
+
const { serverUrl } = ctx;
|
|
167
|
+
const { alice, collectionId } = state;
|
|
168
|
+
// A second resource with no policy of its own.
|
|
169
|
+
const inheritedUrl = new URL(`/space/${alice.space1.id}/${collectionId}/inherited-vc`, serverUrl).toString();
|
|
170
|
+
await alice.rootClient.request({
|
|
171
|
+
url: inheritedUrl,
|
|
172
|
+
method: 'PUT',
|
|
173
|
+
json: { id: 'inherited-vc', name: 'Inherited' }
|
|
174
|
+
});
|
|
175
|
+
assert.equal((await fetch(inheritedUrl)).status, 404);
|
|
176
|
+
// A space-level PublicCanRead policy makes it readable by inheritance.
|
|
177
|
+
await alice.rootClient.request({
|
|
178
|
+
url: new URL(`/space/${alice.space1.id}/policy`, serverUrl).toString(),
|
|
179
|
+
method: 'PUT',
|
|
180
|
+
json: { type: 'PublicCanRead' }
|
|
181
|
+
});
|
|
182
|
+
assert.equal((await fetch(inheritedUrl)).status, 200);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
};
|
|
187
|
+
//# sourceMappingURL=policy-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-api.js","sourceRoot":"","sources":["../../src/suites/policy-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-api.d.ts","sourceRoot":"","sources":["../../src/suites/resource-api.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;CACT;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAgepC,CAAA"}
|