@serfab/cadre-core 1.17.0 → 1.19.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 (148) hide show
  1. package/README.md +3 -2
  2. package/dist/cadre-invite-protocol.d.ts +35 -13
  3. package/dist/cadre-invite-protocol.js +90 -25
  4. package/dist/cadre-invite-protocol.js.map +1 -1
  5. package/dist/cadre-node.d.ts +586 -255
  6. package/dist/cadre-node.js +1182 -566
  7. package/dist/cadre-node.js.map +1 -1
  8. package/dist/control-cohort.d.ts +66 -9
  9. package/dist/control-cohort.js +67 -9
  10. package/dist/control-cohort.js.map +1 -1
  11. package/dist/control-database.d.ts +451 -193
  12. package/dist/control-database.js +701 -359
  13. package/dist/control-database.js.map +1 -1
  14. package/dist/control-formation-recorder.d.ts +46 -43
  15. package/dist/control-formation-recorder.js +77 -78
  16. package/dist/control-formation-recorder.js.map +1 -1
  17. package/dist/control-protocol-guard.d.ts +6 -0
  18. package/dist/control-protocol-guard.js +14 -2
  19. package/dist/control-protocol-guard.js.map +1 -1
  20. package/dist/control-schema-version.d.ts +48 -31
  21. package/dist/control-schema-version.js +67 -45
  22. package/dist/control-schema-version.js.map +1 -1
  23. package/dist/control-schema.d.ts +8 -8
  24. package/dist/control-schema.js +16 -16
  25. package/dist/control-schema.js.map +1 -1
  26. package/dist/control-write-retry.d.ts +42 -7
  27. package/dist/control-write-retry.js +87 -19
  28. package/dist/control-write-retry.js.map +1 -1
  29. package/dist/enrolled-machine-store.d.ts +3 -3
  30. package/dist/enrolled-machine-store.js +3 -3
  31. package/dist/formation-token.d.ts +48 -0
  32. package/dist/formation-token.js +26 -0
  33. package/dist/formation-token.js.map +1 -0
  34. package/dist/index.d.ts +15 -14
  35. package/dist/index.js +17 -14
  36. package/dist/index.js.map +1 -1
  37. package/dist/joined-strand-store.d.ts +26 -9
  38. package/dist/joined-strand-store.js +63 -24
  39. package/dist/joined-strand-store.js.map +1 -1
  40. package/dist/link-budget.d.ts +9 -7
  41. package/dist/link-budget.js +9 -7
  42. package/dist/link-budget.js.map +1 -1
  43. package/dist/member-redemption.d.ts +15 -9
  44. package/dist/member-redemption.js +13 -8
  45. package/dist/member-redemption.js.map +1 -1
  46. package/dist/membership-view.d.ts +91 -0
  47. package/dist/membership-view.js +110 -0
  48. package/dist/membership-view.js.map +1 -0
  49. package/dist/owner-grant-protocol.d.ts +11 -7
  50. package/dist/owner-grant-protocol.js +31 -17
  51. package/dist/owner-grant-protocol.js.map +1 -1
  52. package/dist/peer-addr-book.d.ts +10 -1
  53. package/dist/peer-addr-book.js +4 -3
  54. package/dist/peer-addr-book.js.map +1 -1
  55. package/dist/peer-join-backfill.d.ts +96 -30
  56. package/dist/peer-join-backfill.js +272 -128
  57. package/dist/peer-join-backfill.js.map +1 -1
  58. package/dist/pending-join-runner.d.ts +48 -18
  59. package/dist/pending-join-runner.js +74 -56
  60. package/dist/pending-join-runner.js.map +1 -1
  61. package/dist/seed-bootstrap.d.ts +47 -40
  62. package/dist/seed-bootstrap.js +66 -61
  63. package/dist/seed-bootstrap.js.map +1 -1
  64. package/dist/self-address-update.d.ts +13 -0
  65. package/dist/self-address-update.js +19 -0
  66. package/dist/self-address-update.js.map +1 -0
  67. package/dist/strand-database.d.ts +23 -2
  68. package/dist/strand-database.js +26 -6
  69. package/dist/strand-database.js.map +1 -1
  70. package/dist/strand-first-sync-gate.d.ts +176 -89
  71. package/dist/strand-first-sync-gate.js +288 -122
  72. package/dist/strand-first-sync-gate.js.map +1 -1
  73. package/dist/strand-formation-deadlines.d.ts +9 -9
  74. package/dist/strand-formation-deadlines.js +9 -9
  75. package/dist/strand-formation-manager.d.ts +23 -17
  76. package/dist/strand-formation-manager.js +46 -44
  77. package/dist/strand-formation-manager.js.map +1 -1
  78. package/dist/strand-formation-protocol.d.ts +5 -8
  79. package/dist/strand-formation-protocol.js +101 -16
  80. package/dist/strand-formation-protocol.js.map +1 -1
  81. package/dist/strand-instance-manager.d.ts +26 -17
  82. package/dist/strand-instance-manager.js +119 -50
  83. package/dist/strand-instance-manager.js.map +1 -1
  84. package/dist/strand-membership-reconciler.d.ts +16 -13
  85. package/dist/strand-membership-reconciler.js +28 -22
  86. package/dist/strand-membership-reconciler.js.map +1 -1
  87. package/dist/strand-membership-writer.d.ts +40 -28
  88. package/dist/strand-membership-writer.js +212 -153
  89. package/dist/strand-membership-writer.js.map +1 -1
  90. package/dist/strand-move.js +5 -2
  91. package/dist/strand-move.js.map +1 -1
  92. package/dist/strand-revocation-enforcer.d.ts +134 -60
  93. package/dist/strand-revocation-enforcer.js +144 -71
  94. package/dist/strand-revocation-enforcer.js.map +1 -1
  95. package/dist/strand-solicitation.d.ts +50 -39
  96. package/dist/strand-solicitation.js +10 -3
  97. package/dist/strand-solicitation.js.map +1 -1
  98. package/dist/strand-watcher.d.ts +80 -13
  99. package/dist/strand-watcher.js +152 -48
  100. package/dist/strand-watcher.js.map +1 -1
  101. package/dist/table-change-watch.d.ts +63 -0
  102. package/dist/table-change-watch.js +209 -0
  103. package/dist/table-change-watch.js.map +1 -0
  104. package/dist/timeout-scheduler.d.ts +4 -3
  105. package/dist/timeout-scheduler.js +4 -3
  106. package/dist/timeout-scheduler.js.map +1 -1
  107. package/dist/types.d.ts +90 -49
  108. package/dist/types.js +4 -4
  109. package/dist/types.js.map +1 -1
  110. package/package.json +8 -8
  111. package/src/cadre-invite-protocol.ts +119 -31
  112. package/src/cadre-node.ts +1289 -588
  113. package/src/control-cohort.ts +86 -9
  114. package/src/control-database.ts +848 -403
  115. package/src/control-formation-recorder.ts +359 -353
  116. package/src/control-protocol-guard.ts +16 -2
  117. package/src/control-schema-version.ts +101 -51
  118. package/src/control-schema.ts +16 -16
  119. package/src/control-write-retry.ts +91 -19
  120. package/src/delegate-admission.ts +351 -351
  121. package/src/enrolled-machine-store.ts +3 -3
  122. package/src/formation-token.ts +63 -0
  123. package/src/index.ts +30 -18
  124. package/src/joined-strand-store.ts +69 -24
  125. package/src/link-budget.ts +9 -7
  126. package/src/member-redemption.ts +20 -13
  127. package/src/membership-view.ts +144 -0
  128. package/src/owner-grant-protocol.ts +33 -18
  129. package/src/peer-addr-book.ts +4 -3
  130. package/src/peer-join-backfill.ts +961 -761
  131. package/src/pending-join-runner.ts +76 -53
  132. package/src/seed-bootstrap.ts +72 -67
  133. package/src/self-address-update.ts +19 -0
  134. package/src/strand-database.ts +352 -322
  135. package/src/strand-first-sync-gate.ts +334 -134
  136. package/src/strand-formation-deadlines.ts +227 -227
  137. package/src/strand-formation-manager.ts +731 -725
  138. package/src/strand-formation-protocol.ts +122 -24
  139. package/src/strand-instance-manager.ts +2092 -2026
  140. package/src/strand-membership-reconciler.ts +31 -25
  141. package/src/strand-membership-writer.ts +2093 -2019
  142. package/src/strand-move.ts +5 -2
  143. package/src/strand-revocation-enforcer.ts +740 -654
  144. package/src/strand-solicitation.ts +61 -34
  145. package/src/strand-watcher.ts +175 -56
  146. package/src/table-change-watch.ts +285 -0
  147. package/src/timeout-scheduler.ts +29 -28
  148. package/src/types.ts +89 -51
