@brightchain/brightchain-api-lib 0.24.0 → 0.25.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/package.json +3 -3
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +33 -11
- package/src/lib/application.js.map +1 -1
- package/src/lib/auth/aclDocumentStore.d.ts +90 -0
- package/src/lib/auth/aclDocumentStore.d.ts.map +1 -0
- package/src/lib/auth/aclDocumentStore.js +155 -0
- package/src/lib/auth/aclDocumentStore.js.map +1 -0
- package/src/lib/auth/index.d.ts +4 -0
- package/src/lib/auth/index.d.ts.map +1 -1
- package/src/lib/auth/index.js +4 -0
- package/src/lib/auth/index.js.map +1 -1
- package/src/lib/auth/writeAclApiRouter.d.ts +32 -0
- package/src/lib/auth/writeAclApiRouter.d.ts.map +1 -0
- package/src/lib/auth/writeAclApiRouter.js +348 -0
- package/src/lib/auth/writeAclApiRouter.js.map +1 -0
- package/src/lib/auth/writeAclAuditLogger.d.ts +94 -0
- package/src/lib/auth/writeAclAuditLogger.d.ts.map +1 -0
- package/src/lib/auth/writeAclAuditLogger.js +143 -0
- package/src/lib/auth/writeAclAuditLogger.js.map +1 -0
- package/src/lib/auth/writeProofMiddleware.d.ts +39 -0
- package/src/lib/auth/writeProofMiddleware.d.ts.map +1 -0
- package/src/lib/auth/writeProofMiddleware.js +56 -0
- package/src/lib/auth/writeProofMiddleware.js.map +1 -0
- package/src/lib/availability/aclDocumentSyncHandler.d.ts +39 -0
- package/src/lib/availability/aclDocumentSyncHandler.d.ts.map +1 -0
- package/src/lib/availability/aclDocumentSyncHandler.js +81 -0
- package/src/lib/availability/aclDocumentSyncHandler.js.map +1 -0
- package/src/lib/availability/gossipService.d.ts +4 -1
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +15 -1
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/availability/headUpdateSyncHandler.d.ts +32 -0
- package/src/lib/availability/headUpdateSyncHandler.d.ts.map +1 -0
- package/src/lib/availability/headUpdateSyncHandler.js +78 -0
- package/src/lib/availability/headUpdateSyncHandler.js.map +1 -0
- package/src/lib/availability/index.d.ts +2 -0
- package/src/lib/availability/index.d.ts.map +1 -1
- package/src/lib/availability/index.js +2 -0
- package/src/lib/availability/index.js.map +1 -1
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +2 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/controllers/api/brighthub/connectionController.d.ts +6 -0
- package/src/lib/controllers/api/brighthub/connectionController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/connectionController.js +158 -11
- package/src/lib/controllers/api/brighthub/connectionController.js.map +1 -1
- package/src/lib/controllers/api/brighthub/messagingController.d.ts +6 -0
- package/src/lib/controllers/api/brighthub/messagingController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/messagingController.js +190 -58
- package/src/lib/controllers/api/brighthub/messagingController.js.map +1 -1
- package/src/lib/controllers/api/brighthub/postController.d.ts +12 -3
- package/src/lib/controllers/api/brighthub/postController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/postController.js +60 -0
- package/src/lib/controllers/api/brighthub/postController.js.map +1 -1
- package/src/lib/controllers/api/brighthub/timelineController.d.ts +19 -0
- package/src/lib/controllers/api/brighthub/timelineController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/timelineController.js +133 -0
- package/src/lib/controllers/api/brighthub/timelineController.js.map +1 -1
- package/src/lib/controllers/api/emails.d.ts +4 -1
- package/src/lib/controllers/api/emails.d.ts.map +1 -1
- package/src/lib/controllers/api/emails.js +28 -1
- package/src/lib/controllers/api/emails.js.map +1 -1
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +10 -0
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/databaseInit.d.ts +1 -1
- package/src/lib/databaseInit.d.ts.map +1 -1
- package/src/lib/databaseInit.js +14 -4
- package/src/lib/databaseInit.js.map +1 -1
- package/src/lib/environment.d.ts +29 -3
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +97 -6
- package/src/lib/environment.js.map +1 -1
- package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
- package/src/lib/factories/blockStoreFactory.js +4 -1
- package/src/lib/factories/blockStoreFactory.js.map +1 -1
- package/src/lib/interfaces/environment.d.ts +45 -2
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts +8 -1
- package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts.map +1 -1
- package/src/lib/routers/api.d.ts +18 -1
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +24 -1
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/routers/app.d.ts.map +1 -1
- package/src/lib/routers/app.js +5 -2
- package/src/lib/routers/app.js.map +1 -1
- package/src/lib/services/auth.d.ts.map +1 -1
- package/src/lib/services/auth.js +37 -3
- package/src/lib/services/auth.js.map +1 -1
- package/src/lib/services/blockStore.d.ts +8 -1
- package/src/lib/services/blockStore.d.ts.map +1 -1
- package/src/lib/services/blockStore.js +19 -7
- package/src/lib/services/blockStore.js.map +1 -1
- package/src/lib/services/brightChainBackupCodeService.d.ts +42 -39
- package/src/lib/services/brightChainBackupCodeService.d.ts.map +1 -1
- package/src/lib/services/brightChainBackupCodeService.js +86 -61
- package/src/lib/services/brightChainBackupCodeService.js.map +1 -1
- package/src/lib/services/brighthub/collectionAdapter.d.ts +81 -0
- package/src/lib/services/brighthub/collectionAdapter.d.ts.map +1 -0
- package/src/lib/services/brighthub/collectionAdapter.js +127 -0
- package/src/lib/services/brighthub/collectionAdapter.js.map +1 -0
- package/src/lib/services/brighthub/connectionService.d.ts.map +1 -1
- package/src/lib/services/brighthub/connectionService.js +3 -0
- package/src/lib/services/brighthub/connectionService.js.map +1 -1
- package/src/lib/services/brighthub/messagingService.d.ts +4 -0
- package/src/lib/services/brighthub/messagingService.d.ts.map +1 -1
- package/src/lib/services/brighthub/messagingService.js +25 -4
- package/src/lib/services/brighthub/messagingService.js.map +1 -1
- package/src/lib/services/brighthub/notificationService.d.ts.map +1 -1
- package/src/lib/services/brighthub/notificationService.js +35 -20
- package/src/lib/services/brighthub/notificationService.js.map +1 -1
- package/src/lib/services/brighthub/postService.d.ts +7 -1
- package/src/lib/services/brighthub/postService.d.ts.map +1 -1
- package/src/lib/services/brighthub/postService.js +22 -1
- package/src/lib/services/brighthub/postService.js.map +1 -1
- package/src/lib/services/brighthub/userProfileService.d.ts +19 -1
- package/src/lib/services/brighthub/userProfileService.d.ts.map +1 -1
- package/src/lib/services/brighthub/userProfileService.js +74 -0
- package/src/lib/services/brighthub/userProfileService.js.map +1 -1
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
- package/src/lib/services/eventNotificationSystem.js.map +1 -1
- package/src/lib/services/index.d.ts +1 -1
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +1 -1
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.d.ts +4 -3
- package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.js +5 -2
- package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
- package/src/lib/stores/cloudBlockStoreBase.d.ts +2 -1
- package/src/lib/stores/cloudBlockStoreBase.d.ts.map +1 -1
- package/src/lib/stores/cloudBlockStoreBase.js +34 -13
- package/src/lib/stores/cloudBlockStoreBase.js.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts +21 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.js +48 -17
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
- package/src/lib/stores/diskBlockStore.d.ts +10 -2
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockStore.js +43 -19
- package/src/lib/stores/diskBlockStore.js.map +1 -1
- package/src/lib/utils/emailValidation.d.ts.map +1 -1
- package/src/lib/utils/emailValidation.js +2 -1
- package/src/lib/utils/emailValidation.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightchain/brightchain-api-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"types": "./src/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
],
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@aws-sdk/client-ses": "^3.859.0",
|
|
12
|
-
"@brightchain/brightchain-lib": "^0.
|
|
13
|
-
"@brightchain/db": "^0.
|
|
12
|
+
"@brightchain/brightchain-lib": "^0.25.0",
|
|
13
|
+
"@brightchain/db": "^0.25.0",
|
|
14
14
|
"@digitaldefiance/branded-enum": "^0.0.7",
|
|
15
15
|
"@digitaldefiance/ecies-lib": "^4.20.2",
|
|
16
16
|
"@digitaldefiance/enclave-bridge-client": "^1.1.0",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
package/src/lib/application.js
CHANGED
|
@@ -14,6 +14,8 @@ const api_1 = require("./routers/api");
|
|
|
14
14
|
const app_1 = require("./routers/app");
|
|
15
15
|
const testEmailRouter_1 = require("./routers/testEmailRouter");
|
|
16
16
|
const services_1 = require("./services");
|
|
17
|
+
const collectionAdapter_1 = require("./services/brighthub/collectionAdapter");
|
|
18
|
+
const threadService_1 = require("./services/brighthub/threadService");
|
|
17
19
|
const clientWebSocketServer_1 = require("./services/clientWebSocketServer");
|
|
18
20
|
const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
|
|
19
21
|
const fakeEmailService_1 = require("./services/fakeEmailService");
|
|
@@ -78,6 +80,7 @@ class App extends node_express_suite_1.Application {
|
|
|
78
80
|
this.keyStorage = services_1.SecureKeyStorage.getInstance();
|
|
79
81
|
this._brightchainDocumentStore = (0, block_document_store_factory_1.createBlockDocumentStore)({
|
|
80
82
|
useMemory: true,
|
|
83
|
+
blockSize: brightchain_lib_1.BlockSize.Medium,
|
|
81
84
|
});
|
|
82
85
|
}
|
|
83
86
|
/**
|
|
@@ -187,13 +190,19 @@ class App extends node_express_suite_1.Application {
|
|
|
187
190
|
eciesService, keyWrappingService, constants_1.Constants.BACKUP_CODES);
|
|
188
191
|
this.services.register('backupCodeService', () => backupCodeService);
|
|
189
192
|
// Wire system user into BrightChainBackupCodeService after seeding.
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
193
|
+
// SystemUserService.getSystemUser() returns the node-ecies-lib Member
|
|
194
|
+
// singleton (with encryptData/decryptData) that was initialized from
|
|
195
|
+
// the SYSTEM_MNEMONIC env var during app startup.
|
|
196
|
+
try {
|
|
197
|
+
const systemUser = node_express_suite_1.SystemUserService.getSystemUser(
|
|
198
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
199
|
+
this.environment, this.constants);
|
|
195
200
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
|
-
backupCodeService.setSystemUser(
|
|
201
|
+
backupCodeService.setSystemUser(systemUser);
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
// System user may not be available in minimal test environments
|
|
205
|
+
console.warn('[App] SystemUserService.getSystemUser() unavailable — backup code generation will fail until system user is set.');
|
|
197
206
|
}
|
|
198
207
|
// BrightChainSessionAdapter — singleton backed by BrightDb
|
|
199
208
|
const sessionAdapter = new services_1.BrightChainSessionAdapter(brightDb);
|
|
@@ -224,13 +233,19 @@ class App extends node_express_suite_1.Application {
|
|
|
224
233
|
}
|
|
225
234
|
// ── BrightHub social services initialization ────────────────────
|
|
226
235
|
if (this.apiRouter) {
|
|
227
|
-
//
|
|
228
|
-
//
|
|
229
|
-
//
|
|
230
|
-
//
|
|
236
|
+
// BrightHub services expect a Collection<T> interface with
|
|
237
|
+
// .findOne().exec(), .updateOne(filter, fields).exec() patterns.
|
|
238
|
+
// BrightDb's DocumentCollection has a different API, so we wrap
|
|
239
|
+
// each collection via CollectionAdapter (see collectionAdapter.ts).
|
|
231
240
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
232
|
-
const
|
|
241
|
+
const realApp = this;
|
|
242
|
+
const appForCollections = {
|
|
243
|
+
getModel(name) {
|
|
244
|
+
return (0, collectionAdapter_1.wrapCollection)(realApp.getModel(name));
|
|
245
|
+
},
|
|
246
|
+
};
|
|
233
247
|
const postService = new services_1.PostService(appForCollections);
|
|
248
|
+
const threadService = (0, threadService_1.createThreadService)(appForCollections);
|
|
234
249
|
const feedService = new services_1.FeedService(appForCollections);
|
|
235
250
|
const messagingService = new services_1.MessagingService(appForCollections);
|
|
236
251
|
const notificationService = new services_1.NotificationService(appForCollections);
|
|
@@ -238,13 +253,20 @@ class App extends node_express_suite_1.Application {
|
|
|
238
253
|
const discoveryService = new services_1.DiscoveryService(appForCollections);
|
|
239
254
|
const userProfileService = new services_1.UserProfileService(appForCollections);
|
|
240
255
|
this.services.register('postService', () => postService);
|
|
256
|
+
this.services.register('threadService', () => threadService);
|
|
241
257
|
this.services.register('feedService', () => feedService);
|
|
242
258
|
this.services.register('messagingService', () => messagingService);
|
|
243
259
|
this.services.register('notificationService', () => notificationService);
|
|
244
260
|
this.services.register('connectionService', () => connectionService);
|
|
245
261
|
this.services.register('discoveryService', () => discoveryService);
|
|
246
262
|
this.services.register('userProfileService', () => userProfileService);
|
|
263
|
+
// Wire notification service into services that create notifications
|
|
264
|
+
postService.setNotificationService(notificationService);
|
|
265
|
+
userProfileService.setNotificationService(notificationService);
|
|
266
|
+
// Wire connection service into user profile service for block inheritance
|
|
267
|
+
userProfileService.setConnectionService(connectionService);
|
|
247
268
|
this.apiRouter.setBrightHubPostService(postService);
|
|
269
|
+
this.apiRouter.setBrightHubThreadService(threadService);
|
|
248
270
|
this.apiRouter.setBrightHubFeedService(feedService);
|
|
249
271
|
this.apiRouter.setBrightHubMessagingService(messagingService);
|
|
250
272
|
this.apiRouter.setBrightHubNotificationService(notificationService);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACL Document Store - stores and retrieves Write ACL documents as signed blocks.
|
|
3
|
+
*
|
|
4
|
+
* Follows the PoolACLStore pattern: each ACL document is serialized to JSON
|
|
5
|
+
* (without creatorSignature), signed with the admin's ECDSA key, and stored
|
|
6
|
+
* as a block. On retrieval, the signature is verified against the signer's
|
|
7
|
+
* public key before the document is returned.
|
|
8
|
+
*
|
|
9
|
+
* Version chaining: each update references the previous ACL block ID via
|
|
10
|
+
* `previousVersionBlockId`, forming an auditable linked list.
|
|
11
|
+
*
|
|
12
|
+
* @see Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
|
|
13
|
+
*/
|
|
14
|
+
import { type IAclDocument } from '@brightchain/brightchain-lib';
|
|
15
|
+
import { ECDSANodeAuthenticator } from './ecdsaNodeAuthenticator';
|
|
16
|
+
/**
|
|
17
|
+
* The on-disk format for a signed ACL document block.
|
|
18
|
+
* `aclJson` is the serialized IAclDocument without creatorSignature;
|
|
19
|
+
* `signatures` carries the admin signatures as hex strings alongside
|
|
20
|
+
* their public keys.
|
|
21
|
+
*
|
|
22
|
+
* Follows the SignedACLBlock pattern from PoolACLStore.
|
|
23
|
+
*/
|
|
24
|
+
export interface SignedAclDocumentBlock {
|
|
25
|
+
aclJson: string;
|
|
26
|
+
signatures: Array<{
|
|
27
|
+
publicKeyHex: string;
|
|
28
|
+
signature: string;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Stores and retrieves Write ACL documents as signed blocks.
|
|
33
|
+
*
|
|
34
|
+
* Uses an in-memory Map for block storage, following the PoolACLStore
|
|
35
|
+
* pattern. Block IDs are SHA-256 hashes of the stored content.
|
|
36
|
+
*
|
|
37
|
+
* @see Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
|
|
38
|
+
*/
|
|
39
|
+
export declare class AclDocumentStore {
|
|
40
|
+
protected readonly blocks: Map<string, Uint8Array<ArrayBufferLike>>;
|
|
41
|
+
private readonly authenticator;
|
|
42
|
+
constructor(authenticator?: ECDSANodeAuthenticator);
|
|
43
|
+
/**
|
|
44
|
+
* Serialize an ACL document to JSON, sign it, and store as a block.
|
|
45
|
+
* Returns the block ID (SHA-256 hex of the stored content).
|
|
46
|
+
*
|
|
47
|
+
* The document is serialized using the shared serializeAclDocument helper
|
|
48
|
+
* (which handles Date → ISO string and Uint8Array → hex encoding).
|
|
49
|
+
* The creatorSignature field is excluded from the signed payload;
|
|
50
|
+
* the signature is stored separately in the SignedAclDocumentBlock envelope.
|
|
51
|
+
*
|
|
52
|
+
* @param doc - The ACL document to store (creatorSignature is ignored; a fresh signature is computed)
|
|
53
|
+
* @param signerPrivateKey - The admin's raw 32-byte secp256k1 private key
|
|
54
|
+
* @returns The block ID (SHA-256 hex digest)
|
|
55
|
+
* @see Requirements 2.1, 2.2, 2.3
|
|
56
|
+
*/
|
|
57
|
+
storeAclDocument(doc: IAclDocument, signerPrivateKey: Uint8Array): Promise<string>;
|
|
58
|
+
/**
|
|
59
|
+
* Load an ACL document from a stored block, verifying the signature.
|
|
60
|
+
* Throws if the block doesn't exist or the signature is invalid.
|
|
61
|
+
*
|
|
62
|
+
* @param blockId - The block ID to load
|
|
63
|
+
* @returns The deserialized and verified ACL document
|
|
64
|
+
* @throws AclSignatureVerificationError if signature verification fails
|
|
65
|
+
* @see Requirements 2.3, 2.4
|
|
66
|
+
*/
|
|
67
|
+
loadAclDocument(blockId: string): Promise<IAclDocument>;
|
|
68
|
+
/**
|
|
69
|
+
* Update an ACL document: validates version increment, sets
|
|
70
|
+
* previousVersionBlockId to the current block ID, and stores
|
|
71
|
+
* the new version.
|
|
72
|
+
*
|
|
73
|
+
* @param currentBlockId - The block ID of the current ACL document
|
|
74
|
+
* @param updatedDoc - The updated ACL document
|
|
75
|
+
* @param signerPrivateKey - The admin's raw 32-byte secp256k1 private key
|
|
76
|
+
* @returns The new block ID
|
|
77
|
+
* @throws AclVersionConflictError if version is not strictly greater
|
|
78
|
+
* @see Requirements 2.5, 2.6
|
|
79
|
+
*/
|
|
80
|
+
updateAclDocument(currentBlockId: string, updatedDoc: IAclDocument, signerPrivateKey: Uint8Array): Promise<string>;
|
|
81
|
+
/**
|
|
82
|
+
* Check whether a block exists in the store.
|
|
83
|
+
*/
|
|
84
|
+
hasBlock(blockId: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Compute a block ID as the SHA-256 hex digest of the content.
|
|
87
|
+
*/
|
|
88
|
+
private computeBlockId;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=aclDocumentStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aclDocumentStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/aclDocumentStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,YAAY,EAKlB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,SAAS,CAAC,QAAQ,CAAC,MAAM,2CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;gBAE3C,aAAa,CAAC,EAAE,sBAAsB;IAIlD;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CACpB,GAAG,EAAE,YAAY,EACjB,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAAC,MAAM,CAAC;IAuClB;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA+C7D;;;;;;;;;;;OAWG;IACG,iBAAiB,CACrB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,YAAY,EACxB,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAAC,MAAM,CAAC;IAuBlB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,OAAO,CAAC,cAAc;CAMvB"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ACL Document Store - stores and retrieves Write ACL documents as signed blocks.
|
|
4
|
+
*
|
|
5
|
+
* Follows the PoolACLStore pattern: each ACL document is serialized to JSON
|
|
6
|
+
* (without creatorSignature), signed with the admin's ECDSA key, and stored
|
|
7
|
+
* as a block. On retrieval, the signature is verified against the signer's
|
|
8
|
+
* public key before the document is returned.
|
|
9
|
+
*
|
|
10
|
+
* Version chaining: each update references the previous ACL block ID via
|
|
11
|
+
* `previousVersionBlockId`, forming an auditable linked list.
|
|
12
|
+
*
|
|
13
|
+
* @see Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.AclDocumentStore = void 0;
|
|
17
|
+
const tslib_1 = require("tslib");
|
|
18
|
+
const brightchain_lib_1 = require("@brightchain/brightchain-lib");
|
|
19
|
+
const crypto = tslib_1.__importStar(require("crypto"));
|
|
20
|
+
const ecdsaNodeAuthenticator_1 = require("./ecdsaNodeAuthenticator");
|
|
21
|
+
/**
|
|
22
|
+
* Stores and retrieves Write ACL documents as signed blocks.
|
|
23
|
+
*
|
|
24
|
+
* Uses an in-memory Map for block storage, following the PoolACLStore
|
|
25
|
+
* pattern. Block IDs are SHA-256 hashes of the stored content.
|
|
26
|
+
*
|
|
27
|
+
* @see Requirements 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
|
|
28
|
+
*/
|
|
29
|
+
class AclDocumentStore {
|
|
30
|
+
blocks = new Map();
|
|
31
|
+
authenticator;
|
|
32
|
+
constructor(authenticator) {
|
|
33
|
+
this.authenticator = authenticator ?? new ecdsaNodeAuthenticator_1.ECDSANodeAuthenticator();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Serialize an ACL document to JSON, sign it, and store as a block.
|
|
37
|
+
* Returns the block ID (SHA-256 hex of the stored content).
|
|
38
|
+
*
|
|
39
|
+
* The document is serialized using the shared serializeAclDocument helper
|
|
40
|
+
* (which handles Date → ISO string and Uint8Array → hex encoding).
|
|
41
|
+
* The creatorSignature field is excluded from the signed payload;
|
|
42
|
+
* the signature is stored separately in the SignedAclDocumentBlock envelope.
|
|
43
|
+
*
|
|
44
|
+
* @param doc - The ACL document to store (creatorSignature is ignored; a fresh signature is computed)
|
|
45
|
+
* @param signerPrivateKey - The admin's raw 32-byte secp256k1 private key
|
|
46
|
+
* @returns The block ID (SHA-256 hex digest)
|
|
47
|
+
* @see Requirements 2.1, 2.2, 2.3
|
|
48
|
+
*/
|
|
49
|
+
async storeAclDocument(doc, signerPrivateKey) {
|
|
50
|
+
// Serialize the document (the serialization includes creatorSignature,
|
|
51
|
+
// but we strip it for signing to match the PoolACLStore pattern)
|
|
52
|
+
const docForSigning = {
|
|
53
|
+
...doc,
|
|
54
|
+
creatorSignature: new Uint8Array(0), // zero-length placeholder for signing
|
|
55
|
+
};
|
|
56
|
+
const aclJson = (0, brightchain_lib_1.serializeAclDocument)(docForSigning);
|
|
57
|
+
const aclBytes = new TextEncoder().encode(aclJson);
|
|
58
|
+
// Sign the serialized JSON
|
|
59
|
+
const signature = await this.authenticator.signChallenge(aclBytes, signerPrivateKey);
|
|
60
|
+
// Derive the signer's public key
|
|
61
|
+
const ecdh = crypto.createECDH('secp256k1');
|
|
62
|
+
ecdh.setPrivateKey(Buffer.from(signerPrivateKey));
|
|
63
|
+
const publicKey = new Uint8Array(ecdh.getPublicKey());
|
|
64
|
+
const publicKeyHex = Buffer.from(publicKey).toString('hex');
|
|
65
|
+
const signedBlock = {
|
|
66
|
+
aclJson,
|
|
67
|
+
signatures: [
|
|
68
|
+
{
|
|
69
|
+
publicKeyHex,
|
|
70
|
+
signature: Buffer.from(signature).toString('hex'),
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
const blockBytes = new TextEncoder().encode(JSON.stringify(signedBlock));
|
|
75
|
+
const blockId = this.computeBlockId(blockBytes);
|
|
76
|
+
this.blocks.set(blockId, blockBytes);
|
|
77
|
+
return blockId;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Load an ACL document from a stored block, verifying the signature.
|
|
81
|
+
* Throws if the block doesn't exist or the signature is invalid.
|
|
82
|
+
*
|
|
83
|
+
* @param blockId - The block ID to load
|
|
84
|
+
* @returns The deserialized and verified ACL document
|
|
85
|
+
* @throws AclSignatureVerificationError if signature verification fails
|
|
86
|
+
* @see Requirements 2.3, 2.4
|
|
87
|
+
*/
|
|
88
|
+
async loadAclDocument(blockId) {
|
|
89
|
+
const blockBytes = this.blocks.get(blockId);
|
|
90
|
+
if (!blockBytes) {
|
|
91
|
+
throw new Error(`ACL document block not found: ${blockId}`);
|
|
92
|
+
}
|
|
93
|
+
const signedBlock = JSON.parse(new TextDecoder().decode(blockBytes));
|
|
94
|
+
if (signedBlock.signatures.length === 0) {
|
|
95
|
+
throw new brightchain_lib_1.AclSignatureVerificationError(blockId, 'ACL document block has no signatures');
|
|
96
|
+
}
|
|
97
|
+
// Verify the first signature
|
|
98
|
+
const firstSig = signedBlock.signatures[0];
|
|
99
|
+
const publicKey = new Uint8Array(Buffer.from(firstSig.publicKeyHex, 'hex'));
|
|
100
|
+
const signatureBytes = new Uint8Array(Buffer.from(firstSig.signature, 'hex'));
|
|
101
|
+
const aclBytes = new TextEncoder().encode(signedBlock.aclJson);
|
|
102
|
+
const isValid = await this.authenticator.verifySignature(aclBytes, signatureBytes, publicKey);
|
|
103
|
+
if (!isValid) {
|
|
104
|
+
throw new brightchain_lib_1.AclSignatureVerificationError(blockId, 'Signature verification failed');
|
|
105
|
+
}
|
|
106
|
+
// Deserialize the ACL document
|
|
107
|
+
const doc = (0, brightchain_lib_1.deserializeAclDocument)(signedBlock.aclJson);
|
|
108
|
+
// Attach the verified signature as the creatorSignature
|
|
109
|
+
doc.creatorSignature = signatureBytes;
|
|
110
|
+
return doc;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Update an ACL document: validates version increment, sets
|
|
114
|
+
* previousVersionBlockId to the current block ID, and stores
|
|
115
|
+
* the new version.
|
|
116
|
+
*
|
|
117
|
+
* @param currentBlockId - The block ID of the current ACL document
|
|
118
|
+
* @param updatedDoc - The updated ACL document
|
|
119
|
+
* @param signerPrivateKey - The admin's raw 32-byte secp256k1 private key
|
|
120
|
+
* @returns The new block ID
|
|
121
|
+
* @throws AclVersionConflictError if version is not strictly greater
|
|
122
|
+
* @see Requirements 2.5, 2.6
|
|
123
|
+
*/
|
|
124
|
+
async updateAclDocument(currentBlockId, updatedDoc, signerPrivateKey) {
|
|
125
|
+
// Load and verify the current document
|
|
126
|
+
const currentDoc = await this.loadAclDocument(currentBlockId);
|
|
127
|
+
// Validate version increment (must be strictly greater)
|
|
128
|
+
if (updatedDoc.version <= currentDoc.version) {
|
|
129
|
+
throw new brightchain_lib_1.AclVersionConflictError(currentDoc.version, updatedDoc.version, updatedDoc.scope.dbName, updatedDoc.scope.collectionName);
|
|
130
|
+
}
|
|
131
|
+
// Set chain reference to the current block
|
|
132
|
+
const chainedDoc = {
|
|
133
|
+
...updatedDoc,
|
|
134
|
+
previousVersionBlockId: currentBlockId,
|
|
135
|
+
};
|
|
136
|
+
return this.storeAclDocument(chainedDoc, signerPrivateKey);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Check whether a block exists in the store.
|
|
140
|
+
*/
|
|
141
|
+
hasBlock(blockId) {
|
|
142
|
+
return this.blocks.has(blockId);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Compute a block ID as the SHA-256 hex digest of the content.
|
|
146
|
+
*/
|
|
147
|
+
computeBlockId(content) {
|
|
148
|
+
return crypto
|
|
149
|
+
.createHash('sha256')
|
|
150
|
+
.update(Buffer.from(content))
|
|
151
|
+
.digest('hex');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.AclDocumentStore = AclDocumentStore;
|
|
155
|
+
//# sourceMappingURL=aclDocumentStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aclDocumentStore.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/aclDocumentStore.ts"],"names":[],"mappings":"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"}
|
package/src/lib/auth/index.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
export * from './aclDocumentStore';
|
|
1
2
|
export * from './aclEnforcedAvailability';
|
|
2
3
|
export * from './aclEnforcedBlockStore';
|
|
3
4
|
export * from './ecdsaNodeAuthenticator';
|
|
4
5
|
export * from './poolAclBootstrap';
|
|
5
6
|
export * from './poolAclStore';
|
|
6
7
|
export { InsufficientQuorumError, PoolACLUpdater, type ACLUpdateProposal, } from './poolAclUpdater';
|
|
8
|
+
export * from './writeAclApiRouter';
|
|
9
|
+
export * from './writeAclAuditLogger';
|
|
10
|
+
export * from './writeProofMiddleware';
|
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
|
package/src/lib/auth/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PoolACLUpdater = exports.InsufficientQuorumError = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
tslib_1.__exportStar(require("./aclDocumentStore"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./aclEnforcedAvailability"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./aclEnforcedBlockStore"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./ecdsaNodeAuthenticator"), exports);
|
|
@@ -10,4 +11,7 @@ tslib_1.__exportStar(require("./poolAclStore"), exports);
|
|
|
10
11
|
var poolAclUpdater_1 = require("./poolAclUpdater");
|
|
11
12
|
Object.defineProperty(exports, "InsufficientQuorumError", { enumerable: true, get: function () { return poolAclUpdater_1.InsufficientQuorumError; } });
|
|
12
13
|
Object.defineProperty(exports, "PoolACLUpdater", { enumerable: true, get: function () { return poolAclUpdater_1.PoolACLUpdater; } });
|
|
14
|
+
tslib_1.__exportStar(require("./writeAclApiRouter"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./writeAclAuditLogger"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./writeProofMiddleware"), exports);
|
|
13
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/index.ts"],"names":[],"mappings":";;;;AAAA,oEAA0C;AAC1C,kEAAwC;AACxC,mEAAyC;AACzC,6DAAmC;AACnC,yDAA+B;AAC/B,mDAI0B;AAHxB,yHAAA,uBAAuB,OAAA;AACvB,gHAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/index.ts"],"names":[],"mappings":";;;;AAAA,6DAAmC;AACnC,oEAA0C;AAC1C,kEAAwC;AACxC,mEAAyC;AACzC,6DAAmC;AACnC,yDAA+B;AAC/B,mDAI0B;AAHxB,yHAAA,uBAAuB,OAAA;AACvB,gHAAA,cAAc,OAAA;AAGhB,8DAAoC;AACpC,gEAAsC;AACtC,iEAAuC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview WriteAclApiRouter - Express router for Write ACL management endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Provides REST API endpoints for managing Write ACLs, mounted alongside
|
|
5
|
+
* the existing `createDbRouter`. All mutating endpoints require
|
|
6
|
+
* `X-Acl-Admin-Signature` (hex-encoded ECDSA signature) and
|
|
7
|
+
* `X-Acl-Admin-PublicKey` headers from an ACL administrator.
|
|
8
|
+
*
|
|
9
|
+
* @see BrightDB Write ACLs design, WriteAclApiRouter section
|
|
10
|
+
* @see Requirements 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
|
|
11
|
+
*/
|
|
12
|
+
import type { IAclDocument, ICapabilityToken, IWriteAclAuditLogger, IWriteAclService } from '@brightchain/brightchain-lib';
|
|
13
|
+
import { Router } from 'express';
|
|
14
|
+
/**
|
|
15
|
+
* Interface for the ACL manager operations needed by the router.
|
|
16
|
+
* Extends IWriteAclService with mutation methods.
|
|
17
|
+
*/
|
|
18
|
+
export interface IWriteAclApiManager extends IWriteAclService {
|
|
19
|
+
setAcl(aclDoc: IAclDocument, adminSignature: Uint8Array, adminPublicKey: Uint8Array): Promise<string>;
|
|
20
|
+
addWriter(dbName: string, collectionName: string | undefined, writerPublicKey: Uint8Array, adminSignature: Uint8Array, adminPublicKey: Uint8Array): Promise<string>;
|
|
21
|
+
removeWriter(dbName: string, collectionName: string | undefined, writerPublicKey: Uint8Array, adminSignature: Uint8Array, adminPublicKey: Uint8Array): Promise<string>;
|
|
22
|
+
issueCapabilityToken(token: ICapabilityToken, adminSignature: Uint8Array): Promise<ICapabilityToken>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Factory function that creates an Express router for Write ACL management.
|
|
26
|
+
*
|
|
27
|
+
* @param aclManager - The WriteAclManager (or any IWriteAclApiManager) to delegate to
|
|
28
|
+
* @param auditLogger - Optional WriteAclAuditLogger for logging ACL events
|
|
29
|
+
* @returns An Express Router with ACL management endpoints
|
|
30
|
+
*/
|
|
31
|
+
export declare function createWriteAclApiRouter(aclManager: IWriteAclApiManager, auditLogger?: IWriteAclAuditLogger): Router;
|
|
32
|
+
//# sourceMappingURL=writeAclApiRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeAclApiRouter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/auth/writeAclApiRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,MAAM,CACJ,MAAM,EAAE,YAAY,EACpB,cAAc,EAAE,UAAU,EAC1B,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,SAAS,CACP,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,eAAe,EAAE,UAAU,EAC3B,cAAc,EAAE,UAAU,EAC1B,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,YAAY,CACV,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,eAAe,EAAE,UAAU,EAC3B,cAAc,EAAE,UAAU,EAC1B,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,oBAAoB,CAClB,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,UAAU,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9B;AAyCD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,mBAAmB,EAC/B,WAAW,CAAC,EAAE,oBAAoB,GACjC,MAAM,CA2WR"}
|