@brightchain/brightchain-api-lib 0.18.2 → 0.21.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 (160) hide show
  1. package/package.json +8 -3
  2. package/src/index.d.ts +0 -1
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +0 -1
  5. package/src/index.js.map +1 -1
  6. package/src/lib/application.d.ts +12 -3
  7. package/src/lib/application.d.ts.map +1 -1
  8. package/src/lib/application.js +153 -7
  9. package/src/lib/application.js.map +1 -1
  10. package/src/lib/availability/gossipService.d.ts +59 -1
  11. package/src/lib/availability/gossipService.d.ts.map +1 -1
  12. package/src/lib/availability/gossipService.js +125 -1
  13. package/src/lib/availability/gossipService.js.map +1 -1
  14. package/src/lib/availability/index.d.ts +1 -0
  15. package/src/lib/availability/index.d.ts.map +1 -1
  16. package/src/lib/availability/index.js +1 -0
  17. package/src/lib/availability/index.js.map +1 -1
  18. package/src/lib/availability/quorumGossipHandler.d.ts +126 -0
  19. package/src/lib/availability/quorumGossipHandler.d.ts.map +1 -0
  20. package/src/lib/availability/quorumGossipHandler.js +246 -0
  21. package/src/lib/availability/quorumGossipHandler.js.map +1 -0
  22. package/src/lib/constants.d.ts.map +1 -1
  23. package/src/lib/constants.js +4 -0
  24. package/src/lib/constants.js.map +1 -1
  25. package/src/lib/controllers/api/quorum.d.ts +110 -2
  26. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  27. package/src/lib/controllers/api/quorum.js +389 -0
  28. package/src/lib/controllers/api/quorum.js.map +1 -1
  29. package/src/lib/controllers/api/user.d.ts +12 -15
  30. package/src/lib/controllers/api/user.d.ts.map +1 -1
  31. package/src/lib/controllers/api/user.js +312 -94
  32. package/src/lib/controllers/api/user.js.map +1 -1
  33. package/src/lib/databaseInit.d.ts +3 -2
  34. package/src/lib/databaseInit.d.ts.map +1 -1
  35. package/src/lib/databaseInit.js +24 -12
  36. package/src/lib/databaseInit.js.map +1 -1
  37. package/src/lib/datastore/index.d.ts +0 -1
  38. package/src/lib/datastore/index.d.ts.map +1 -1
  39. package/src/lib/datastore/index.js +0 -1
  40. package/src/lib/datastore/index.js.map +1 -1
  41. package/src/lib/environment.d.ts +6 -0
  42. package/src/lib/environment.d.ts.map +1 -1
  43. package/src/lib/environment.js +14 -0
  44. package/src/lib/environment.js.map +1 -1
  45. package/src/lib/hydration/energyAccountHydration.d.ts +17 -0
  46. package/src/lib/hydration/energyAccountHydration.d.ts.map +1 -0
  47. package/src/lib/hydration/energyAccountHydration.js +24 -0
  48. package/src/lib/hydration/energyAccountHydration.js.map +1 -0
  49. package/src/lib/hydration/index.d.ts +13 -0
  50. package/src/lib/hydration/index.d.ts.map +1 -0
  51. package/src/lib/hydration/index.js +21 -0
  52. package/src/lib/hydration/index.js.map +1 -0
  53. package/src/lib/hydration/rbacHydration.d.ts +28 -0
  54. package/src/lib/hydration/rbacHydration.d.ts.map +1 -0
  55. package/src/lib/hydration/rbacHydration.js +56 -0
  56. package/src/lib/hydration/rbacHydration.js.map +1 -0
  57. package/src/lib/interfaces/environment.d.ts +7 -1
  58. package/src/lib/interfaces/environment.d.ts.map +1 -1
  59. package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +1 -1
  60. package/src/lib/interfaces/responses/api-code-count-response.d.ts +1 -1
  61. package/src/lib/interfaces/responses/api-password-change-response.d.ts +9 -0
  62. package/src/lib/interfaces/responses/api-password-change-response.d.ts.map +1 -0
  63. package/src/lib/interfaces/responses/api-password-change-response.js +3 -0
  64. package/src/lib/interfaces/responses/api-password-change-response.js.map +1 -0
  65. package/src/lib/interfaces/responses/api-recovery-response.d.ts +9 -0
  66. package/src/lib/interfaces/responses/api-recovery-response.d.ts.map +1 -0
  67. package/src/lib/interfaces/responses/api-recovery-response.js +3 -0
  68. package/src/lib/interfaces/responses/api-recovery-response.js.map +1 -0
  69. package/src/lib/interfaces/responses/index.d.ts +2 -0
  70. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  71. package/src/lib/interfaces/storage/client-session.d.ts +1 -1
  72. package/src/lib/interfaces/storage/client-session.d.ts.map +1 -1
  73. package/src/lib/interfaces/storage/collection.d.ts +1 -1
  74. package/src/lib/interfaces/storage/collection.d.ts.map +1 -1
  75. package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts +1 -1
  76. package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts.map +1 -1
  77. package/src/lib/interfaces/storage/database.d.ts +1 -1
  78. package/src/lib/interfaces/storage/database.d.ts.map +1 -1
  79. package/src/lib/interfaces/storage/document-types.d.ts +1 -1
  80. package/src/lib/interfaces/storage/document-types.d.ts.map +1 -1
  81. package/src/lib/interfaces/storage/index.d.ts +1 -0
  82. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  83. package/src/lib/interfaces/storage/index.js.map +1 -1
  84. package/src/lib/interfaces/storage/storedDocumentTypes.d.ts +73 -0
  85. package/src/lib/interfaces/storage/storedDocumentTypes.d.ts.map +1 -0
  86. package/src/lib/interfaces/storage/storedDocumentTypes.js +15 -0
  87. package/src/lib/interfaces/storage/storedDocumentTypes.js.map +1 -0
  88. package/src/lib/plugins/brightchain-database-plugin.d.ts +31 -21
  89. package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
  90. package/src/lib/plugins/brightchain-database-plugin.js +103 -53
  91. package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
  92. package/src/lib/plugins/configure-brightchain-app.d.ts.map +1 -1
  93. package/src/lib/plugins/configure-brightchain-app.js +5 -0
  94. package/src/lib/plugins/configure-brightchain-app.js.map +1 -1
  95. package/src/lib/services/auth.d.ts +6 -2
  96. package/src/lib/services/auth.d.ts.map +1 -1
  97. package/src/lib/services/auth.js +43 -7
  98. package/src/lib/services/auth.js.map +1 -1
  99. package/src/lib/services/backupCodeService.d.ts +35 -0
  100. package/src/lib/services/backupCodeService.d.ts.map +1 -0
  101. package/src/lib/services/backupCodeService.js +109 -0
  102. package/src/lib/services/backupCodeService.js.map +1 -0
  103. package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -1
  104. package/src/lib/services/brightchain-authentication-provider.js +28 -9
  105. package/src/lib/services/brightchain-authentication-provider.js.map +1 -1
  106. package/src/lib/services/brightchain-member-init.service.d.ts +39 -20
  107. package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
  108. package/src/lib/services/brightchain-member-init.service.js +139 -53
  109. package/src/lib/services/brightchain-member-init.service.js.map +1 -1
  110. package/src/lib/services/cliOperatorPrompt.d.ts +81 -0
  111. package/src/lib/services/cliOperatorPrompt.d.ts.map +1 -0
  112. package/src/lib/services/cliOperatorPrompt.js +177 -0
  113. package/src/lib/services/cliOperatorPrompt.js.map +1 -0
  114. package/src/lib/services/contentAwareBlocksService.d.ts +92 -0
  115. package/src/lib/services/contentAwareBlocksService.d.ts.map +1 -0
  116. package/src/lib/services/contentAwareBlocksService.js +102 -0
  117. package/src/lib/services/contentAwareBlocksService.js.map +1 -0
  118. package/src/lib/services/contentIngestionService.d.ts +68 -0
  119. package/src/lib/services/contentIngestionService.d.ts.map +1 -0
  120. package/src/lib/services/contentIngestionService.js +139 -0
  121. package/src/lib/services/contentIngestionService.js.map +1 -0
  122. package/src/lib/services/identityExpirationScheduler.d.ts +77 -0
  123. package/src/lib/services/identityExpirationScheduler.d.ts.map +1 -0
  124. package/src/lib/services/identityExpirationScheduler.js +157 -0
  125. package/src/lib/services/identityExpirationScheduler.js.map +1 -0
  126. package/src/lib/services/index.d.ts +7 -0
  127. package/src/lib/services/index.d.ts.map +1 -1
  128. package/src/lib/services/index.js +7 -0
  129. package/src/lib/services/index.js.map +1 -1
  130. package/src/lib/services/quorumDatabaseAdapter.d.ts +60 -0
  131. package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -0
  132. package/src/lib/services/quorumDatabaseAdapter.js +652 -0
  133. package/src/lib/services/quorumDatabaseAdapter.js.map +1 -0
  134. package/src/lib/services/secureKeyStorage.js +3 -3
  135. package/src/lib/services/secureKeyStorage.js.map +1 -1
  136. package/src/lib/services/sessionAdapter.d.ts +62 -0
  137. package/src/lib/services/sessionAdapter.d.ts.map +1 -0
  138. package/src/lib/services/sessionAdapter.js +105 -0
  139. package/src/lib/services/sessionAdapter.js.map +1 -0
  140. package/src/lib/utils/rehydration.d.ts +31 -0
  141. package/src/lib/utils/rehydration.d.ts.map +1 -0
  142. package/src/lib/utils/rehydration.js +111 -0
  143. package/src/lib/utils/rehydration.js.map +1 -0
  144. package/src/lib/utils/serialization.d.ts +21 -0
  145. package/src/lib/utils/serialization.d.ts.map +1 -0
  146. package/src/lib/utils/serialization.js +41 -0
  147. package/src/lib/utils/serialization.js.map +1 -0
  148. package/src/lib/validation/userValidation.d.ts +17 -0
  149. package/src/lib/validation/userValidation.d.ts.map +1 -1
  150. package/src/lib/validation/userValidation.js +77 -0
  151. package/src/lib/validation/userValidation.js.map +1 -1
  152. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts +0 -24
  153. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts.map +0 -1
  154. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js +0 -53
  155. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js.map +0 -1
  156. package/src/lib/datastore/document-model-adapter.d.ts +0 -48
  157. package/src/lib/datastore/document-model-adapter.d.ts.map +0 -1
  158. package/src/lib/datastore/document-model-adapter.js +0 -178
  159. package/src/lib/datastore/document-model-adapter.js.map +0 -1
  160. /package/{brightchain-api-lib/README.md → README.md} +0 -0