@@ -3,42 +3,39 @@
3
3
  * store after declaring the control schema and before applying it.
4
4
  *
5
5
  * `apply schema CadreControl` runs whatever DDL makes the hydrated catalog equal the declared
6
- * schema. Against a store written by another release that DDL is either refused by the
7
- * optimystic module part-way through (`alter table … drop constraint`, `add column`,
8
- * `drop column`), which fails the start with a message naming whichever step came first, or
9
- * runs and destroys rows (`drop table`). This module decides from the pending DDL and the
10
- * stored schema version, before any of it runs, and throws one typed error instead.
6
+ * schema, and that apply is how a store written under an older control schema version is
7
+ * migrated in place: between consecutive versions the difference is limited to statements the
8
+ * optimystic module applies to a table's catalog record without rewriting a row, so running the
9
+ * diff from a store at version K to this build's declaration runs each version's changes from
10
+ * K+1 up to the build's, in order. This module decides, from the stored version and the pending
11
+ * DDL and before any of it runs, whether the apply may go ahead, and throws one typed error
12
+ * naming the reason when it may not.
11
13
  *
12
14
  * The same change classifier ({@link classifyControlSchemaChange}) is what
13
15
  * `control-schema-versions.spec.ts` runs over each pair of consecutive control schema versions,
