@serfab/cadre-core 0.9.0 → 0.10.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 (162) hide show
  1. package/README.md +4 -2
  2. package/dist/bootstrap-peer-store-file.d.ts +13 -0
  3. package/dist/bootstrap-peer-store-file.js +42 -0
  4. package/dist/bootstrap-peer-store-file.js.map +1 -0
  5. package/dist/bootstrap-peer-store.d.ts +73 -0
  6. package/dist/bootstrap-peer-store.js +128 -0
  7. package/dist/bootstrap-peer-store.js.map +1 -0
  8. package/dist/cadre-node.d.ts +918 -53
  9. package/dist/cadre-node.js +1843 -190
  10. package/dist/cadre-node.js.map +1 -1
  11. package/dist/control-authorization.d.ts +93 -0
  12. package/dist/control-authorization.js +57 -0
  13. package/dist/control-authorization.js.map +1 -0
  14. package/dist/control-database.d.ts +990 -50
  15. package/dist/control-database.js +1459 -108
  16. package/dist/control-database.js.map +1 -1
  17. package/dist/control-formation-recorder.d.ts +89 -10
  18. package/dist/control-formation-recorder.js +129 -14
  19. package/dist/control-formation-recorder.js.map +1 -1
  20. package/dist/control-schema.d.ts +1 -1
  21. package/dist/control-schema.js +774 -210
  22. package/dist/control-schema.js.map +1 -1
  23. package/dist/control-stream.d.ts +38 -4
  24. package/dist/control-stream.js +70 -4
  25. package/dist/control-stream.js.map +1 -1
  26. package/dist/control-write-retry.d.ts +151 -0
  27. package/dist/control-write-retry.js +411 -0
  28. package/dist/control-write-retry.js.map +1 -0
  29. package/dist/delegate-admission.d.ts +134 -0
  30. package/dist/delegate-admission.js +244 -0
  31. package/dist/delegate-admission.js.map +1 -0
  32. package/dist/device-token.d.ts +11 -11
  33. package/dist/device-token.js +14 -13
  34. package/dist/device-token.js.map +1 -1
  35. package/dist/ed25519-key.d.ts +26 -0
  36. package/dist/ed25519-key.js +56 -1
  37. package/dist/ed25519-key.js.map +1 -1
  38. package/dist/file-durable-slot.d.ts +20 -0
  39. package/dist/file-durable-slot.js +53 -0
  40. package/dist/file-durable-slot.js.map +1 -0
  41. package/dist/formation-approval.d.ts +157 -0
  42. package/dist/formation-approval.js +375 -0
  43. package/dist/formation-approval.js.map +1 -0
  44. package/dist/fs-atomic.d.ts +38 -0
  45. package/dist/fs-atomic.js +97 -0
  46. package/dist/fs-atomic.js.map +1 -0
  47. package/dist/identity-key.d.ts +49 -0
  48. package/dist/identity-key.js +81 -0
  49. package/dist/identity-key.js.map +1 -0
  50. package/dist/index.d.ts +16 -6
  51. package/dist/index.js +39 -5
  52. package/dist/index.js.map +1 -1
  53. package/dist/key-store-file.d.ts +2 -24
  54. package/dist/key-store-file.js +10 -77
  55. package/dist/key-store-file.js.map +1 -1
  56. package/dist/membership-connection-gater.d.ts +146 -0
  57. package/dist/membership-connection-gater.js +180 -0
  58. package/dist/membership-connection-gater.js.map +1 -0
  59. package/dist/node-local-snapshot.d.ts +109 -0
  60. package/dist/node-local-snapshot.js +182 -0
  61. package/dist/node-local-snapshot.js.map +1 -0
  62. package/dist/peer-authorization.d.ts +135 -18
  63. package/dist/peer-authorization.js +152 -21
  64. package/dist/peer-authorization.js.map +1 -1
  65. package/dist/peer-record.d.ts +21 -8
  66. package/dist/peer-record.js +26 -10
  67. package/dist/peer-record.js.map +1 -1
  68. package/dist/relay-addrs.d.ts +45 -0
  69. package/dist/relay-addrs.js +103 -0
  70. package/dist/relay-addrs.js.map +1 -0
  71. package/dist/relay-reservation.d.ts +266 -0
  72. package/dist/relay-reservation.js +613 -0
  73. package/dist/relay-reservation.js.map +1 -0
  74. package/dist/seed-bootstrap.d.ts +221 -56
  75. package/dist/seed-bootstrap.js +328 -188
  76. package/dist/seed-bootstrap.js.map +1 -1
  77. package/dist/seed-trust-policy.d.ts +47 -21
  78. package/dist/seed-trust-policy.js +24 -15
  79. package/dist/seed-trust-policy.js.map +1 -1
  80. package/dist/strand-addr-protocol.d.ts +42 -13
  81. package/dist/strand-addr-protocol.js +58 -52
  82. package/dist/strand-addr-protocol.js.map +1 -1
  83. package/dist/strand-backfill.d.ts +109 -0
  84. package/dist/strand-backfill.js +279 -0
  85. package/dist/strand-backfill.js.map +1 -0
  86. package/dist/strand-formation-manager.d.ts +38 -9
  87. package/dist/strand-formation-manager.js +120 -17
  88. package/dist/strand-formation-manager.js.map +1 -1
  89. package/dist/strand-formation-protocol.d.ts +103 -4
  90. package/dist/strand-formation-protocol.js +232 -4
  91. package/dist/strand-formation-protocol.js.map +1 -1
  92. package/dist/strand-instance-manager.d.ts +39 -1
  93. package/dist/strand-instance-manager.js +92 -14
  94. package/dist/strand-instance-manager.js.map +1 -1
  95. package/dist/strand-member-registry.d.ts +5 -5
  96. package/dist/strand-member-registry.js +18 -10
  97. package/dist/strand-member-registry.js.map +1 -1
  98. package/dist/strand-membership-writer.d.ts +482 -88
  99. package/dist/strand-membership-writer.js +757 -136
  100. package/dist/strand-membership-writer.js.map +1 -1
  101. package/dist/strand-solicitation.d.ts +99 -33
  102. package/dist/strand-solicitation.js +100 -52
  103. package/dist/strand-solicitation.js.map +1 -1
  104. package/dist/strand-transport-key.d.ts +40 -0
  105. package/dist/strand-transport-key.js +56 -0
  106. package/dist/strand-transport-key.js.map +1 -0
  107. package/dist/strand-wake-protocol.d.ts +9 -7
  108. package/dist/strand-wake-protocol.js +22 -46
  109. package/dist/strand-wake-protocol.js.map +1 -1
  110. package/dist/strand-watcher.d.ts +17 -2
  111. package/dist/strand-watcher.js +47 -3
  112. package/dist/strand-watcher.js.map +1 -1
  113. package/dist/trusted-owner-store-file.d.ts +12 -0
  114. package/dist/trusted-owner-store-file.js +39 -0
  115. package/dist/trusted-owner-store-file.js.map +1 -0
  116. package/dist/trusted-owner-store.d.ts +64 -0
  117. package/dist/trusted-owner-store.js +126 -0
  118. package/dist/trusted-owner-store.js.map +1 -0
  119. package/dist/types.d.ts +275 -20
  120. package/dist/types.js +13 -0
  121. package/dist/types.js.map +1 -1
  122. package/package.json +19 -8
  123. package/src/bootstrap-peer-store-file.ts +44 -0
  124. package/src/bootstrap-peer-store.ts +172 -0
  125. package/src/cadre-node.ts +1992 -202
  126. package/src/control-authorization.ts +114 -0
  127. package/src/control-database.ts +1704 -146
  128. package/src/control-formation-recorder.ts +172 -19
  129. package/src/control-schema.ts +786 -222
  130. package/src/control-stream.ts +81 -4
  131. package/src/control-write-retry.ts +473 -0
  132. package/src/delegate-admission.ts +302 -0
  133. package/src/device-token.ts +18 -13
  134. package/src/ed25519-key.ts +134 -69
  135. package/src/file-durable-slot.ts +61 -0
  136. package/src/formation-approval.ts +604 -0
  137. package/src/fs-atomic.ts +107 -0
  138. package/src/identity-key.ts +109 -0
  139. package/src/index.ts +136 -5
  140. package/src/key-store-file.ts +10 -81
  141. package/src/membership-connection-gater.ts +204 -0
  142. package/src/node-local-snapshot.ts +260 -0
  143. package/src/peer-authorization.ts +199 -21
  144. package/src/peer-record.ts +28 -10
  145. package/src/relay-addrs.ts +111 -0
  146. package/src/relay-reservation.ts +823 -0
  147. package/src/seed-bootstrap.ts +397 -197
  148. package/src/seed-trust-policy.ts +58 -25
  149. package/src/strand-addr-protocol.ts +84 -53
  150. package/src/strand-backfill.ts +366 -0
  151. package/src/strand-formation-manager.ts +145 -19
  152. package/src/strand-formation-protocol.ts +309 -8
  153. package/src/strand-instance-manager.ts +111 -14
  154. package/src/strand-member-registry.ts +18 -13
  155. package/src/strand-membership-writer.ts +1430 -640
  156. package/src/strand-solicitation.ts +155 -90
  157. package/src/strand-transport-key.ts +58 -0
  158. package/src/strand-wake-protocol.ts +29 -46
  159. package/src/strand-watcher.ts +66 -3
  160. package/src/trusted-owner-store-file.ts +41 -0
  161. package/src/trusted-owner-store.ts +171 -0
  162. package/src/types.ts +292 -21
