@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.
Files changed (146) hide show
  1. package/package.json +3 -3
  2. package/src/lib/application.d.ts.map +1 -1
  3. package/src/lib/application.js +33 -11
  4. package/src/lib/application.js.map +1 -1
  5. package/src/lib/auth/aclDocumentStore.d.ts +90 -0
  6. package/src/lib/auth/aclDocumentStore.d.ts.map +1 -0
  7. package/src/lib/auth/aclDocumentStore.js +155 -0
  8. package/src/lib/auth/aclDocumentStore.js.map +1 -0
  9. package/src/lib/auth/index.d.ts +4 -0
  10. package/src/lib/auth/index.d.ts.map +1 -1
  11. package/src/lib/auth/index.js +4 -0
  12. package/src/lib/auth/index.js.map +1 -1
  13. package/src/lib/auth/writeAclApiRouter.d.ts +32 -0
  14. package/src/lib/auth/writeAclApiRouter.d.ts.map +1 -0
  15. package/src/lib/auth/writeAclApiRouter.js +348 -0
  16. package/src/lib/auth/writeAclApiRouter.js.map +1 -0
  17. package/src/lib/auth/writeAclAuditLogger.d.ts +94 -0
  18. package/src/lib/auth/writeAclAuditLogger.d.ts.map +1 -0
  19. package/src/lib/auth/writeAclAuditLogger.js +143 -0
  20. package/src/lib/auth/writeAclAuditLogger.js.map +1 -0
  21. package/src/lib/auth/writeProofMiddleware.d.ts +39 -0
  22. package/src/lib/auth/writeProofMiddleware.d.ts.map +1 -0
  23. package/src/lib/auth/writeProofMiddleware.js +56 -0
  24. package/src/lib/auth/writeProofMiddleware.js.map +1 -0
  25. package/src/lib/availability/aclDocumentSyncHandler.d.ts +39 -0
  26. package/src/lib/availability/aclDocumentSyncHandler.d.ts.map +1 -0
  27. package/src/lib/availability/aclDocumentSyncHandler.js +81 -0
  28. package/src/lib/availability/aclDocumentSyncHandler.js.map +1 -0
  29. package/src/lib/availability/gossipService.d.ts +4 -1
  30. package/src/lib/availability/gossipService.d.ts.map +1 -1
  31. package/src/lib/availability/gossipService.js +15 -1
  32. package/src/lib/availability/gossipService.js.map +1 -1
  33. package/src/lib/availability/headUpdateSyncHandler.d.ts +32 -0
  34. package/src/lib/availability/headUpdateSyncHandler.d.ts.map +1 -0
  35. package/src/lib/availability/headUpdateSyncHandler.js +78 -0
  36. package/src/lib/availability/headUpdateSyncHandler.js.map +1 -0
  37. package/src/lib/availability/index.d.ts +2 -0
  38. package/src/lib/availability/index.d.ts.map +1 -1
  39. package/src/lib/availability/index.js +2 -0
  40. package/src/lib/availability/index.js.map +1 -1
  41. package/src/lib/constants.d.ts.map +1 -1
  42. package/src/lib/constants.js +2 -0
  43. package/src/lib/constants.js.map +1 -1
  44. package/src/lib/controllers/api/brighthub/connectionController.d.ts +6 -0
  45. package/src/lib/controllers/api/brighthub/connectionController.d.ts.map +1 -1
  46. package/src/lib/controllers/api/brighthub/connectionController.js +158 -11
  47. package/src/lib/controllers/api/brighthub/connectionController.js.map +1 -1
  48. package/src/lib/controllers/api/brighthub/messagingController.d.ts +6 -0
  49. package/src/lib/controllers/api/brighthub/messagingController.d.ts.map +1 -1
  50. package/src/lib/controllers/api/brighthub/messagingController.js +190 -58
  51. package/src/lib/controllers/api/brighthub/messagingController.js.map +1 -1
  52. package/src/lib/controllers/api/brighthub/postController.d.ts +12 -3
  53. package/src/lib/controllers/api/brighthub/postController.d.ts.map +1 -1
  54. package/src/lib/controllers/api/brighthub/postController.js +60 -0
  55. package/src/lib/controllers/api/brighthub/postController.js.map +1 -1
  56. package/src/lib/controllers/api/brighthub/timelineController.d.ts +19 -0
  57. package/src/lib/controllers/api/brighthub/timelineController.d.ts.map +1 -1
  58. package/src/lib/controllers/api/brighthub/timelineController.js +133 -0
  59. package/src/lib/controllers/api/brighthub/timelineController.js.map +1 -1
  60. package/src/lib/controllers/api/emails.d.ts +4 -1
  61. package/src/lib/controllers/api/emails.d.ts.map +1 -1
  62. package/src/lib/controllers/api/emails.js +28 -1
  63. package/src/lib/controllers/api/emails.js.map +1 -1
  64. package/src/lib/controllers/api/user.d.ts.map +1 -1
  65. package/src/lib/controllers/api/user.js +10 -0
  66. package/src/lib/controllers/api/user.js.map +1 -1
  67. package/src/lib/databaseInit.d.ts +1 -1
  68. package/src/lib/databaseInit.d.ts.map +1 -1
  69. package/src/lib/databaseInit.js +14 -4
  70. package/src/lib/databaseInit.js.map +1 -1
  71. package/src/lib/environment.d.ts +29 -3
  72. package/src/lib/environment.d.ts.map +1 -1
  73. package/src/lib/environment.js +97 -6
  74. package/src/lib/environment.js.map +1 -1
  75. package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
  76. package/src/lib/factories/blockStoreFactory.js +4 -1
  77. package/src/lib/factories/blockStoreFactory.js.map +1 -1
  78. package/src/lib/interfaces/environment.d.ts +45 -2
  79. package/src/lib/interfaces/environment.d.ts.map +1 -1
  80. package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts +8 -1
  81. package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts.map +1 -1
  82. package/src/lib/routers/api.d.ts +18 -1
  83. package/src/lib/routers/api.d.ts.map +1 -1
  84. package/src/lib/routers/api.js +24 -1
  85. package/src/lib/routers/api.js.map +1 -1
  86. package/src/lib/routers/app.d.ts.map +1 -1
  87. package/src/lib/routers/app.js +5 -2
  88. package/src/lib/routers/app.js.map +1 -1
  89. package/src/lib/services/auth.d.ts.map +1 -1
  90. package/src/lib/services/auth.js +37 -3
  91. package/src/lib/services/auth.js.map +1 -1
  92. package/src/lib/services/blockStore.d.ts +8 -1
  93. package/src/lib/services/blockStore.d.ts.map +1 -1
  94. package/src/lib/services/blockStore.js +19 -7
  95. package/src/lib/services/blockStore.js.map +1 -1
  96. package/src/lib/services/brightChainBackupCodeService.d.ts +42 -39
  97. package/src/lib/services/brightChainBackupCodeService.d.ts.map +1 -1
  98. package/src/lib/services/brightChainBackupCodeService.js +86 -61
  99. package/src/lib/services/brightChainBackupCodeService.js.map +1 -1
  100. package/src/lib/services/brighthub/collectionAdapter.d.ts +81 -0
  101. package/src/lib/services/brighthub/collectionAdapter.d.ts.map +1 -0
  102. package/src/lib/services/brighthub/collectionAdapter.js +127 -0
  103. package/src/lib/services/brighthub/collectionAdapter.js.map +1 -0
  104. package/src/lib/services/brighthub/connectionService.d.ts.map +1 -1
  105. package/src/lib/services/brighthub/connectionService.js +3 -0
  106. package/src/lib/services/brighthub/connectionService.js.map +1 -1
  107. package/src/lib/services/brighthub/messagingService.d.ts +4 -0
  108. package/src/lib/services/brighthub/messagingService.d.ts.map +1 -1
  109. package/src/lib/services/brighthub/messagingService.js +25 -4
  110. package/src/lib/services/brighthub/messagingService.js.map +1 -1
  111. package/src/lib/services/brighthub/notificationService.d.ts.map +1 -1
  112. package/src/lib/services/brighthub/notificationService.js +35 -20
  113. package/src/lib/services/brighthub/notificationService.js.map +1 -1
  114. package/src/lib/services/brighthub/postService.d.ts +7 -1
  115. package/src/lib/services/brighthub/postService.d.ts.map +1 -1
  116. package/src/lib/services/brighthub/postService.js +22 -1
  117. package/src/lib/services/brighthub/postService.js.map +1 -1
  118. package/src/lib/services/brighthub/userProfileService.d.ts +19 -1
  119. package/src/lib/services/brighthub/userProfileService.d.ts.map +1 -1
  120. package/src/lib/services/brighthub/userProfileService.js +74 -0
  121. package/src/lib/services/brighthub/userProfileService.js.map +1 -1
  122. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  123. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  124. package/src/lib/services/index.d.ts +1 -1
  125. package/src/lib/services/index.d.ts.map +1 -1
  126. package/src/lib/services/index.js +1 -1
  127. package/src/lib/services/index.js.map +1 -1
  128. package/src/lib/stores/availabilityAwareBlockStore.d.ts +4 -3
  129. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  130. package/src/lib/stores/availabilityAwareBlockStore.js +5 -2
  131. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  132. package/src/lib/stores/cloudBlockStoreBase.d.ts +2 -1
  133. package/src/lib/stores/cloudBlockStoreBase.d.ts.map +1 -1
  134. package/src/lib/stores/cloudBlockStoreBase.js +34 -13
  135. package/src/lib/stores/cloudBlockStoreBase.js.map +1 -1
  136. package/src/lib/stores/diskBlockAsyncStore.d.ts +21 -1
  137. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  138. package/src/lib/stores/diskBlockAsyncStore.js +48 -17
  139. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  140. package/src/lib/stores/diskBlockStore.d.ts +10 -2
  141. package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
  142. package/src/lib/stores/diskBlockStore.js +43 -19
  143. package/src/lib/stores/diskBlockStore.js.map +1 -1
  144. package/src/lib/utils/emailValidation.d.ts.map +1 -1
  145. package/src/lib/utils/emailValidation.js +2 -1
  146. 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.24.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.24.0",
