@interop/was-conformance-suite 0.4.3 → 0.6.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.
@@ -1,10 +1,17 @@
1
1
  import type { Suite } from '../harness/types.js';
2
+ import type { Collection, Space } from '@interop/was-client';
2
3
  interface State {
3
4
  alice: any;
4
5
  bob: any;
5
6
  advertised: boolean;
6
7
  queryUrl: (collectionId: string) => string;
7
8
  resourceUrl: (collectionId: string, resourceId: string) => string;
9
+ /** Set by the `codec path` group setup, when the feature is advertised. */
10
+ codec?: {
11
+ space: Space;
12
+ searchable: Collection;
13
+ unique: Collection;
14
+ };
8
15
  }
9
16
  export declare const blindedIndexApi: Suite<State>;
10
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"blinded-index-api.d.ts","sourceRoot":"","sources":["../../src/suites/blinded-index-api.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAKhD,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;CAClE;AAuCD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CAgexC,CAAA"}
1
+ {"version":3,"file":"blinded-index-api.d.ts","sourceRoot":"","sources":["../../src/suites/blinded-index-api.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAY,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAgBtE,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IACjE,2EAA2E;IAC3E,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,KAAK,CAAA;QACZ,UAAU,EAAE,UAAU,CAAA;QACtB,MAAM,EAAE,UAAU,CAAA;KACnB,CAAA;CACF;AAmFD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CAwoBxC,CAAA"}
@@ -19,10 +19,23 @@
19
19
  * server matches them opaquely, so no real crypto is exercised here. Signed
20
20
  * queries and writes use the raw `ZcapClient.request()` escape hatch, like the
21
21
  * sibling `changes` profile suite.
22
+ *
23
+ * The `codec path` group is the counterpart to that: instead of hand-built
24
+ * envelopes it drives `@interop/was-client`'s EDV codec -- a collection
25
+ * provisioned with a blinding key, an attribute declared searchable, documents
26
+ * written with `add()` and matched with `find()`. That is what proves the
27
+ * tokens a real client computes are the tokens this server matches, which
28
+ * hand-built fixtures cannot show.
22
29
  */
23
30
  import assert from '../harness/assert.js';
31
+ import { ConflictError, WasClient } from '@interop/was-client';
32
+ import { createEdvEncryption, ensureFirstEpoch, ownerRecipient } from '@interop/was-client/edv';
33
+ import { X25519KeyAgreementKey2020 } from '@interop/x25519-key-agreement-key';
34
+ import { Ed25519VerificationKey } from '@interop/ed25519-verification-key';
24
35
  /** The (opaque) HMAC key id every seeded envelope indexes under. */
25
36
  const HMAC_ID = 'did:key:zHmacBlindedIndexKeyA';
37
+ /** The label of the group whose fixtures the was-client codec writes. */
38
+ const CODEC_GROUP = 'codec path';
26
39
  /**
27
40
  * Builds a stored EDV encrypted-document envelope carrying one blinded
28
41
  * `indexed` entry (structurally what `@interop/edv-client` produces). Each
@@ -53,6 +66,45 @@ function envelope({ id, attributes }) {
53
66
  }
54
67
  };
55
68
  }
69
+ /**
70
+ * Builds an encryption-capable WAS client over a fresh Ed25519 signer, plus
71
+ * the X25519 key-agreement key the collection's first epoch (and its blinding
72
+ * key) wraps to. The suite's shared actors carry plaintext clients only, so the
73
+ * codec-path group needs its own identity and keystore.
74
+ *
75
+ * @param options {object}
76
+ * @param options.serverUrl {string} the server under test
77
+ * @returns {Promise<{ was: WasClient, keyAgreementKey: IKeyAgreementKey }>}
78
+ */
79
+ async function encryptedClient({ serverUrl }) {
80
+ const keyPair = await Ed25519VerificationKey.generate();
81
+ const did = `did:key:${keyPair.fingerprint()}`;
82
+ keyPair.id = `${did}#${keyPair.fingerprint()}`;
83
+ keyPair.controller = did;
84
+ const kak = await X25519KeyAgreementKey2020.generate({ controller: did });
85
+ const keyResolver = async ({ id }) => {
86
+ if (id !== kak.id) {
87
+ throw new Error(`Unknown key id "${id}".`);
88
+ }
89
+ return {
90
+ id: kak.id,
91
+ type: kak.type,
92
+ publicKeyMultibase: kak.publicKeyMultibase
93
+ };
94
+ };
95
+ const keyAgreementKey = kak;
96
+ const encryption = createEdvEncryption({
97
+ resolveKeys: async () => ({ keyAgreementKey, keyResolver })
98
+ });
99
+ return {
100
+ was: WasClient.fromSigner({
101
+ serverUrl,
102
+ signer: keyPair.signer(),
103
+ encryption
104
+ }),
105
+ keyAgreementKey
106
+ };
107
+ }
56
108
  export const blindedIndexApi = {
57
109
  id: 'blinded-index-api',
58
110
  name: 'Blinded-index query profile',
@@ -134,7 +186,7 @@ export const blindedIndexApi = {
134
186
  return { alice, bob, advertised, queryUrl, resourceUrl };
135
187
  },
136
188
  teardown: async (ctx, state) => {
137
- const { alice } = state;
189
+ const { alice, codec } = state;
138
190
  try {
139
191
  await alice.rootClient.request({
140
192
  url: new URL(`/space/${alice.space1.id}`, ctx.serverUrl).toString(),
@@ -144,7 +196,75 @@ export const blindedIndexApi = {
144
196
  catch {
145
197
  /* best-effort cleanup */
146
198
  }
199
+ try {
200
+ await codec?.space.delete();
201
+ }
202
+ catch {
203
+ /* best-effort cleanup */
204
+ }
147
205
  },
206
+ groups: [
207
+ {
208
+ name: CODEC_GROUP,
209
+ setup: async (ctx, state) => {
210
+ if (!state.advertised) {
211
+ return;
212
+ }
213
+ // A Space of its own, controlled by the encrypting client's DID: the
214
+ // shared actors' clients hold no keys, so they cannot write here.
215
+ const { was, keyAgreementKey } = await encryptedClient({
216
+ serverUrl: ctx.serverUrl
217
+ });
218
+ const space = await ctx.provisionSpace({
219
+ was,
220
+ name: 'Blinded Codec Space'
221
+ });
222
+ /**
223
+ * Provisions an encrypted, searchable Collection and declares one
224
+ * attribute on it. The blinding key installs with epoch[0] or never,
225
+ * so `blindedIndex` is asked for at provisioning time.
226
+ *
227
+ * @param options {object}
228
+ * @param options.id {string} the Collection id
229
+ * @param options.attribute {string} the dotted attribute path
230
+ * @param [options.unique] {boolean} claim the value exclusively
231
+ * @returns {Promise<Collection>}
232
+ */
233
+ async function searchableCollection({ id, attribute, unique }) {
234
+ const declared = await space.createCollection({
235
+ id,
236
+ encryption: { scheme: 'edv' }
237
+ });
238
+ await ensureFirstEpoch({
239
+ collection: declared,
240
+ recipients: [ownerRecipient({ keyAgreementKey })],
241
+ blindedIndex: true
242
+ });
243
+ const collection = was.space(space.id).collection(id);
244
+ await collection.declareIndex({
245
+ attribute,
246
+ ...(unique && { unique })
247
+ });
248
+ return collection;
249
+ }
250
+ const searchable = await searchableCollection({
251
+ id: 'codec-vault',
252
+ attribute: 'content.type'
253
+ });
254
+ // Two `note`s and one `task`: enough to tell a match from a non-match.
255
+ await searchable.add({ type: 'note', title: 'alpha' });
256
+ await searchable.add({ type: 'note', title: 'beta' });
257
+ await searchable.add({ type: 'task', title: 'gamma' });
258
+ const unique = await searchableCollection({
259
+ id: 'codec-vault-unique',
260
+ attribute: 'content.serial',
261
+ unique: true
262
+ });
263
+ await unique.add({ serial: 'serial-1', title: 'holder' });
264
+ state.codec = { space, searchable, unique };
265
+ }
266
+ }
267
+ ],
148
268
  tests: [
149
269
  {
150
270
  id: 'blinded.equals-match-ascending',
@@ -462,6 +582,90 @@ export const blindedIndexApi = {
462
582
  assert.match(maskedError.response.headers.get('content-type'), /application\/problem\+json/);
463
583
  assert.equal(maskedError.data.type, 'https://wallet.storage/spec#not-found');
464
584
  }
585
+ },
586
+ {
587
+ id: 'blinded.codec-equals-roundtrip',
588
+ name: 'codec-written documents match on equals and round-trip decrypted',
589
+ group: CODEC_GROUP,
590
+ specRefs: [
591
+ 'https://wallet.storage/spec#query-profile-blinded-index',
592
+ 'https://wallet.storage/spec#encryption-scheme-registry'
593
+ ],
594
+ run: async (ctx, state) => {
595
+ const { advertised, codec } = state;
596
+ if (!advertised) {
597
+ ctx.skip('backend does not advertise blinded-index-query');
598
+ }
599
+ assert.ok(codec, 'expected the codec-path fixtures');
600
+ // The tokens are computed by the client's blinding key, so a match
601
+ // here is the end-to-end proof the two sides agree on the encoding.
602
+ const page = (await codec.searchable.find({
603
+ equals: { 'content.type': 'note' }
604
+ }));
605
+ const titles = page.items
606
+ .map(item => item.data.title)
607
+ .sort();
608
+ assert.deepEqual(titles, ['alpha', 'beta']);
609
+ assert.equal(page.hasMore, false);
610
+ }
611
+ },
612
+ {
613
+ id: 'blinded.codec-has-and-count',
614
+ name: 'codec-written documents match on has, and count returns just the tally',
615
+ group: CODEC_GROUP,
616
+ specRefs: ['https://wallet.storage/spec#query-profile-blinded-index'],
617
+ run: async (ctx, state) => {
618
+ const { advertised, codec } = state;
619
+ if (!advertised) {
620
+ ctx.skip('backend does not advertise blinded-index-query');
621
+ }
622
+ assert.ok(codec, 'expected the codec-path fixtures');
623
+ // Every document carries the declared attribute, whatever its value.
624
+ const page = (await codec.searchable.find({
625
+ has: 'content.type'
626
+ }));
627
+ assert.equal(page.items.length, 3);
628
+ const counted = await codec.searchable.find({
629
+ equals: { 'content.type': 'task' },
630
+ count: true
631
+ });
632
+ assert.deepEqual(counted, { count: 1 });
633
+ }
634
+ },
635
+ {
636
+ id: 'blinded.codec-unique-conflict',
637
+ name: 'a codec write colliding on a unique declared attribute is id-conflict (409)',
638
+ group: CODEC_GROUP,
639
+ specRefs: [
640
+ 'https://wallet.storage/spec#unique-blinded-attributes',
641
+ 'https://wallet.storage/spec#id-conflict'
642
+ ],
643
+ run: async (ctx, state) => {
644
+ const { advertised, codec } = state;
645
+ if (!advertised) {
646
+ ctx.skip('backend does not advertise blinded-index-query');
647
+ }
648
+ assert.ok(codec, 'expected the codec-path fixtures');
649
+ // `content.serial` is declared unique, so the codec stamps its blinded
650
+ // entry with `unique: true` and a second claimant of the same value is
651
+ // refused -- the client surfacing the server's 409 as a ConflictError.
652
+ let conflictError;
653
+ try {
654
+ await codec.unique.add({ serial: 'serial-1', title: 'claimant' });
655
+ }
656
+ catch (err) {
657
+ conflictError = err;
658
+ }
659
+ assert.ok(conflictError, 'expected the colliding write to be rejected');
660
+ assert.ok(conflictError instanceof ConflictError, `expected a ConflictError, got ${conflictError?.name}`);
661
+ assert.equal(conflictError.status, 409);
662
+ // A different value under the same unique attribute still writes.
663
+ const { id } = await codec.unique.add({
664
+ serial: 'serial-2',
665
+ title: 'other'
666
+ });
667
+ assert.ok(id, 'expected the non-colliding write to succeed');
668
+ }
465
669
  }
466
670
  ]
467
671
  };
@@ -1 +1 @@
1
- {"version":3,"file":"blinded-index-api.js","sourceRoot":"","sources":["../../src/suites/blinded-index-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blinded-index-api.js","sourceRoot":"","sources":["../../src/suites/blinded-index-api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../src/suites/collection-api.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;CACX;AAsCD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAuctC,CAAA"}
1
+ {"version":3,"file":"collection-api.d.ts","sourceRoot":"","sources":["../../src/suites/collection-api.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,UAAU,KAAK;IACb,KAAK,EAAE,GAAG,CAAA;CACX;AAmHD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAg4BtC,CAAA"}
@@ -33,6 +33,59 @@ async function getWithCapability({ url, capability, invocationSigner }) {
33
33
  headers: signatureHeaders
34
34
  });
35
35
  }
36
+ /**
37
+ * Provisions a fresh Collection with a random id, returning its `/meta` URL and
38
+ * the Collection URL it hangs off. Every Collection Metadata test works on its
39
+ * own Collection, so the `metaVersion` sequence a test observes is its own.
40
+ *
41
+ * @param options {object}
42
+ * @param options.ctx {any} the test context (for `serverUrl` / `generateId`)
43
+ * @param options.alice {any} the suite's root actor
44
+ * @returns {Promise<{collectionUrl: string, metaUrl: string}>}
45
+ */
46
+ async function freshCollection({ ctx, alice }) {
47
+ const collectionId = ctx.generateId();
48
+ const collectionUrl = new URL(`/space/${alice.space1.id}/${collectionId}`, ctx.serverUrl).toString();
49
+ await alice.rootClient.request({
50
+ url: collectionUrl,
51
+ method: 'PUT',
52
+ action: 'PUT',
53
+ json: { id: collectionId, name: 'Metadata Collection' }
54
+ });
55
+ return { collectionUrl, metaUrl: `${collectionUrl}/meta` };
56
+ }
57
+ /**
58
+ * Sends a signed Collection Metadata request, translating a 501
59
+ * `unsupported-operation` into a skip: Collection Metadata is an OPTIONAL
60
+ * feature, so a server that does not implement it must not be failed for it.
61
+ * Any other error is rethrown for the caller to assert on.
62
+ *
63
+ * @param options {object}
64
+ * @param options.ctx {any} the test context (for `ctx.skip`)
65
+ * @param options.alice {any} the suite's root actor
66
+ * @param options.url {string} the `/meta` URL
67
+ * @param options.method {string} 'GET' or 'PUT'
68
+ * @param [options.json] {object} the request body, for a PUT
69
+ * @param [options.headers] {object} extra request headers (preconditions)
70
+ * @returns {Promise<any>}
71
+ */
72
+ async function metaRequestOrSkip({ ctx, alice, url, method, json, headers }) {
73
+ try {
74
+ return await alice.rootClient.request({
75
+ url,
76
+ method,
77
+ action: method,
78
+ ...(json !== undefined && { json }),
79
+ ...(headers !== undefined && { headers })
80
+ });
81
+ }
82
+ catch (err) {
83
+ if (err.response?.status === 501) {
84
+ ctx.skip('Collection Metadata (/meta) not implemented (501)');
85
+ }
86
+ throw err;
87
+ }
88
+ }
36
89
  export const collectionApi = {
37
90
  id: 'collection-api',
38
91
  name: 'Collections API',
@@ -411,6 +464,379 @@ export const collectionApi = {
411
464
  'p05'
412
465
  ]);
413
466
  }
467
+ },
468
+ {
469
+ id: 'collection.meta-get-or-skip',
470
+ name: '[root] GET Collection Metadata (/meta), or skip if unimplemented',
471
+ group: 'Collection Metadata',
472
+ specRefs: [
473
+ 'https://wallet.storage/spec#read-collection-metadata-operation',
474
+ 'https://wallet.storage/spec#collection-metadata-data-model'
475
+ ],
476
+ run: async (ctx, state) => {
477
+ const { alice } = state;
478
+ // Collection Metadata is OPTIONAL: a server that does not implement it
479
+ // responds 501 `unsupported-operation`, which this test treats as a skip.
480
+ const { metaUrl } = await freshCollection({ ctx, alice });
481
+ const response = await metaRequestOrSkip({
482
+ ctx,
483
+ alice,
484
+ url: metaUrl,
485
+ method: 'GET'
486
+ });
487
+ assert.equal(response.status, 200);
488
+ assert.match(response.headers.get('content-type'), /application\/json/);
489
+ // `metaVersion` is an out-of-band validator (the ETag), never a member
490
+ // of the Metadata body.
491
+ assert.equal(response.data.metaVersion, undefined);
492
+ // An anonymous (unsigned) meta read must not leak existence: the
493
+ // Collection carries no public-read policy, so 404 problem+json.
494
+ const anonResponse = await fetch(new URL(metaUrl));
495
+ assert.equal(anonResponse.status, 404);
496
+ assert.match(anonResponse.headers.get('content-type'), /application\/problem\+json/);
497
+ }
498
+ },
499
+ {
500
+ id: 'collection.meta-put-get-roundtrip',
501
+ name: '[root] PUT Collection Metadata sets `custom`, round-tripped by GET',
502
+ group: 'Collection Metadata',
503
+ specRefs: [
504
+ 'https://wallet.storage/spec#update-collection-metadata-operation',
505
+ 'https://wallet.storage/spec#read-collection-metadata-operation'
506
+ ],
507
+ run: async (ctx, state) => {
508
+ const { alice } = state;
509
+ const { metaUrl } = await freshCollection({ ctx, alice });
510
+ const custom = { name: 'Trip Photos', tags: { app: 'gallery' } };
511
+ const putResponse = await metaRequestOrSkip({
512
+ ctx,
513
+ alice,
514
+ url: metaUrl,
515
+ method: 'PUT',
516
+ json: { custom }
517
+ });
518
+ assert.ok(putResponse.status === 204 || putResponse.status === 200, `expected a success status, got ${putResponse.status}`);
519
+ // The write returns the new metadata validator so a client can chain a
520
+ // conditional metadata write.
521
+ const writtenEtag = putResponse.headers.get('etag');
522
+ assert.ok(writtenEtag, 'expected an ETag on the metadata write');
523
+ const getResponse = await alice.rootClient.request({
524
+ url: metaUrl,
525
+ method: 'GET'
526
+ });
527
+ assert.equal(getResponse.status, 200);
528
+ assert.equal(getResponse.headers.get('etag'), writtenEtag);
529
+ assert.deepStrictEqual(getResponse.data.custom, custom);
530
+ // Server-managed timestamps are recorded once metadata has been written.
531
+ assert.ok(!Number.isNaN(Date.parse(getResponse.data.createdAt)), '`createdAt` should be a timestamp');
532
+ assert.ok(!Number.isNaN(Date.parse(getResponse.data.updatedAt)), '`updatedAt` should be a timestamp');
533
+ }
534
+ },
535
+ {
536
+ id: 'collection.meta-put-full-replacement',
537
+ name: '[root] PUT Collection Metadata is a full replacement; a body with no ' +
538
+ '`custom` clears it',
539
+ group: 'Collection Metadata',
540
+ specRefs: [
541
+ 'https://wallet.storage/spec#update-collection-metadata-operation'
542
+ ],
543
+ run: async (ctx, state) => {
544
+ const { alice } = state;
545
+ const { metaUrl } = await freshCollection({ ctx, alice });
546
+ const first = await metaRequestOrSkip({
547
+ ctx,
548
+ alice,
549
+ url: metaUrl,
550
+ method: 'PUT',
551
+ json: { custom: { name: 'Temporary', tags: { a: 'b' } } }
552
+ });
553
+ const firstEtag = first.headers.get('etag');
554
+ const cleared = await alice.rootClient.request({
555
+ url: metaUrl,
556
+ method: 'PUT',
557
+ action: 'PUT',
558
+ json: {}
559
+ });
560
+ assert.ok(cleared.status === 204 || cleared.status === 200, `expected a success status, got ${cleared.status}`);
561
+ assert.notEqual(cleared.headers.get('etag'), firstEtag, 'the metadata validator advances on every write');
562
+ const getResponse = await alice.rootClient.request({
563
+ url: metaUrl,
564
+ method: 'GET'
565
+ });
566
+ assert.equal(getResponse.status, 200);
567
+ // Every user-writable property is gone (an absent `custom`, or an
568
+ // empty one).
569
+ assert.deepStrictEqual(getResponse.data.custom ?? {}, {});
570
+ }
571
+ },
572
+ {
573
+ id: 'collection.meta-put-ignores-server-managed',
574
+ name: '[root] PUT Collection Metadata ignores server-managed top-level ' +
575
+ 'members (read-modify-write is safe)',
576
+ group: 'Collection Metadata',
577
+ specRefs: [
578
+ 'https://wallet.storage/spec#update-collection-metadata-operation',
579
+ 'https://wallet.storage/spec#collection-metadata-data-model'
580
+ ],
581
+ run: async (ctx, state) => {
582
+ const { alice } = state;
583
+ const { metaUrl } = await freshCollection({ ctx, alice });
584
+ await metaRequestOrSkip({
585
+ ctx,
586
+ alice,
587
+ url: metaUrl,
588
+ method: 'PUT',
589
+ json: { custom: { name: 'Before' } }
590
+ });
591
+ // Read the whole Metadata object, tweak `custom`, and PUT it back
592
+ // unstripped -- with the server-managed members deliberately falsified.
593
+ const before = await alice.rootClient.request({
594
+ url: metaUrl,
595
+ method: 'GET'
596
+ });
597
+ const managedCreatedAt = before.data.createdAt;
598
+ const putResponse = await alice.rootClient.request({
599
+ url: metaUrl,
600
+ method: 'PUT',
601
+ action: 'PUT',
602
+ json: {
603
+ ...before.data,
604
+ createdBy: 'did:key:zSomeoneElse',
605
+ createdAt: '1999-01-01T00:00:00.000Z',
606
+ custom: { name: 'After' }
607
+ }
608
+ });
609
+ assert.ok(putResponse.status === 204 || putResponse.status === 200, `expected a success status, got ${putResponse.status}`);
610
+ const after = await alice.rootClient.request({
611
+ url: metaUrl,
612
+ method: 'GET'
613
+ });
614
+ assert.equal(after.status, 200);
615
+ assert.equal(after.data.createdAt, managedCreatedAt);
616
+ assert.notEqual(after.data.createdBy, 'did:key:zSomeoneElse');
617
+ // Only the user-writable `custom` was applied.
618
+ assert.deepStrictEqual(after.data.custom, { name: 'After' });
619
+ }
620
+ },
621
+ {
622
+ id: 'collection.meta-put-missing-collection-404',
623
+ name: '[root] PUT Collection Metadata on a nonexistent Collection 404s ' +
624
+ '(never creates)',
625
+ group: 'Collection Metadata',
626
+ specRefs: [
627
+ 'https://wallet.storage/spec#update-collection-metadata-operation',
628
+ 'https://wallet.storage/spec#not-found'
629
+ ],
630
+ run: async (ctx, state) => {
631
+ const { serverUrl } = ctx;
632
+ const { alice } = state;
633
+ // Probe first, so an unimplemented server skips rather than passing on
634
+ // an unrelated 404.
635
+ const { metaUrl } = await freshCollection({ ctx, alice });
636
+ await metaRequestOrSkip({ ctx, alice, url: metaUrl, method: 'GET' });
637
+ const missingMetaUrl = new URL(`/space/${alice.space1.id}/collection-that-does-not-exist/meta`, serverUrl).toString();
638
+ let expectedError;
639
+ try {
640
+ await alice.rootClient.request({
641
+ url: missingMetaUrl,
642
+ method: 'PUT',
643
+ action: 'PUT',
644
+ json: { custom: { name: 'nope' } }
645
+ });
646
+ }
647
+ catch (err) {
648
+ expectedError = err;
649
+ }
650
+ assert.ok(expectedError, 'expected a metadata write on a missing Collection to be rejected');
651
+ assert.equal(expectedError.response.status, 404);
652
+ assert.match(expectedError.response.headers.get('content-type'), /application\/problem\+json/);
653
+ }
654
+ },
655
+ {
656
+ id: 'collection.meta-put-non-object-custom-400',
657
+ name: '[root] PUT Collection Metadata with a non-object `custom` is ' +
658
+ 'rejected with 400 invalid-request-body',
659
+ group: 'Collection Metadata',
660
+ specRefs: [
661
+ 'https://wallet.storage/spec#update-collection-metadata-operation',
662
+ 'https://wallet.storage/spec#invalid-request-body'
663
+ ],
664
+ run: async (ctx, state) => {
665
+ const { alice } = state;
666
+ const { metaUrl } = await freshCollection({ ctx, alice });
667
+ let expectedError;
668
+ try {
669
+ await metaRequestOrSkip({
670
+ ctx,
671
+ alice,
672
+ url: metaUrl,
673
+ method: 'PUT',
674
+ json: { custom: 'not-an-object' }
675
+ });
676
+ }
677
+ catch (err) {
678
+ expectedError = err;
679
+ }
680
+ assert.ok(expectedError, 'expected a non-object `custom` to be rejected');
681
+ assert.equal(expectedError.response.status, 400);
682
+ assert.equal(expectedError.data.type, 'https://wallet.storage/spec#invalid-request-body');
683
+ }
684
+ },
685
+ {
686
+ id: 'collection.meta-conditional-if-match',
687
+ name: '[root] a stale `If-Match` on Collection Metadata 412s; the current ' +
688
+ 'one succeeds',
689
+ group: 'Collection Metadata',
690
+ specRefs: [
691
+ 'https://wallet.storage/spec#update-collection-metadata-operation',
692
+ 'https://wallet.storage/spec#conditional-requests',
693
+ 'https://wallet.storage/spec#precondition-failed'
694
+ ],
695
+ run: async (ctx, state) => {
696
+ const { alice } = state;
697
+ const { metaUrl } = await freshCollection({ ctx, alice });
698
+ const created = await metaRequestOrSkip({
699
+ ctx,
700
+ alice,
701
+ url: metaUrl,
702
+ method: 'PUT',
703
+ json: { custom: { name: 'One' } }
704
+ });
705
+ const currentEtag = created.headers.get('etag');
706
+ assert.ok(currentEtag, 'expected an ETag on the metadata write');
707
+ // A validator that cannot be current MUST NOT write, and MUST 412.
708
+ let expectedError;
709
+ try {
710
+ await alice.rootClient.request({
711
+ url: metaUrl,
712
+ method: 'PUT',
713
+ action: 'PUT',
714
+ json: { custom: { name: 'Two' } },
715
+ headers: { 'if-match': '"99999"' }
716
+ });
717
+ }
718
+ catch (err) {
719
+ expectedError = err;
720
+ }
721
+ assert.ok(expectedError, 'expected a stale If-Match to be rejected');
722
+ assert.equal(expectedError.response.status, 412);
723
+ assert.equal(expectedError.data.type, 'https://wallet.storage/spec#precondition-failed');
724
+ // The rejected write left the stored metadata alone.
725
+ const unchanged = await alice.rootClient.request({
726
+ url: metaUrl,
727
+ method: 'GET'
728
+ });
729
+ assert.deepStrictEqual(unchanged.data.custom, { name: 'One' });
730
+ // The matching precondition is satisfied: the write proceeds.
731
+ const updated = await alice.rootClient.request({
732
+ url: metaUrl,
733
+ method: 'PUT',
734
+ action: 'PUT',
735
+ json: { custom: { name: 'Two' } },
736
+ headers: { 'if-match': currentEtag }
737
+ });
738
+ assert.ok(updated.status === 204 || updated.status === 200, `expected a success status, got ${updated.status}`);
739
+ assert.notEqual(updated.headers.get('etag'), currentEtag);
740
+ const after = await alice.rootClient.request({
741
+ url: metaUrl,
742
+ method: 'GET'
743
+ });
744
+ assert.deepStrictEqual(after.data.custom, { name: 'Two' });
745
+ }
746
+ },
747
+ {
748
+ id: 'collection.meta-etag-independent-of-description',
749
+ name: '[root] the Collection Metadata ETag is independent of the Collection ' +
750
+ 'Description ETag',
751
+ group: 'Collection Metadata',
752
+ specRefs: [
753
+ 'https://wallet.storage/spec#collection-metadata-data-model',
754
+ 'https://wallet.storage/spec#conditional-requests'
755
+ ],
756
+ run: async (ctx, state) => {
757
+ const { alice } = state;
758
+ const { collectionUrl, metaUrl } = await freshCollection({ ctx, alice });
759
+ const described = await alice.rootClient.request({
760
+ url: collectionUrl,
761
+ method: 'GET'
762
+ });
763
+ const descriptionEtag = described.headers.get('etag');
764
+ if (!descriptionEtag) {
765
+ ctx.skip('server does not emit an ETag on the Collection Description');
766
+ }
767
+ // A metadata write does not disturb the description validator...
768
+ await metaRequestOrSkip({
769
+ ctx,
770
+ alice,
771
+ url: metaUrl,
772
+ method: 'PUT',
773
+ json: { custom: { name: 'Independent' } }
774
+ });
775
+ const afterMeta = await alice.rootClient.request({
776
+ url: collectionUrl,
777
+ method: 'GET'
778
+ });
779
+ assert.equal(afterMeta.headers.get('etag'), descriptionEtag);
780
+ const metaEtag = (await alice.rootClient.request({ url: metaUrl, method: 'GET' })).headers.get('etag');
781
+ // ...and a description write does not disturb the metadata validator.
782
+ await alice.rootClient.request({
783
+ url: collectionUrl,
784
+ method: 'PUT',
785
+ action: 'PUT',
786
+ json: {
787
+ id: described.data.id,
788
+ type: ['Collection'],
789
+ name: 'Renamed'
790
+ }
791
+ });
792
+ const afterDescription = await alice.rootClient.request({
793
+ url: collectionUrl,
794
+ method: 'GET'
795
+ });
796
+ assert.notEqual(afterDescription.headers.get('etag'), descriptionEtag);
797
+ const metaAfter = await alice.rootClient.request({
798
+ url: metaUrl,
799
+ method: 'GET'
800
+ });
801
+ assert.equal(metaAfter.headers.get('etag'), metaEtag);
802
+ assert.deepStrictEqual(metaAfter.data.custom, { name: 'Independent' });
803
+ }
804
+ },
805
+ {
806
+ id: 'collection.meta-reserved-resource-id-409',
807
+ name: '[root] `meta` is a reserved Resource id where Collection Metadata is ' +
808
+ 'implemented (409 reserved-id)',
809
+ group: 'Collection Metadata',
810
+ specRefs: [
811
+ 'https://wallet.storage/spec#reserved-path-segment-registry',
812
+ 'https://wallet.storage/spec#reserved-id'
813
+ ],
814
+ run: async (ctx, state) => {
815
+ const { alice } = state;
816
+ // The Collection Metadata route occupies the `{resourceId}` position, so
817
+ // a Resource may not be named `meta`. The GET/PUT verbs at that URL are
818
+ // the Metadata operations themselves; DELETE falls through to the
819
+ // Resource route, where the reserved-id check rejects it.
820
+ const { metaUrl } = await freshCollection({ ctx, alice });
821
+ await metaRequestOrSkip({ ctx, alice, url: metaUrl, method: 'GET' });
822
+ let expectedError;
823
+ try {
824
+ await alice.rootClient.request({
825
+ url: metaUrl,
826
+ method: 'DELETE',
827
+ action: 'DELETE'
828
+ });
829
+ }
830
+ catch (err) {
831
+ expectedError = err;
832
+ }
833
+ assert.ok(expectedError, 'expected a Resource named `meta` to be rejected');
834
+ if (expectedError.response.status === 405) {
835
+ ctx.skip('server does not route DELETE at the Collection /meta URL');
836
+ }
837
+ assert.equal(expectedError.response.status, 409);
838
+ assert.equal(expectedError.data.type, 'https://wallet.storage/spec#reserved-id');
839
+ }
414
840
  }
415
841
  ]
416
842
  };
@@ -1 +1 @@
1
- {"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../src/suites/collection-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-api.js","sourceRoot":"","sources":["../../src/suites/collection-api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@interop/was-conformance-suite",
3
3
  "description": "Conformance test suite for Wallet Attached Storage (WAS) servers, runnable as a CLI or in the browser.",
4
- "version": "0.4.3",
4
+ "version": "0.6.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "pnpm run clear && tsc",
@@ -48,15 +48,16 @@
48
48
  "@interop/ezcap": "^7.4.1",
49
49
  "@interop/http-digest-header": "^3.0.0",
50
50
  "@interop/http-signature-zcap-invoke": "^6.2.4",
51
+ "@interop/x25519-key-agreement-key": "^5.2.1",
51
52
  "assert": "^2.1.0",
52
53
  "uuid": "^14.0.0"
53
54
  },
54
55
  "peerDependencies": {
55
- "@interop/was-client": ">=0.18.0 <1.0.0"
56
+ "@interop/was-client": ">=0.35.0 <1.0.0"
56
57
  },
57
58
  "devDependencies": {
58
59
  "@eslint/js": "^10.0.1",
59
- "@interop/was-client": "^0.23.0",
60
+ "@interop/was-client": "^0.35.1",
60
61
  "@playwright/test": "^1.60.0",
61
62
  "@types/node": "^26.0.1",
62
63
  "@vitest/coverage-v8": "^4.1.7",