14
16
  * so a schema edit that no store could be migrated across fails when it is made. Where the
15
17
  * version lives, when it changes and what a new version may change: docs/architecture.md →
16
- * "Control schema changes and incompatible stores".
18
+ * "Control schema versions and migrations".
17
19
  *
18
- * NOTE: the stored tag is the version the store's `OwnerKey` table was CREATED under. The
19
- * optimystic plugin does not persist `alter table … set tags` (Quereus applies a tag change to
20
- * its catalog without calling the module, and the plugin follows it in memory only), so the
21
- * `set tags` an additive upgrade runs raises the version for that process alone. The check stays
22
- * safe regardless, because it lets through only DDL that adds, so an older build's diff against
23
- * an upgraded store lists the drop and is refused on that ground. Migrating a store in place
24
- * (control-store-migrates-on-start) needs the version a store was upgraded to, so it needs that
25
- * persisted upstream (optimystic-catalog-only-alter-table).
20
+ * The stored tag is the version of the last start that applied the schema to the store: the
21
+ * apply's `alter table OwnerKey set tags (…)` persists since Optimystic 1.16.0, so after a
22
+ * migrating start the store records this build's version. A store additively upgraded by a build
23
+ * from before that still reads the version it was created under, which is harmless: the diff is
24
+ * computed from the catalog, not from the number, and the number only has to tell a store that
25
+ * a newer release migrated from one this build can migrate.
26
26
  */
27
27
  import { Parser } from '@quereus/quereus';