13
- "@brightchain/db": "^0.24.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":"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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,oBAAoB,EAIpB,kBAAkB,EAClB,sBAAsB,EAKvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAGL,UAAU,EAIV,WAAW,IAAI,mBAAmB,EACnC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAK3E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAwB1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,mBAAmB,CAClE,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,EAChB,UAAU,EACV,SAAS,CAAC,GAAG,CAAC,CACf;IACC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAgB;IAC1D,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,WAAW,CAA4B;IAG/C,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,2BAA2B,CAC5B;IACP,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,yBAAyB,CAC1B;IAEP;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAAuB;gBAE9B,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IAiCzC;;;;OAIG;IAEH,IAAoB,EAAE,IAAI,aAAa,CAEtC;IAED;;;;;;;;OAQG;IAEa,QAAQ,CAAC,CAAC,SAAS,cAAc,EAC/C,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,CAAC,CAAC;IAiBF,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ZpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsE3C;;;OAGG;IACH,IAAW,UAAU,IAAI,MAAM,GAAG,IAAI,CAErC;IAEM,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI7D;;;OAGG;IACI,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAI5C;;;OAGG;IACI,cAAc,IAAI,uBAAuB,GAAG,IAAI;IAIvD;;;OAGG;IACI,kBAAkB,IAAI,sBAAsB,GAAG,IAAI;IAI1D;;;;OAIG;IACI,wBAAwB,IAAI,qBAAqB,GAAG,IAAI;IAI/D;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAQrE;;;;;OAKG;IACI,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAO/D;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAQlE;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAOtE;;;;;;;;OAQG;IACI,uBAAuB,CAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,GAC3B,IAAI;CA8BR"}
@@ -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
- // The plugin's lastInitResult carries the systemMember BackendMember
191
- // created during seedWithRbac() / seedProductionIfEmpty().
192
- const initResult = this._plugin.lastInitResult;
193
- if (initResult?.systemMember) {
194
- // Cast: ecies-lib Member → node-ecies-lib Member (structurally compatible at runtime)
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(initResult.systemMember);
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
- // Cast needed because each BrightHub service defines its own local
228
- // IApplicationWithCollections { getModel<T>(name: string): Collection<T> }
229
- // which is structurally compatible but has different generic constraints
230
- // than the upstream Application.getModel signature.
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 appForCollections = this;
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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"}
@@ -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"}
@@ -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"}