@@ -1 +1 @@
1
- {"version":3,"file":"control-database.js","sourceRoot":"","sources":["../src/control-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-database.js","sourceRoot":"","sources":["../src/control-database.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { ControlDatabase } from './control-database.js';
1
+ import { type ControlDatabase } from './control-database.js';
2
+ import { type FormationApprover } from './formation-approval.js';
2
3
  import type { FormationUsageRecorder, ResolvedHostStrand } from './strand-solicitation.js';
3
4
  import type { OpenInvitation } from './types.js';
4
5
  /**
@@ -23,10 +24,25 @@ import type { OpenInvitation } from './types.js';
23
24
  * Usage accounting follows the schema's `FormationUsage.Authorized` semantics:
24
25
  * a null `TotalUses` means unlimited uses; otherwise the invite is "used up"
25
26
  * once the recorded usage count reaches `TotalUses`.
27
+ *
28
+ * When the invite carries a `ValidationUrl`, both write paths first obtain an outside
29
+ * approval ({@link obtainApproval}) — the recorder is the one place where the nonce that is
30
+ * SIGNED and the nonce that is INSERTED are trivially the same value, since it also performs
31
+ * the write. That makes this class do network I/O; failures surface as
32
+ * {@link FormationApprovalError}s the manager maps to protocol rejection reasons.
26
33
  */
27
34
  export declare class ControlFormationUsageRecorder implements FormationUsageRecorder {
28
35
  private readonly controlDatabase;
29
- constructor(controlDatabase: ControlDatabase);
36
+ private readonly approver;
37
+ /**
38
+ * `approver` defaults to the real HTTP hook client — deliberately ON: this recorder is
39
+ * constructed by the reference apps and the integration harness, not by `CadreNode`, so an
40
+ * opt-in approver would leave every real deployment unable to redeem a
41
+ * `ValidationUrl`-bearing invite. Tests inject a fake.
42
+ */
43
+ constructor(controlDatabase: ControlDatabase, options?: {
44
+ approver?: FormationApprover;
45
+ });
30
46
  /** A token is valid when a matching, unexpired `FormationInvite` exists. */
31
47
  isTokenValid(token: string): Promise<{
32
48
  valid: boolean;
@@ -38,16 +54,65 @@ export declare class ControlFormationUsageRecorder implements FormationUsageReco
38
54
  * token is reported not-used (validity is handled by {@link isTokenValid}).
39
55
  */
40
56
  isTokenUsed(token: string): Promise<boolean>;
57
+ /**
58
+ * Any `FormationInvite` row still unexpired and not fully consumed — the
59
+ * durable half of the control-network connection gate's "does this node
60
+ * expect a stranger?" question. Survives a restart and sees invites
61
+ * replicated in from sibling nodes of the same cadre.
62
+ */
63
+ hasOutstandingInvitation(): Promise<boolean>;
64
+ /**
65
+ * Obtain the approval material for ONE redemption, when the invite demands it.
66
+ *
67
+ * `validationUrl === null` → `{}`: no approval required. The `usageStampId` nonce is
68
+ * ALWAYS supplied by the caller — the JOINER mints it, signs its own consent over it, and
69
+ * sends it in the contact message — so the approver signs over the identical nonce in both
70
+ * paths. Two local pre-checks run before anything is written:
71
+ *
72
+ * - {@link verifyFormationApproval} — did the hook sign the exact fields we hold?
73
+ * - {@link ControlDatabase.queryValidationKeyStampId} — is the approval's key enrolled?
74
+ *
75
+ * Both pre-checks exist purely for legibility — they turn a bad approval into a named
76
+ * {@link FormationApprovalError} instead of an opaque `CHECK constraint failed: Authorized`
77
+ * at commit. The database re-verifies against the STORED `ValidationKey` row and remains
78
+ * the security authority; do not "simplify" the database check away in favour of these.
79
+ */
80
+ private obtainApproval;
81
+ /**
82
+ * Ask the approver, re-labelling a caller-abort as a {@link FormationAbortedError}.
83
+ *
84
+ * The HTTP client relays a caller-abort onto its own request and reports it as an
85
+ * `unavailable` {@link FormationApprovalError} — which the manager cannot tell from a
86
+ * genuinely dead hook, and so maps to a rejection reason and RETURNS. Every other abort on
87
+ * this path THROWS, which is what makes the manager rethrow and leave the reply to the
88
+ * listener's timeout path; a mid-hook abort belongs in the same class. The approval error
89
+ * is kept as `cause` so the transport-level detail is not lost.
90
+ */
91
+ private askApprover;
41
92
  /**
42
93
  * Record consent against an **already-existing** host strand (record-only): the
43
94
  * single `FormationUsage` insert auto-commits and the deferred `StrandExists`
44
95
  * CHECK is satisfied by the pre-existing strand. This is the provision-then-record
45
96
  * commitment — the strand was minted owner-signed up front, so we do NOT
46
- * re-insert it (which would double-insert the same PK). `initiatorKey` is carried
47
- * as the usage `PeerId` (advisory). Use {@link ControlDatabase.redeemInvitation}
48
- * for the consent-creates-strand path instead.
97
+ * re-insert it (which would double-insert the same PK). `peerKey` is written as the
98
+ * usage `PeerKey`, which BOTH signed digests cover: the joiner's own consent signature
99
+ * (`peerSignature`, verified by the schema's `PeerConsented` CHECK) and — when the invite
100
+ * carries a `ValidationUrl` — the approver's sign-off, so it is the joiner an approval is
101
+ * spent on AND provably the joiner that agreed. Use
102
+ * {@link ControlDatabase.redeemInvitation} for the consent-creates-strand path instead.
103
+ *
104
+ * Reads the invite first (one extra read per redemption) to learn its `ValidationUrl`, and
105
+ * obtains the approval through {@link obtainApproval} when one is demanded.
49
106
  */
50
- recordUsage(token: string, initiatorKey: string, strandId: string): Promise<void>;
107
+ recordUsage(params: {
108
+ token: string;
109
+ peerKey: string;
110
+ peerSignature: string;
111
+ usageStampId: string;
112
+ strandId: string;
113
+ disclosure: string;
114
+ signal?: AbortSignal;
115
+ }): Promise<void>;
51
116
  /**
52
117
  * Classify the host strand this invite binds to (see {@link ResolvedHostStrand}):
53
118
  *
@@ -78,11 +143,25 @@ export declare class ControlFormationUsageRecorder implements FormationUsageReco
78
143
  * key — so the returned `memberPrivateKey` is null. `sAppId` is accepted for parity/future
79
144
  * use; `redeemInvitation` does not currently thread it into the `Strand` row.
80
145
  *
81
- * A concurrent redemption of the same single-use invite collides on the
82
- * `(Token, UseNumber)` PK and this call THROWS for the loser — the manager maps that to a
83
- * clean protocol rejection (it never lets the dropped insert close the stream silently).
146
+ * A concurrent redemption of the same single-use invite still THROWS for the loser — the
147
+ * manager maps that to a clean protocol rejection (it never lets the dropped insert close
148
+ * the stream silently) — but no longer via a `(Token, UseNumber)` primary-key collision on
149
+ * this node: `redeemInvitation` reads the use number INSIDE the write lock, so two local
150
+ * redemptions serialize and the second one reads the number the first already committed.
151
+ * It is then refused because that number is past the invite's seat budget, reported as a
152
+ * named `InvitationExhaustedError` on every attempt (including the first, which is what a
153
+ * same-node race hits). A PK collision is still what a cross-node race surfaces as, and that
154
+ * one IS retried under a fresh use number rather than thrown.
84
155
  */
85
- provisionAndRecord(token: string, initiatorKey: string, _sAppId: string): Promise<{
156
+ provisionAndRecord(params: {
157
+ token: string;
158
+ peerKey: string;
159
+ peerSignature: string;
160
+ usageStampId: string;
161
+ sAppId: string;
162
+ disclosure: string;
163
+ signal?: AbortSignal;
164
+ }): Promise<{
86
165
  strandId: string;
87
166
  memberPrivateKey: string | null;
88
167
  }>;
@@ -1,5 +1,7 @@
1
1
  import debug from 'debug';
2
2
  import { randomBytes } from '@optimystic/quereus-plugin-crypto';
3
+ import { FormationAbortedError } from './control-database.js';
4
+ import { createHttpFormationApprover, verifyFormationApproval, FormationApprovalError } from './formation-approval.js';
3
5
  const log = debug('sereus:cadre:formation-recorder');
4
6
  /** Far-future sentinel for an invitation that never expires (max valid JS Date). */
5
7
  const NEVER_EXPIRES = new Date(8640000000000000);
@@ -25,10 +27,23 @@ const NEVER_EXPIRES = new Date(8640000000000000);
25
27
  * Usage accounting follows the schema's `FormationUsage.Authorized` semantics:
26
28
  * a null `TotalUses` means unlimited uses; otherwise the invite is "used up"
27
29
  * once the recorded usage count reaches `TotalUses`.
30
+ *
31
+ * When the invite carries a `ValidationUrl`, both write paths first obtain an outside
32
+ * approval ({@link obtainApproval}) — the recorder is the one place where the nonce that is
33
+ * SIGNED and the nonce that is INSERTED are trivially the same value, since it also performs
34
+ * the write. That makes this class do network I/O; failures surface as
35
+ * {@link FormationApprovalError}s the manager maps to protocol rejection reasons.
28
36
  */
29
37
  export class ControlFormationUsageRecorder {
30
- constructor(controlDatabase) {
38
+ /**
39
+ * `approver` defaults to the real HTTP hook client — deliberately ON: this recorder is
40
+ * constructed by the reference apps and the integration harness, not by `CadreNode`, so an
41
+ * opt-in approver would leave every real deployment unable to redeem a
42
+ * `ValidationUrl`-bearing invite. Tests inject a fake.
43
+ */
44
+ constructor(controlDatabase, options) {
31
45
  this.controlDatabase = controlDatabase;
46
+ this.approver = options?.approver ?? createHttpFormationApprover();
32
47
  }
33
48
  /** A token is valid when a matching, unexpired `FormationInvite` exists. */
34
49
  async isTokenValid(token) {
@@ -63,17 +78,104 @@ export class ControlFormationUsageRecorder {
63
78
  const uses = await this.controlDatabase.countFormationUsage(token);
64
79
  return uses >= invite.totalUses;
65
80
  }
81
+ /**
82
+ * Any `FormationInvite` row still unexpired and not fully consumed — the
83
+ * durable half of the control-network connection gate's "does this node
84
+ * expect a stranger?" question. Survives a restart and sees invites
85
+ * replicated in from sibling nodes of the same cadre.
86
+ */
87
+ async hasOutstandingInvitation() {
88
+ return await this.controlDatabase.hasOutstandingFormationInvite();
89
+ }
90
+ /**
91
+ * Obtain the approval material for ONE redemption, when the invite demands it.
92
+ *
93
+ * `validationUrl === null` → `{}`: no approval required. The `usageStampId` nonce is
94
+ * ALWAYS supplied by the caller — the JOINER mints it, signs its own consent over it, and
95
+ * sends it in the contact message — so the approver signs over the identical nonce in both
96
+ * paths. Two local pre-checks run before anything is written:
97
+ *
98
+ * - {@link verifyFormationApproval} — did the hook sign the exact fields we hold?
99
+ * - {@link ControlDatabase.queryValidationKeyStampId} — is the approval's key enrolled?
100
+ *
101
+ * Both pre-checks exist purely for legibility — they turn a bad approval into a named
102
+ * {@link FormationApprovalError} instead of an opaque `CHECK constraint failed: Authorized`
103
+ * at commit. The database re-verifies against the STORED `ValidationKey` row and remains
104
+ * the security authority; do not "simplify" the database check away in favour of these.
105
+ */
106
+ async obtainApproval(request, signal) {
107
+ const { validationUrl, ...fields } = request;
108
+ if (validationUrl === null) {
109
+ return {};
110
+ }
111
+ if (signal?.aborted) {
112
+ throw new FormationAbortedError(fields.token, 'approval');
113
+ }
114
+ const fullRequest = { ...fields, validationUrl };
115
+ const approval = await this.askApprover(fullRequest, signal);
116
+ if (!verifyFormationApproval(fullRequest, approval)) {
117
+ throw new FormationApprovalError('malformed', `Approval signature does not verify over this redemption (token ${fields.token})`);
118
+ }
119
+ if (await this.controlDatabase.queryValidationKeyStampId(approval.validationKey) === null) {
120
+ throw new FormationApprovalError('unenrolled', 'Approval is signed by a key that is not an enrolled ValidationKey');
121
+ }
122
+ return approval;
123
+ }
124
+ /**
125
+ * Ask the approver, re-labelling a caller-abort as a {@link FormationAbortedError}.
126
+ *
127
+ * The HTTP client relays a caller-abort onto its own request and reports it as an
128
+ * `unavailable` {@link FormationApprovalError} — which the manager cannot tell from a
129
+ * genuinely dead hook, and so maps to a rejection reason and RETURNS. Every other abort on
130
+ * this path THROWS, which is what makes the manager rethrow and leave the reply to the
131
+ * listener's timeout path; a mid-hook abort belongs in the same class. The approval error
132
+ * is kept as `cause` so the transport-level detail is not lost.
133
+ */
134
+ async askApprover(request, signal) {
135
+ try {
136
+ return await this.approver.requestApproval(request, signal);
137
+ }
138
+ catch (err) {
139
+ if (signal?.aborted) {
140
+ throw new FormationAbortedError(request.token, 'approval', { cause: err });
141
+ }
142
+ throw err;
143
+ }
144
+ }
66
145
  /**
67
146
  * Record consent against an **already-existing** host strand (record-only): the
68
147
  * single `FormationUsage` insert auto-commits and the deferred `StrandExists`
69
148
  * CHECK is satisfied by the pre-existing strand. This is the provision-then-record
70
149
  * commitment — the strand was minted owner-signed up front, so we do NOT
71
- * re-insert it (which would double-insert the same PK). `initiatorKey` is carried
72
- * as the usage `PeerId` (advisory). Use {@link ControlDatabase.redeemInvitation}
73
- * for the consent-creates-strand path instead.
150
+ * re-insert it (which would double-insert the same PK). `peerKey` is written as the
151
+ * usage `PeerKey`, which BOTH signed digests cover: the joiner's own consent signature
152
+ * (`peerSignature`, verified by the schema's `PeerConsented` CHECK) and — when the invite
153
+ * carries a `ValidationUrl` — the approver's sign-off, so it is the joiner an approval is
154
+ * spent on AND provably the joiner that agreed. Use
155
+ * {@link ControlDatabase.redeemInvitation} for the consent-creates-strand path instead.
156
+ *
157
+ * Reads the invite first (one extra read per redemption) to learn its `ValidationUrl`, and
158
+ * obtains the approval through {@link obtainApproval} when one is demanded.
74
159
  */
75
- async recordUsage(token, initiatorKey, strandId) {
76
- await this.controlDatabase.recordFormationUsage({ token, strandId, peerId: initiatorKey });
160
+ async recordUsage(params) {
161
+ const { token, peerKey, peerSignature, usageStampId, strandId, disclosure, signal } = params;
162
+ if (signal?.aborted) {
163
+ throw new FormationAbortedError(token, 'usage recording');
164
+ }
165
+ const invite = await this.controlDatabase.queryFormationInvite(token);
166
+ // NOTE: a missing invite row reads as "no approval required" here and in
167
+ // `provisionAndRecord`, so an invite that vanished between `resolveStrand` and this read
168
+ // would be written unapproved. Safe only because the database's `FormationUsage.Authorized`
169
+ // CHECK demands a matching `FormationInvite` and rolls the write back regardless; if that
170
+ // CHECK ever loosens, reject on `invite === null` instead of defaulting to null.
171
+ const approval = await this.obtainApproval({
172
+ token, usageStampId, strandId, peerKey, disclosure,
173
+ validationUrl: invite?.validationUrl ?? null,
174
+ }, signal);
175
+ await this.controlDatabase.recordFormationUsage({
176
+ token, strandId, peerKey, peerSignature, usageStampId, disclosure, signal,
177
+ totalUses: invite?.totalUses ?? null, ...approval,
178
+ });
77
179
  log('Recorded formation usage: token=%s strand=%s', token, strandId);
78
180
  }
79
181
  /**
@@ -120,17 +222,30 @@ export class ControlFormationUsageRecorder {
120
222
  * key — so the returned `memberPrivateKey` is null. `sAppId` is accepted for parity/future
121
223
  * use; `redeemInvitation` does not currently thread it into the `Strand` row.
122
224
  *
123
- * A concurrent redemption of the same single-use invite collides on the
124
- * `(Token, UseNumber)` PK and this call THROWS for the loser — the manager maps that to a
125
- * clean protocol rejection (it never lets the dropped insert close the stream silently).
225
+ * A concurrent redemption of the same single-use invite still THROWS for the loser — the
226
+ * manager maps that to a clean protocol rejection (it never lets the dropped insert close
227
+ * the stream silently) — but no longer via a `(Token, UseNumber)` primary-key collision on
228
+ * this node: `redeemInvitation` reads the use number INSIDE the write lock, so two local
229
+ * redemptions serialize and the second one reads the number the first already committed.
230
+ * It is then refused because that number is past the invite's seat budget, reported as a
231
+ * named `InvitationExhaustedError` on every attempt (including the first, which is what a
232
+ * same-node race hits). A PK collision is still what a cross-node race surfaces as, and that
233
+ * one IS retried under a fresh use number rather than thrown.
126
234
  */
127
- async provisionAndRecord(token, initiatorKey, _sAppId) {
235
+ async provisionAndRecord(params) {
236
+ const { token, peerKey, peerSignature, usageStampId, disclosure, signal } = params;
237
+ if (signal?.aborted) {
238
+ throw new FormationAbortedError(token, 'redemption');
239
+ }
128
240
  const strandId = `strand-${randomBytes(128, 'hex')}`;
241
+ const invite = await this.controlDatabase.queryFormationInvite(token);
242
+ const approval = await this.obtainApproval({
243
+ token, usageStampId, strandId, peerKey, disclosure,
244
+ validationUrl: invite?.validationUrl ?? null,
245
+ }, signal);
129
246
  await this.controlDatabase.redeemInvitation({
130
- token,
131
- strandId,
132
- type: 'o',
133
- peerId: initiatorKey,
247
+ token, strandId, peerKey, peerSignature, usageStampId, disclosure, signal,
248
+ totalUses: invite?.totalUses ?? null, ...approval,
134
249
  });
135
250
  log('Provisioned + recorded unbound strand: token=%s strand=%s', token, strandId);
136
251
  return { strandId, memberPrivateKey: null };
@@ -1 +1 @@
1
- {"version":3,"file":"control-formation-recorder.js","sourceRoot":"","sources":["../src/control-formation-recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-formation-recorder.js","sourceRoot":"","sources":["../src/control-formation-recorder.ts"],"names":[],"mappings":"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"}