@didcid/gatekeeper 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{abstract-json-BJMq-iEa.cjs → abstract-json-DNKwEI6F.cjs} +1 -1
- package/dist/cjs/db/json-cache.cjs +1 -1
- package/dist/cjs/db/json-memory.cjs +1 -1
- package/dist/cjs/db/json.cjs +1 -1
- package/dist/cjs/db/mongo.cjs +5 -5
- package/dist/cjs/db/redis.cjs +6 -6
- package/dist/cjs/db/sqlite.cjs +2 -2
- package/dist/cjs/gatekeeper-client.cjs +21 -0
- package/dist/cjs/gatekeeper.cjs +220 -39
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/node.cjs +1 -1
- package/dist/esm/db/abstract-json.js +1 -1
- package/dist/esm/db/abstract-json.js.map +1 -1
- package/dist/esm/db/mongo.js +5 -5
- package/dist/esm/db/mongo.js.map +1 -1
- package/dist/esm/db/redis.js +6 -6
- package/dist/esm/db/redis.js.map +1 -1
- package/dist/esm/db/sqlite.js +2 -2
- package/dist/esm/db/sqlite.js.map +1 -1
- package/dist/esm/gatekeeper-client.js +21 -0
- package/dist/esm/gatekeeper-client.js.map +1 -1
- package/dist/esm/gatekeeper.js +104 -39
- package/dist/esm/gatekeeper.js.map +1 -1
- package/dist/esm/search-index.js +118 -0
- package/dist/esm/search-index.js.map +1 -0
- package/dist/types/gatekeeper-client.d.ts +5 -0
- package/dist/types/gatekeeper.d.ts +10 -2
- package/dist/types/search-index.d.ts +12 -0
- package/dist/types/types.d.ts +16 -7
- package/package.json +2 -2
package/dist/esm/gatekeeper.js
CHANGED
|
@@ -2,6 +2,12 @@ import CipherNode from '@didcid/cipher/node';
|
|
|
2
2
|
import { copyJSON, compareOrdinals } from '@didcid/common/utils';
|
|
3
3
|
import { isValidDID, generateCID } from '@didcid/ipfs/utils';
|
|
4
4
|
import { InvalidParameterError, InvalidOperationError } from '@didcid/common/errors';
|
|
5
|
+
import { base64url } from 'multiformats/bases/base64';
|
|
6
|
+
import SearchIndex from './search-index.js';
|
|
7
|
+
function base64urlToHex(b64) {
|
|
8
|
+
const bytes = base64url.baseDecode(b64);
|
|
9
|
+
return Buffer.from(bytes).toString('hex');
|
|
10
|
+
}
|
|
5
11
|
const ValidVersions = [1];
|
|
6
12
|
const ValidTypes = ['agent', 'asset'];
|
|
7
13
|
// Registries that are considered valid when importing DIDs from the network
|
|
@@ -11,7 +17,6 @@ const ValidRegistries = [
|
|
|
11
17
|
'BTC:mainnet',
|
|
12
18
|
'BTC:testnet4',
|
|
13
19
|
'BTC:signet',
|
|
14
|
-
'FTC:testnet5',
|
|
15
20
|
];
|
|
16
21
|
var ImportStatus;
|
|
17
22
|
(function (ImportStatus) {
|
|
@@ -33,6 +38,7 @@ export default class Gatekeeper {
|
|
|
33
38
|
maxQueueSize;
|
|
34
39
|
supportedRegistries;
|
|
35
40
|
didLocks = new Map();
|
|
41
|
+
searchIndex;
|
|
36
42
|
constructor(options) {
|
|
37
43
|
if (!options || !options.db) {
|
|
38
44
|
throw new InvalidParameterError('missing options.db');
|
|
@@ -60,6 +66,30 @@ export default class Gatekeeper {
|
|
|
60
66
|
throw new InvalidParameterError(`registry=${registry}`);
|
|
61
67
|
}
|
|
62
68
|
}
|
|
69
|
+
this.searchIndex = new SearchIndex();
|
|
70
|
+
}
|
|
71
|
+
async initSearchIndex() {
|
|
72
|
+
const dids = await this.getDIDs();
|
|
73
|
+
for (const did of dids) {
|
|
74
|
+
try {
|
|
75
|
+
const doc = await this.resolveDID(did);
|
|
76
|
+
this.searchIndex.store(did, doc);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Skip DIDs that can't be resolved
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
console.log(`Search index initialized with ${this.searchIndex.size} DIDs`);
|
|
83
|
+
}
|
|
84
|
+
async updateSearchIndex(did) {
|
|
85
|
+
try {
|
|
86
|
+
const doc = await this.resolveDID(did);
|
|
87
|
+
this.searchIndex.store(did, doc);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// If DID can't be resolved, remove from index
|
|
91
|
+
this.searchIndex.delete(did);
|
|
92
|
+
}
|
|
63
93
|
}
|
|
64
94
|
async withDidLock(did, fn) {
|
|
65
95
|
const prev = this.didLocks.get(did) ?? Promise.resolve();
|
|
@@ -188,7 +218,7 @@ export default class Gatekeeper {
|
|
|
188
218
|
if (registry) {
|
|
189
219
|
byRegistry[registry] = (byRegistry[registry] || 0) + 1;
|
|
190
220
|
}
|
|
191
|
-
const version = doc.didDocumentMetadata?.
|
|
221
|
+
const version = doc.didDocumentMetadata?.versionSequence;
|
|
192
222
|
if (version != null) {
|
|
193
223
|
const versionNum = parseInt(version, 10);
|
|
194
224
|
if (!isNaN(versionNum)) {
|
|
@@ -210,6 +240,7 @@ export default class Gatekeeper {
|
|
|
210
240
|
async resetDb() {
|
|
211
241
|
await this.db.resetDb();
|
|
212
242
|
this.verifiedDIDs = {};
|
|
243
|
+
this.searchIndex.clear();
|
|
213
244
|
return true;
|
|
214
245
|
}
|
|
215
246
|
async generateCID(operation, save = false) {
|
|
@@ -249,21 +280,29 @@ export default class Gatekeeper {
|
|
|
249
280
|
const hex64Regex = /^[a-f0-9]{64}$/i;
|
|
250
281
|
return hex64Regex.test(hash);
|
|
251
282
|
}
|
|
252
|
-
|
|
253
|
-
if (!
|
|
283
|
+
verifyProofFormat(proof) {
|
|
284
|
+
if (!proof) {
|
|
254
285
|
return false;
|
|
255
286
|
}
|
|
256
|
-
if (
|
|
287
|
+
if (proof.type !== "EcdsaSecp256k1Signature2019") {
|
|
257
288
|
return false;
|
|
258
289
|
}
|
|
259
|
-
if (!this.
|
|
290
|
+
if (!this.verifyDateFormat(proof.created)) {
|
|
260
291
|
return false;
|
|
261
292
|
}
|
|
262
|
-
|
|
263
|
-
if (signature.signer && !this.verifyDIDFormat(signature.signer)) {
|
|
293
|
+
if (!proof.proofPurpose || !["assertionMethod", "authentication"].includes(proof.proofPurpose)) {
|
|
264
294
|
return false;
|
|
265
295
|
}
|
|
266
|
-
|
|
296
|
+
// Validate verificationMethod format: did:...#key-N or #key-N (relative reference for create ops)
|
|
297
|
+
if (!proof.verificationMethod || !proof.verificationMethod.includes('#')) {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
const [did] = proof.verificationMethod.split('#');
|
|
301
|
+
// Empty string is valid (relative reference like #key-1), otherwise must be valid DID
|
|
302
|
+
if (did !== '' && !this.verifyDIDFormat(did)) {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
return !!(proof.proofValue && typeof proof.proofValue === 'string');
|
|
267
306
|
}
|
|
268
307
|
async verifyCreateOperation(operation) {
|
|
269
308
|
if (!operation) {
|
|
@@ -291,8 +330,12 @@ export default class Gatekeeper {
|
|
|
291
330
|
if (!ValidRegistries.includes(operation.registration.registry)) {
|
|
292
331
|
throw new InvalidOperationError(`registration.registry=${operation.registration.registry}`);
|
|
293
332
|
}
|
|
294
|
-
if (!this.
|
|
295
|
-
throw new InvalidOperationError('
|
|
333
|
+
if (!this.verifyProofFormat(operation.proof)) {
|
|
334
|
+
throw new InvalidOperationError('proof');
|
|
335
|
+
}
|
|
336
|
+
// For agent create operations, verificationMethod must be relative #key-1 (no DID exists yet)
|
|
337
|
+
if (operation.registration.type === 'agent' && operation.proof.verificationMethod !== '#key-1') {
|
|
338
|
+
throw new InvalidOperationError('proof.verificationMethod must be #key-1 for agent create');
|
|
296
339
|
}
|
|
297
340
|
if (operation.registration.validUntil && !this.verifyDateFormat(operation.registration.validUntil)) {
|
|
298
341
|
throw new InvalidOperationError(`registration.validUntil=${operation.registration.validUntil}`);
|
|
@@ -302,20 +345,23 @@ export default class Gatekeeper {
|
|
|
302
345
|
throw new InvalidOperationError('publicJwk');
|
|
303
346
|
}
|
|
304
347
|
const operationCopy = copyJSON(operation);
|
|
305
|
-
delete operationCopy.
|
|
348
|
+
delete operationCopy.proof;
|
|
306
349
|
const msgHash = this.cipher.hashJSON(operationCopy);
|
|
307
|
-
|
|
350
|
+
const signatureHex = base64urlToHex(operation.proof.proofValue);
|
|
351
|
+
return this.cipher.verifySig(msgHash, signatureHex, operation.publicJwk);
|
|
308
352
|
}
|
|
309
353
|
if (operation.registration.type === 'asset') {
|
|
310
|
-
|
|
354
|
+
// Extract controller DID from verificationMethod
|
|
355
|
+
const [controllerDid] = operation.proof.verificationMethod.split('#');
|
|
356
|
+
if (operation.controller !== controllerDid) {
|
|
311
357
|
throw new InvalidOperationError('signer is not controller');
|
|
312
358
|
}
|
|
313
|
-
const doc = await this.resolveDID(
|
|
359
|
+
const doc = await this.resolveDID(controllerDid, { confirm: true, versionTime: operation.proof.created });
|
|
314
360
|
if (doc.didDocumentRegistration && doc.didDocumentRegistration.registry === 'local' && operation.registration.registry !== 'local') {
|
|
315
361
|
throw new InvalidOperationError(`non-local registry=${operation.registration.registry}`);
|
|
316
362
|
}
|
|
317
363
|
const operationCopy = copyJSON(operation);
|
|
318
|
-
delete operationCopy.
|
|
364
|
+
delete operationCopy.proof;
|
|
319
365
|
const msgHash = this.cipher.hashJSON(operationCopy);
|
|
320
366
|
if (!doc.didDocument ||
|
|
321
367
|
!doc.didDocument.verificationMethod ||
|
|
@@ -325,7 +371,8 @@ export default class Gatekeeper {
|
|
|
325
371
|
}
|
|
326
372
|
// TBD select the right key here, not just the first one
|
|
327
373
|
const publicJwk = doc.didDocument.verificationMethod[0].publicKeyJwk;
|
|
328
|
-
|
|
374
|
+
const signatureHex = base64urlToHex(operation.proof.proofValue);
|
|
375
|
+
return this.cipher.verifySig(msgHash, signatureHex, publicJwk);
|
|
329
376
|
}
|
|
330
377
|
throw new InvalidOperationError(`registration.type=${operation.registration.type}`);
|
|
331
378
|
}
|
|
@@ -333,8 +380,8 @@ export default class Gatekeeper {
|
|
|
333
380
|
if (JSON.stringify(operation).length > this.maxOpBytes) {
|
|
334
381
|
throw new InvalidOperationError('size');
|
|
335
382
|
}
|
|
336
|
-
if (!this.
|
|
337
|
-
throw new InvalidOperationError('
|
|
383
|
+
if (!this.verifyProofFormat(operation.proof)) {
|
|
384
|
+
throw new InvalidOperationError('proof');
|
|
338
385
|
}
|
|
339
386
|
if (!doc?.didDocument) {
|
|
340
387
|
throw new InvalidOperationError('doc.didDocument');
|
|
@@ -344,26 +391,24 @@ export default class Gatekeeper {
|
|
|
344
391
|
}
|
|
345
392
|
if (doc.didDocument.controller) {
|
|
346
393
|
// This DID is an asset, verify with controller's keys
|
|
347
|
-
const controllerDoc = await this.resolveDID(doc.didDocument.controller, { confirm: true, versionTime: operation.
|
|
394
|
+
const controllerDoc = await this.resolveDID(doc.didDocument.controller, { confirm: true, versionTime: operation.proof.created });
|
|
348
395
|
return this.verifyUpdateOperation(operation, controllerDoc);
|
|
349
396
|
}
|
|
350
397
|
if (!doc.didDocument.verificationMethod) {
|
|
351
398
|
throw new InvalidOperationError('doc.didDocument.verificationMethod');
|
|
352
399
|
}
|
|
353
|
-
const
|
|
400
|
+
const proof = operation.proof;
|
|
354
401
|
const jsonCopy = copyJSON(operation);
|
|
355
|
-
delete jsonCopy.
|
|
402
|
+
delete jsonCopy.proof;
|
|
356
403
|
const msgHash = this.cipher.hashJSON(jsonCopy);
|
|
357
|
-
if (signature.hash && signature.hash !== msgHash) {
|
|
358
|
-
return false;
|
|
359
|
-
}
|
|
360
404
|
if (doc.didDocument.verificationMethod.length === 0 ||
|
|
361
405
|
!doc.didDocument.verificationMethod[0].publicKeyJwk) {
|
|
362
406
|
throw new InvalidOperationError('didDocument missing verificationMethod');
|
|
363
407
|
}
|
|
364
|
-
// TBD get the right
|
|
408
|
+
// TBD get the right key here, not just the first one
|
|
365
409
|
const publicJwk = doc.didDocument.verificationMethod[0].publicKeyJwk;
|
|
366
|
-
|
|
410
|
+
const signatureHex = base64urlToHex(proof.proofValue);
|
|
411
|
+
return this.cipher.verifySig(msgHash, signatureHex, publicJwk);
|
|
367
412
|
}
|
|
368
413
|
async queueOperation(registry, operation) {
|
|
369
414
|
// Don't distribute local DIDs
|
|
@@ -383,7 +428,7 @@ export default class Gatekeeper {
|
|
|
383
428
|
async createDID(operation) {
|
|
384
429
|
const valid = await this.verifyCreateOperation(operation);
|
|
385
430
|
if (!valid) {
|
|
386
|
-
throw new InvalidOperationError('
|
|
431
|
+
throw new InvalidOperationError('proof');
|
|
387
432
|
}
|
|
388
433
|
const registry = operation.registration.registry;
|
|
389
434
|
// Reject operations with unsupported registries
|
|
@@ -407,6 +452,7 @@ export default class Gatekeeper {
|
|
|
407
452
|
did
|
|
408
453
|
});
|
|
409
454
|
await this.queueOperation(registry, operation);
|
|
455
|
+
await this.updateSearchIndex(did);
|
|
410
456
|
return did;
|
|
411
457
|
});
|
|
412
458
|
}
|
|
@@ -443,6 +489,9 @@ export default class Gatekeeper {
|
|
|
443
489
|
"authentication": [
|
|
444
490
|
"#key-1"
|
|
445
491
|
],
|
|
492
|
+
"assertionMethod": [
|
|
493
|
+
"#key-1"
|
|
494
|
+
],
|
|
446
495
|
},
|
|
447
496
|
"didDocumentMetadata": {
|
|
448
497
|
"created": anchor.created,
|
|
@@ -555,14 +604,14 @@ export default class Gatekeeper {
|
|
|
555
604
|
if (verify) {
|
|
556
605
|
const valid = await this.verifyCreateOperation(operation);
|
|
557
606
|
if (!valid) {
|
|
558
|
-
throw new InvalidOperationError('
|
|
607
|
+
throw new InvalidOperationError('proof');
|
|
559
608
|
}
|
|
560
609
|
}
|
|
561
610
|
doc.didDocumentMetadata = {
|
|
562
611
|
created,
|
|
563
612
|
canonicalId,
|
|
564
613
|
versionId,
|
|
565
|
-
|
|
614
|
+
versionSequence: versionNum.toString(),
|
|
566
615
|
confirmed,
|
|
567
616
|
timestamp,
|
|
568
617
|
};
|
|
@@ -581,7 +630,7 @@ export default class Gatekeeper {
|
|
|
581
630
|
if (verify) {
|
|
582
631
|
const valid = await this.verifyUpdateOperation(operation, doc);
|
|
583
632
|
if (!valid) {
|
|
584
|
-
throw new InvalidOperationError('
|
|
633
|
+
throw new InvalidOperationError('proof');
|
|
585
634
|
}
|
|
586
635
|
if (!operation.previd || operation.previd !== doc.didDocumentMetadata?.versionId) {
|
|
587
636
|
throw new InvalidOperationError('previd');
|
|
@@ -605,7 +654,7 @@ export default class Gatekeeper {
|
|
|
605
654
|
updated,
|
|
606
655
|
canonicalId,
|
|
607
656
|
versionId,
|
|
608
|
-
|
|
657
|
+
versionSequence: versionNum.toString(),
|
|
609
658
|
confirmed,
|
|
610
659
|
timestamp,
|
|
611
660
|
};
|
|
@@ -621,7 +670,7 @@ export default class Gatekeeper {
|
|
|
621
670
|
deleted: updated,
|
|
622
671
|
canonicalId,
|
|
623
672
|
versionId,
|
|
624
|
-
|
|
673
|
+
versionSequence: versionNum.toString(),
|
|
625
674
|
confirmed,
|
|
626
675
|
timestamp,
|
|
627
676
|
};
|
|
@@ -657,13 +706,14 @@ export default class Gatekeeper {
|
|
|
657
706
|
const opid = await this.generateCID(operation, true);
|
|
658
707
|
await this.db.addEvent(operation.did, {
|
|
659
708
|
registry: 'local',
|
|
660
|
-
time: operation.
|
|
709
|
+
time: operation.proof?.created || '',
|
|
661
710
|
ordinal: [0],
|
|
662
711
|
operation,
|
|
663
712
|
opid,
|
|
664
713
|
did: operation.did
|
|
665
714
|
});
|
|
666
715
|
await this.queueOperation(registry, operation);
|
|
716
|
+
await this.updateSearchIndex(operation.did);
|
|
667
717
|
return true;
|
|
668
718
|
});
|
|
669
719
|
}
|
|
@@ -732,6 +782,7 @@ export default class Gatekeeper {
|
|
|
732
782
|
}
|
|
733
783
|
for (const did of dids) {
|
|
734
784
|
await this.db.deleteEvents(did);
|
|
785
|
+
this.searchIndex.delete(did);
|
|
735
786
|
}
|
|
736
787
|
return true;
|
|
737
788
|
}
|
|
@@ -772,7 +823,7 @@ export default class Gatekeeper {
|
|
|
772
823
|
if (!event.opid) {
|
|
773
824
|
event.opid = await this.generateCID(event.operation, true);
|
|
774
825
|
}
|
|
775
|
-
const opMatch = currentEvents.find(item => item.operation.
|
|
826
|
+
const opMatch = currentEvents.find(item => item.operation.proof?.proofValue === event.operation.proof?.proofValue);
|
|
776
827
|
if (opMatch) {
|
|
777
828
|
const index = currentEvents.indexOf(opMatch);
|
|
778
829
|
const expectedRegistry = expectedRegistryForIndex(currentEvents, index);
|
|
@@ -848,6 +899,9 @@ export default class Gatekeeper {
|
|
|
848
899
|
if (status === ImportStatus.ADDED) {
|
|
849
900
|
added += 1;
|
|
850
901
|
console.log(`import ${i}/${total}: added event for ${event.did}`);
|
|
902
|
+
if (event.did) {
|
|
903
|
+
await this.updateSearchIndex(event.did);
|
|
904
|
+
}
|
|
851
905
|
}
|
|
852
906
|
else if (status === ImportStatus.MERGED) {
|
|
853
907
|
merged += 1;
|
|
@@ -908,7 +962,7 @@ export default class Gatekeeper {
|
|
|
908
962
|
if (JSON.stringify(operation).length > this.maxOpBytes) {
|
|
909
963
|
return false;
|
|
910
964
|
}
|
|
911
|
-
if (!this.
|
|
965
|
+
if (!this.verifyProofFormat(operation.proof)) {
|
|
912
966
|
return false;
|
|
913
967
|
}
|
|
914
968
|
if (operation.type === 'create') {
|
|
@@ -935,7 +989,9 @@ export default class Gatekeeper {
|
|
|
935
989
|
}
|
|
936
990
|
// eslint-disable-next-line
|
|
937
991
|
if (operation.registration.type === 'asset') {
|
|
938
|
-
|
|
992
|
+
// Extract controller DID from verificationMethod
|
|
993
|
+
const [controllerDid] = operation.proof.verificationMethod.split('#');
|
|
994
|
+
if (operation.controller !== controllerDid) {
|
|
939
995
|
return false;
|
|
940
996
|
}
|
|
941
997
|
}
|
|
@@ -977,7 +1033,7 @@ export default class Gatekeeper {
|
|
|
977
1033
|
const event = batch[i];
|
|
978
1034
|
const ok = await this.verifyEvent(event);
|
|
979
1035
|
if (ok) {
|
|
980
|
-
const eventKey = `${event.registry}/${event.operation.
|
|
1036
|
+
const eventKey = `${event.registry}/${event.operation.proof?.proofValue}`;
|
|
981
1037
|
if (!this.eventsSeen[eventKey]) {
|
|
982
1038
|
this.eventsSeen[eventKey] = true;
|
|
983
1039
|
this.eventsQueue.push(event);
|
|
@@ -1039,7 +1095,7 @@ export default class Gatekeeper {
|
|
|
1039
1095
|
return false;
|
|
1040
1096
|
});
|
|
1041
1097
|
const events = nonlocalDIDs.flat();
|
|
1042
|
-
return events.sort((a, b) => new Date(a.operation.
|
|
1098
|
+
return events.sort((a, b) => new Date(a.operation.proof?.created ?? 0).getTime() - new Date(b.operation.proof?.created ?? 0).getTime());
|
|
1043
1099
|
}
|
|
1044
1100
|
async getQueue(registry) {
|
|
1045
1101
|
if (!ValidRegistries.includes(registry)) {
|
|
@@ -1086,5 +1142,14 @@ export default class Gatekeeper {
|
|
|
1086
1142
|
async getJSON(cid) {
|
|
1087
1143
|
return this.ipfs.getJSON(cid);
|
|
1088
1144
|
}
|
|
1145
|
+
async searchDocs(q) {
|
|
1146
|
+
return this.searchIndex.searchDocs(q);
|
|
1147
|
+
}
|
|
1148
|
+
async queryDocs(where) {
|
|
1149
|
+
return this.searchIndex.queryDocs(where);
|
|
1150
|
+
}
|
|
1151
|
+
async search(query) {
|
|
1152
|
+
return this.queryDocs(query.where);
|
|
1153
|
+
}
|
|
1089
1154
|
}
|
|
1090
1155
|
//# sourceMappingURL=gatekeeper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatekeeper.js","sourceRoot":"","sources":["../../src/gatekeeper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gatekeeper.js","sourceRoot":"","sources":["../../src/gatekeeper.ts"],"names":[],"mappings":"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"}
|