28
- import { CONTROL_SCHEMA_NAME, CONTROL_SCHEMA_VERSION_TAG } from './control-schema.js';
28
+ import { CONTROL_SCHEMA_BASELINE_VERSION, CONTROL_SCHEMA_NAME, CONTROL_SCHEMA_VERSION_TAG } from './control-schema.js';
29
29
  import { controlStorageScope } from './storage-scope.js';
30
30
  /** The control table whose tags carry {@link CONTROL_SCHEMA_VERSION_TAG}. */
31
31
  const VERSION_TABLE = 'OwnerKey';
32
- /** A warm control store this build cannot apply its control schema to without destroying data. */
32
+ /** A warm control store this build cannot apply its control schema to. */
33
33
  export class ControlStoreIncompatibleError extends Error {
34
- constructor(partyId, storeVersion, buildVersion, pendingDdl) {
34
+ constructor(reason, partyId, storeVersion, buildVersion, pendingDdl) {
35
35
  const storageScope = controlStorageScope(partyId);
36
- super(`The control store for party ${JSON.stringify(partyId)} ${provenance(storeVersion, buildVersion)} ` +
37
- `(it records control schema version ${storeVersion}; this build declares ${buildVersion}), and this build ` +
38
- 'cannot apply its control schema to it without losing data. Run a release whose control schema ' +
39
- `matches the store, or recreate the control store (storage scope ${storageScope}) as ` +
40
- 'docs/architecture.md describes.');
36
+ super(refusalMessage(reason, partyId, storeVersion, buildVersion, storageScope));
41
37
  this.name = 'ControlStoreIncompatibleError';
38
+ this.reason = reason;
42
39
  this.partyId = partyId;
43
40
  this.storeVersion = storeVersion;
44
41
  this.buildVersion = buildVersion;
@@ -47,32 +44,48 @@ export class ControlStoreIncompatibleError extends Error {
47
44
  }
48
45
  }
49
46
  /**
50
- * Which release created the store, relative to this build, for the error message. Created, not
51
- * last written: the stored version does not move on an additive upgrade (module NOTE).
47
+ * The message for each {@link ControlStoreIncompatibility}. Only the two recreate cases advise
48
+ * recreating: a store a newer release migrated holds rows written since, and recreating it
49
+ * would throw them away.
52
50
  */
53
- function provenance(storeVersion, buildVersion) {
54
- if (storeVersion > buildVersion) {
55
- return 'was created by a newer release';
51
+ function refusalMessage(reason, partyId, storeVersion, buildVersion, storageScope) {
52
+ const store = `The control store for party ${JSON.stringify(partyId)}`;
53
+ const versions = `it records control schema version ${storeVersion}; this build declares ${buildVersion}`;
54
+ const recreate = 'Run a release whose control schema matches the store, or recreate the control store ' +
55
+ `(storage scope ${storageScope}) as docs/architecture.md describes.`;
56
+ switch (reason) {
57
+ case 'newer-release':
58
+ return `${store} was migrated by a newer release (${versions}). Update this app or node to that ` +
59
+ 'release or a later one; the store and its rows are intact.';
60
+ case 'before-migrations':
61
+ return `${store} was written before control schema migrations (${versions}; migrations start at ` +
62
+ `version ${CONTROL_SCHEMA_BASELINE_VERSION}, and docs/architecture.md says why earlier stores are not ` +
63
+ `migrated), so this build cannot upgrade it in place. ${recreate}`;
64
+ case 'not-migratable':
65
+ return `${store} cannot be migrated to this build's control schema (${versions}): applying it would ` +
66
+ `rewrite or discard stored rows. ${recreate}`;
56
67
  }
57
- return storeVersion < buildVersion
58
- ? 'was created by an older release'
59
- : 'was created under the same control schema version';
60
68
  }
61
69
  /**
62
- * Throw {@link ControlStoreIncompatibleError} when applying the declared control schema to the
63
- * hydrated store would destroy data; return having run nothing otherwise. Needs
64
- * `declare schema CadreControl` to have run, and runs only `diff schema`, which executes no DDL.
70
+ * Throw {@link ControlStoreIncompatibleError} when the declared control schema must not be applied
71
+ * to the hydrated store; return having run nothing otherwise, and the apply then migrates the
72
+ * store. Needs `declare schema CadreControl` to have run, and runs only `diff schema`, which
73
+ * executes no DDL.
65
74
  *
66
75
  * A cold store (the hydrated catalog lists no control table) passes without a diff: the apply
67
- * creates everything. A warm store is refused when either
68
- * - any pending statement is not `additive` ({@link classifyControlSchemaChange}): every other
69
- * change to an existing control table is refused by the optimystic module or discards rows; or
70
- * - its version is above the build's: a newer release created it, so even a diff that only adds
71
- * (the newer release no longer declares something this build does) would put back what that
72
- * release removed, and the newer release would then refuse its own store.
76
+ * creates everything. A warm store is refused for the first of these that holds
77
+ * ({@link ControlStoreIncompatibility}):
78
+ * - its version is above the build's: even a diff that only adds (the newer release no longer
79
+ * declares something this build does) would put back what that release removed, and the newer
80
+ * release would then refuse its own store;
81
+ * - its version is below the baseline, whatever the diff: a store written by 1.16.0 or earlier,
82
+ * which the baseline paragraph of docs/architecture.md explains cannot be migrated;
83
+ * - any pending statement is `unmigratable` ({@link classifyControlSchemaChange}).
73
84
  *
74
- * So a store from an older release still warm-starts when the only change since is a new table
75
- * or index.
85
+ * Every `additive` and `catalog-only` change passes, so a store from an older migratable
86
+ * release warm-starts and the apply brings it to this build's version. A store that is both
87
+ * older than the baseline and not migratable reports `before-migrations`, whose message gives the
88
+ * recreate advice and points at the explanation.
76
89
  */
77
90
  export async function refuseIncompatibleControlStore(db, partyId) {
78
91
  if (!isWarmControlStore(db)) {
@@ -81,11 +94,20 @@ export async function refuseIncompatibleControlStore(db, partyId) {
81
94
  const storeVersion = schemaVersionOf(db.schemaManager.getTable(CONTROL_SCHEMA_NAME, VERSION_TABLE)?.tags);
82
95
  const buildVersion = declaredSchemaVersion(db);
83
96
  const pending = await pendingControlSchemaChanges(db);
84
- // `catalog-only` changes stay refused until the optimystic module applies them
85
- // (optimystic-catalog-only-alter-table); control-store-migrates-on-start widens this then.
86
- if (storeVersion > buildVersion || pending.some((change) => change.kind !== 'additive')) {
87
- throw new ControlStoreIncompatibleError(partyId, storeVersion, buildVersion, pending.map((change) => change.ddl));
97
+ const reason = incompatibilityOf(storeVersion, buildVersion, pending);
98
+ if (reason !== undefined) {
99
+ throw new ControlStoreIncompatibleError(reason, partyId, storeVersion, buildVersion, pending.map((change) => change.ddl));
100
+ }
101
+ }
102
+ /** The first {@link ControlStoreIncompatibility} that holds for a warm store, or undefined when the apply may migrate it. */
103
+ function incompatibilityOf(storeVersion, buildVersion, pending) {
104
+ if (storeVersion > buildVersion) {
105
+ return 'newer-release';
106
+ }
107
+ if (storeVersion < CONTROL_SCHEMA_BASELINE_VERSION) {
108
+ return 'before-migrations';
88
109
  }
110
+ return pending.some((change) => change.kind === 'unmigratable') ? 'not-migratable' : undefined;
89
111
  }
90
112
  /** Whether the hydrated catalog lists at least one control table, i.e. the store was written before. */
91
113
  function isWarmControlStore(db) {
@@ -1 +1 @@
1
- {"version":3,"file":"control-schema-version.js","sourceRoot":"","sources":["../src/control-schema-version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-schema-version.js","sourceRoot":"","sources":["../src/control-schema-version.ts"],"names":[],"mappings":"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"}