@@ -15,15 +15,18 @@ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
15
15
  const db_1 = require("@brightchain/db");
16
16
  const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
17
17
  const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
18
+ const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
18
19
  const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
19
20
  const brightChainApiStrings_1 = require("../enumerations/brightChainApiStrings");
20
21
  const memberIndexSchemaValidationError_1 = require("../errors/memberIndexSchemaValidationError");
22
+ const hydration_1 = require("../hydration");
21
23
  const memberIndexSchema_1 = require("../interfaces/storage/memberIndexSchema");
22
24
  const mnemonicSchema_1 = require("../interfaces/storage/mnemonicSchema");
23
25
  const roleSchema_1 = require("../interfaces/storage/roleSchema");
24
26
  const userRoleSchema_1 = require("../interfaces/storage/userRoleSchema");
25
27
  const userSchema_1 = require("../interfaces/storage/userSchema");
26
28
  const diskBlockStore_1 = require("../stores/diskBlockStore");
29
+ const serialization_1 = require("../utils/serialization");
27
30
  /** Well-known collection name for the member index. */
28
31
  const MEMBER_INDEX_COLLECTION = 'member_index';
29
32
  // ─── Block store helpers (not exported) ──────────────────────────────────────
@@ -96,7 +99,7 @@ class BrightChainMemberInitService {
96
99
  *
97
100
  * Steps:
98
101
  * 1. Build the appropriate block store (disk or memory)
99
- * 2. Create and connect BrightChainDb (with PersistentHeadRegistry when disk)
102
+ * 2. Create BrightChainDb with an isolated HeadRegistry
100
103
  * 3. Create CBLIndex for the member pool
101
104
  * 4. Build candidate IMemberIndexDocument entries
102
105
  * 5. Validate all candidates against MEMBER_INDEX_SCHEMA (pre-transaction)
@@ -112,12 +115,12 @@ class BrightChainMemberInitService {
112
115
  : buildMemoryBlockStore(config.blockSize);
113
116
  const db = new db_1.BrightChainDb(blockStore, {
114
117
  name: config.memberPoolName,
115
- poolId: config.memberPoolName,
116
- // PersistentHeadRegistry when disk ensures heads survive restarts
117
- ...(useDisk ? { dataDir: config.blockStorePath } : {}),
118
+ // Use PersistentHeadRegistry for disk stores so data survives across
119
+ // service instances; use an isolated in-memory registry otherwise.
120
+ ...(useDisk
121
+ ? { dataDir: config.blockStorePath }
122
+ : { headRegistry: db_1.HeadRegistry.createIsolated() }),
118
123
  });
119
- // Load persisted head pointers from disk (no-op for InMemoryHeadRegistry)
120
- await db.getHeadRegistry().load();
121
124
  await db.connect();
122
125
  this._db = db;
123
126
  this._memberCblIndex = new db_1.CBLIndex(db, blockStore);
@@ -139,7 +142,13 @@ class BrightChainMemberInitService {
139
142
  const toInsert = candidates.filter((c) => !existingIds.has(c.id));
140
143
  const skippedCount = candidates.length - toInsert.length;
141
144
  if (toInsert.length === 0) {
142
- return { alreadyInitialized: true, insertedCount: 0, skippedCount, db };
145
+ return {
146
+ input,
147
+ alreadyInitialized: true,
148
+ insertedCount: 0,
149
+ skippedCount,
150
+ db,
151
+ };
143
152
  }
144
153
  // Step 7: insert in a single transaction
145
154
  await db.withTransaction(async (session) => {
@@ -148,12 +157,49 @@ class BrightChainMemberInitService {
148
157
  }
149
158
  });
150
159
  return {
160
+ input,
151
161
  alreadyInitialized: false,
152
162
  insertedCount: toInsert.length,
153
163
  skippedCount,
154
164
  db,
155
165
  };
156
166
  }
167
+ // ── Model registration ───────────────────────────────────────────────────
168
+ /**
169
+ * Register typed Models for all RBAC collections on the given BrightChainDb.
170
+ *
171
+ * After this call, `db.model('roles')`, `db.model('users')`, etc. return
172
+ * Model instances that auto-serialize on writes and auto-rehydrate on reads.
173
+ *
174
+ * Idempotent — skips registration if models are already present.
175
+ */
176
+ registerRbacModels(db) {
177
+ const idProvider = (0, node_ecies_lib_1.getEnhancedNodeIdProvider)();
178
+ if (!db.hasModel(roleSchema_1.ROLES_COLLECTION)) {
179
+ db.model(roleSchema_1.ROLES_COLLECTION, {
180
+ schema: roleSchema_1.ROLE_SCHEMA,
181
+ hydration: (0, hydration_1.createRoleHydrationSchema)(idProvider),
182
+ });
183
+ }
184
+ if (!db.hasModel(userSchema_1.USERS_COLLECTION)) {
185
+ db.model(userSchema_1.USERS_COLLECTION, {
186
+ schema: userSchema_1.USER_SCHEMA,
187
+ hydration: (0, hydration_1.createUserHydrationSchema)(idProvider),
188
+ });
189
+ }
190
+ if (!db.hasModel(userRoleSchema_1.USER_ROLES_COLLECTION)) {
191
+ db.model(userRoleSchema_1.USER_ROLES_COLLECTION, {
192
+ schema: userRoleSchema_1.USER_ROLE_SCHEMA,
193
+ hydration: (0, hydration_1.createUserRoleHydrationSchema)(idProvider),
194
+ });
195
+ }
196
+ if (!db.hasModel(mnemonicSchema_1.MNEMONICS_COLLECTION)) {
197
+ db.model(mnemonicSchema_1.MNEMONICS_COLLECTION, {
198
+ schema: mnemonicSchema_1.MNEMONIC_SCHEMA,
199
+ hydration: (0, hydration_1.createMnemonicHydrationSchema)(idProvider),
200
+ });
201
+ }
202
+ }
157
203
  // ── RBAC initialization ─────────────────────────────────────────────────
158
204
  /**
159
205
  * Build a role document for insertion into the roles collection.
@@ -227,27 +273,14 @@ class BrightChainMemberInitService {
227
273
  }
228
274
  /**
229
275
  * Serialize a typed RBAC document for storage/validation.
230
- * Converts GuidV4Buffer values to their canonical string form and
231
- * Date values to ISO strings so the document satisfies the all-string
232
- * collection schemas.
276
+ * Delegates to the standalone serializeForStorage utility.
277
+ *
278
+ * @template T - The input typed document (e.g. IRoleBase<TID, Date, string>)
279
+ * @template TStored - The expected stored output type (e.g. IStoredRole).
280
+ * When omitted, returns a generic Record.
233
281
  */
234
282
  static serializeForStorage(doc) {
235
- const result = {};
236
- for (const [key, value] of Object.entries(doc)) {
237
- if (value instanceof Date) {
238
- result[key] = value.toISOString();
239
- }
240
- else if (Buffer.isBuffer(value) && 'asFullHexGuid' in value) {
241
- result[key] = value.asFullHexGuid;
242
- }
243
- else if (Buffer.isBuffer(value)) {
244
- result[key] = value.toString('hex');
245
- }
246
- else {
247
- result[key] = value;
248
- }
249
- }
250
- return result;
283
+ return (0, serialization_1.serializeForStorage)(doc);
251
284
  }
252
285
  /**
253
286
  * Validate a document against a schema, returning field errors (if any).
@@ -256,6 +289,8 @@ class BrightChainMemberInitService {
256
289
  * (IRoleBase, IUserBase, etc.) without needing an index signature.
257
290
  * Serializes the document before validation so GuidV4Buffer and Date
258
291
  * values are converted to the string types the schemas expect.
292
+ *
293
+ * @deprecated Prefer using Model.validate() which handles dehydration internally.
259
294
  */
260
295
  static validateRbacDocument(doc, schema, collectionName) {
261
296
  try {
@@ -303,70 +338,92 @@ class BrightChainMemberInitService {
303
338
  const userDocuments = users.map((u) => BrightChainMemberInitService.buildUserDocument(u, systemUserId, now));
304
339
  const userRoleDocuments = users.map((u) => BrightChainMemberInitService.buildUserRoleDocument(u, systemUserId, now));
305
340
  const mnemonicDocuments = users.map((u) => BrightChainMemberInitService.buildMnemonicDocument(u));
306
- // Validate all RBAC documents before touching the DB
341
+ // Validate all RBAC documents via the Model layer before touching the DB.
342
+ // Model.validate() dehydrates internally and checks against the schema.
343
+ // We register models first so validate() is available.
344
+ this.registerRbacModels(db);
345
+ const rolesModelForValidation = db.model(roleSchema_1.ROLES_COLLECTION);
346
+ const usersModelForValidation = db.model(userSchema_1.USERS_COLLECTION);
347
+ const userRolesModelForValidation = db.model(userRoleSchema_1.USER_ROLES_COLLECTION);
348
+ const mnemonicsModelForValidation = db.model(mnemonicSchema_1.MNEMONICS_COLLECTION);
307
349
  for (const doc of roleDocuments) {
308
- const errors = BrightChainMemberInitService.validateRbacDocument(doc, roleSchema_1.ROLE_SCHEMA, roleSchema_1.ROLES_COLLECTION);
350
+ const errors = rolesModelForValidation.validate(doc);
309
351
  if (errors.length > 0) {
310
352
  throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
311
353
  }
312
354
  }
313
355
  for (const doc of userDocuments) {
314
- const errors = BrightChainMemberInitService.validateRbacDocument(doc, userSchema_1.USER_SCHEMA, userSchema_1.USERS_COLLECTION);
356
+ const errors = usersModelForValidation.validate(doc);
315
357
  if (errors.length > 0) {
316
358
  throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
317
359
  }
318
360
  }
319
361
  for (const doc of userRoleDocuments) {
320
- const errors = BrightChainMemberInitService.validateRbacDocument(doc, userRoleSchema_1.USER_ROLE_SCHEMA, userRoleSchema_1.USER_ROLES_COLLECTION);
362
+ const errors = userRolesModelForValidation.validate(doc);
321
363
  if (errors.length > 0) {
322
364
  throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
323
365
  }
324
366
  }
325
367
  for (const doc of mnemonicDocuments) {
326
- const errors = BrightChainMemberInitService.validateRbacDocument(doc, mnemonicSchema_1.MNEMONIC_SCHEMA, mnemonicSchema_1.MNEMONICS_COLLECTION);
368
+ const errors = mnemonicsModelForValidation.validate(doc);
327
369
  if (errors.length > 0) {
328
370
  throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
329
371
  }
330
372
  }
331
- // Step 9: Idempotency check for each RBAC collection
332
- const rolesCollection = db.collection(roleSchema_1.ROLES_COLLECTION);
333
- const usersCollection = db.collection(userSchema_1.USERS_COLLECTION);
334
- const userRolesCollection = db.collection(userRoleSchema_1.USER_ROLES_COLLECTION);
335
- const mnemonicsCollection = db.collection(mnemonicSchema_1.MNEMONICS_COLLECTION);
336
- const existingRoles = await rolesCollection.find({}).toArray();
337
- const existingUsers = await usersCollection.find({}).toArray();
338
- const existingUserRoles = await userRolesCollection.find({}).toArray();
339
- const existingMnemonics = await mnemonicsCollection.find({}).toArray();
340
- const existingRoleIds = new Set(existingRoles.map((r) => String(r['_id'])));
341
- const existingUserIds = new Set(existingUsers.map((u) => String(u['_id'])));
342
- const existingUserRoleIds = new Set(existingUserRoles.map((ur) => String(ur['_id'])));
343
- const existingMnemonicIds = new Set(existingMnemonics.map((m) => String(m['_id'])));
344
- const rolesToInsert = roleDocuments.filter((d) => !existingRoleIds.has(d._id.asFullHexGuid));
345
- const usersToInsert = userDocuments.filter((d) => !existingUserIds.has(d._id.asFullHexGuid));
346
- const userRolesToInsert = userRoleDocuments.filter((d) => !existingUserRoleIds.has(d._id.asFullHexGuid));
347
- const mnemonicsToInsert = mnemonicDocuments.filter((d) => !existingMnemonicIds.has(d._id.asFullHexGuid));
373
+ // Step 9: Models are already registered above — retrieve them for
374
+ // idempotency checks and inserts.
375
+ const rolesModel = rolesModelForValidation;
376
+ const usersModel = usersModelForValidation;
377
+ const userRolesModel = userRolesModelForValidation;
378
+ const mnemonicsModel = mnemonicsModelForValidation;
379
+ // Idempotency check: read existing stored _ids via the raw collection.
380
+ const existingRoles = await rolesModel.collection.find({}).toArray();
381
+ const existingUsers = await usersModel.collection.find({}).toArray();
382
+ const existingUserRoles = await userRolesModel.collection
383
+ .find({})
384
+ .toArray();
385
+ const existingMnemonics = await mnemonicsModel.collection
386
+ .find({})
387
+ .toArray();
388
+ // Stored _id values are already hex strings — no conversion needed.
389
+ const existingRoleIds = new Set(existingRoles.map((r) => r._id));
390
+ const existingUserIds = new Set(existingUsers.map((u) => u._id));
391
+ const existingUserRoleIds = new Set(existingUserRoles.map((ur) => ur._id));
392
+ const existingMnemonicIds = new Set(existingMnemonics.map((m) => m._id));
393
+ // Compare typed documents against stored hex strings by dehydrating the _id.
394
+ const rolesToInsert = roleDocuments.filter((d) => !existingRoleIds.has(String(rolesModel.dehydrate(d)['_id'])));
395
+ const usersToInsert = userDocuments.filter((d) => !existingUserIds.has(String(usersModel.dehydrate(d)['_id'])));
396
+ const userRolesToInsert = userRoleDocuments.filter((d) => !existingUserRoleIds.has(String(userRolesModel.dehydrate(d)['_id'])));
397
+ const mnemonicsToInsert = mnemonicDocuments.filter((d) => !existingMnemonicIds.has(String(mnemonicsModel.dehydrate(d)['_id'])));
348
398
  const totalToInsert = rolesToInsert.length +
349
399
  usersToInsert.length +
350
400
  userRolesToInsert.length +
351
401
  mnemonicsToInsert.length;
352
- // Step 10: Insert missing RBAC documents in a single transaction
402
+ // Step 10: Insert missing RBAC documents in a single transaction.
403
+ // Model.insertOne auto-dehydrates typed → stored and validates against
404
+ // the schema, so no manual serializeForStorage calls are needed.
353
405
  if (totalToInsert > 0) {
354
406
  await db.withTransaction(async (session) => {
355
407
  for (const doc of rolesToInsert) {
356
- await rolesCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
408
+ await rolesModel.collection.insertOne(rolesModel.dehydrate(doc), {
409
+ session,
410
+ });
357
411
  }
358
412
  for (const doc of mnemonicsToInsert) {
359
- await mnemonicsCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
413
+ await mnemonicsModel.collection.insertOne(mnemonicsModel.dehydrate(doc), { session });
360
414
  }
361
415
  for (const doc of usersToInsert) {
362
- await usersCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
416
+ await usersModel.collection.insertOne(usersModel.dehydrate(doc), {
417
+ session,
418
+ });
363
419
  }
364
420
  for (const doc of userRolesToInsert) {
365
- await userRolesCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
421
+ await userRolesModel.collection.insertOne(userRolesModel.dehydrate(doc), { session });
366
422
  }
367
423
  });
368
424
  }
369
425
  return {
426
+ input,
370
427
  alreadyInitialized: baseResult.alreadyInitialized && totalToInsert === 0,
371
428
  insertedCount: baseResult.insertedCount + totalToInsert,
372
429
  skippedCount: baseResult.skippedCount,
@@ -482,6 +539,35 @@ class BrightChainMemberInitService {
482
539
  log('=== End BrightChain Account Credentials ===');
483
540
  log('');
484
541
  }
542
+ /**
543
+ * Print a formatted summary of the BrightChain member init results.
544
+ * Kept for backward compatibility — delegates to printServerInitResults
545
+ * when a full result is available, otherwise prints minimal info.
546
+ */
547
+ static printBaseInitResults(input, result, config) {
548
+ const log = (msg) => console.log(msg);
549
+ log('');
550
+ log('=== BrightChain Member Initialization Results ===');
551
+ log('');
552
+ log(` Pool: ${config.memberPoolName}`);
553
+ log(` Block Store: ${config.blockStorePath ?? 'in-memory (ephemeral)'}`);
554
+ log(` Already Init: ${result.alreadyInitialized}`);
555
+ log(` Inserted: ${result.insertedCount}`);
556
+ log(` Skipped: ${result.skippedCount}`);
557
+ log('');
558
+ const entries = [
559
+ { label: 'System', entry: input.systemUser },
560
+ { label: 'Admin', entry: input.adminUser },
561
+ { label: 'Member', entry: input.memberUser },
562
+ ];
563
+ for (const { label, entry } of entries) {
564
+ log(` ${label} ID: ${entry.id}`);
565
+ log(` ${label} Type: ${this.memberTypeLabel(entry.type)}`);
566
+ log('');
567
+ }
568
+ log('=== End BrightChain Member Initialization ===');
569
+ log('');
570
+ }
485
571
  /**
486
572
  * Print a formatted summary of the BrightChain member init results.
487
573
  * Kept for backward compatibility — delegates to printServerInitResults
@@ -1 +1 @@
1
- {"version":3,"file":"brightchain-member-init.service.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightchain-member-init.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brightchain-member-init.service.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightchain-member-init.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * CLIOperatorPrompt — Node.js readline-based implementation of IOperatorPrompt.
3
+ *
4
+ * Presents quorum proposals to the node operator via the terminal and collects
5
+ * vote decisions with password authentication on approve votes.
6
+ *
7
+ * Tracks failed authentication attempts per proposal and locks voting after
8
+ * a configurable number of consecutive failures for a cooldown period.
9
+ *
10
+ * This is a Node.js-specific service that lives in brightchain-api-lib.
11
+ *
12
+ * @see Requirements 6
13
+ */
14
+ import { IOperatorPrompt, OperatorVoteResult, ProposalDisplay } from '@brightchain/brightchain-lib';
15
+ import { ShortHexGuid } from '@digitaldefiance/ecies-lib';
16
+ import * as readline from 'readline';
17
+ import { Writable } from 'stream';
18
+ /**
19
+ * Configuration for the CLI operator prompt lockout behavior.
20
+ */
21
+ export interface CLIOperatorPromptConfig {
22
+ /** Maximum consecutive failed authentication attempts before lockout. Default: 3 */
23
+ maxAttempts: number;
24
+ /** Cooldown duration in milliseconds after lockout. Default: 300000 (5 minutes) */
25
+ cooldownMs: number;
26
+ }
27
+ /**
28
+ * CLI-based operator prompt for quorum voting.
29
+ *
30
+ * Uses Node.js readline to interact with the operator via stdin/stdout.
31
+ * Tracks failed authentication attempts per proposal and enforces lockout
32
+ * after the configured maximum failures.
33
+ */
34
+ export declare class CLIOperatorPrompt implements IOperatorPrompt {
35
+ private readonly config;
36
+ private readonly lockoutMap;
37
+ private readonly rlFactory;
38
+ private readonly output;
39
+ constructor(config?: Partial<CLIOperatorPromptConfig>, rlFactory?: () => readline.Interface, output?: Writable);
40
+ /**
41
+ * Check if the voting interface is locked for a given proposal.
42
+ * Returns true if the operator has exceeded the maximum failed attempts
43
+ * and the cooldown period has not yet elapsed.
44
+ */
45
+ isLocked(proposalId: ShortHexGuid): boolean;
46
+ /**
47
+ * Present a proposal to the operator and collect their vote.
48
+ * Displays proposal details, collects a vote decision, and on approve
49
+ * requires password authentication.
50
+ *
51
+ * @throws Error if the proposal is currently locked due to failed attempts
52
+ */
53
+ promptForVote(proposal: ProposalDisplay): Promise<OperatorVoteResult>;
54
+ /**
55
+ * Display proposal details to the operator via the readline output.
56
+ */
57
+ private displayProposal;
58
+ /**
59
+ * Prompt the operator for their vote decision (approve or reject).
60
+ */
61
+ private collectDecision;
62
+ /**
63
+ * Prompt the operator for their password to authenticate the approve vote.
64
+ */
65
+ private collectPassword;
66
+ /**
67
+ * Record a failed authentication attempt for a proposal.
68
+ * If the maximum attempts are reached, trigger lockout.
69
+ */
70
+ private recordFailedAttempt;
71
+ /**
72
+ * Record a failed attempt externally (for use when authentication
73
+ * is validated outside this class, e.g., by the QuorumStateMachine).
74
+ */
75
+ recordAuthFailure(proposalId: ShortHexGuid): void;
76
+ /**
77
+ * Reset failed attempts for a proposal (on successful authentication).
78
+ */
79
+ private resetAttempts;
80
+ }
81
+ //# sourceMappingURL=cliOperatorPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cliOperatorPrompt.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/cliOperatorPrompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAIlC;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,oFAAoF;IACpF,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;CACpB;AAqBD;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8C;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAGhC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,EACzC,SAAS,CAAC,EAAE,MAAM,QAAQ,CAAC,SAAS,EACpC,MAAM,CAAC,EAAE,QAAQ;IAanB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,YAAY,GAAG,OAAO;IAe3C;;;;;;OAMG;IACG,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqC3E;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;OAGG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI;IAIjD;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}