@serve.zone/interfaces 32.17.0 → 32.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.
- package/changelog.md +52 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/clusternode.d.ts +22 -2
- package/dist_ts/data/clusternode.js +14 -2
- package/dist_ts/data/deploymentpreflight.d.ts +7 -1
- package/dist_ts/data/deploymentpreflight.js +59 -1
- package/dist_ts/data/index.d.ts +1 -0
- package/dist_ts/data/index.js +2 -1
- package/dist_ts/{private → data}/releaseversion.js +1 -1
- package/dist_ts/data/sparklegacyretirement.d.ts +50 -1
- package/dist_ts/data/sparklegacyretirement.js +41 -3
- package/dist_ts/data/sparknodereport.js +2 -2
- package/dist_ts/protocol.js +2 -2
- package/package.json +6 -6
- package/readme.md +43 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/clusternode.ts +37 -1
- package/ts/data/deploymentpreflight.ts +60 -46
- package/ts/data/index.ts +1 -0
- package/ts/data/sparklegacyretirement.ts +89 -5
- package/ts/data/sparknodereport.ts +1 -1
- package/ts/protocol.ts +1 -1
- /package/dist_ts/{private → data}/releaseversion.d.ts +0 -0
- /package/ts/{private → data}/releaseversion.ts +0 -0
|
@@ -31,6 +31,15 @@ export interface ISparkNodeBundleIdentity {
|
|
|
31
31
|
/** SHA-256 of the exact installed unit-file bytes. */
|
|
32
32
|
unitDigest: TSha256Digest;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* What became of the released configuration source once this node stopped reading it.
|
|
36
|
+
*
|
|
37
|
+
* A tuple beside the union, exactly like `sparkLegacyRuntimeModes`: a reader that has to name the
|
|
38
|
+
* two states — a form, a migration, a refusal message — reads them from the contract instead of
|
|
39
|
+
* restating two string literals the contract could later disagree with.
|
|
40
|
+
*/
|
|
41
|
+
export declare const sparkLegacyConfigurationDispositions: readonly ["retained-inert", "removed"];
|
|
42
|
+
export type TSparkLegacyConfigurationDisposition = typeof sparkLegacyConfigurationDispositions[number];
|
|
34
43
|
/**
|
|
35
44
|
* The released key-value configuration source, by digest and disposition only.
|
|
36
45
|
*
|
|
@@ -44,7 +53,7 @@ export interface ISparkLegacyConfigurationState {
|
|
|
44
53
|
/** SHA-256 of the exact source bytes this node imported, once, under its fenced read. */
|
|
45
54
|
sourceSha256: string;
|
|
46
55
|
/** On disk and read by nothing, or unlinked. Erasure is not a cutover requirement. */
|
|
47
|
-
disposition:
|
|
56
|
+
disposition: TSparkLegacyConfigurationDisposition;
|
|
48
57
|
}
|
|
49
58
|
/**
|
|
50
59
|
* What one node states about the released Spark runtime it is replacing, on one observation.
|
|
@@ -100,6 +109,42 @@ export declare const sparkLegacyRetirementContract: Readonly<{
|
|
|
100
109
|
/** Every reason Cloudly answers instead of advancing a node's legacy retirement state. */
|
|
101
110
|
export declare const sparkLegacyRetirementRefusals: readonly ["legacy-retirement-generation-stale", "legacy-retirement-generation-conflict", "legacy-retirement-source-changed", "legacy-retirement-disposition-reversed", "legacy-retirement-bundle-below-minimum"];
|
|
102
111
|
export type TSparkLegacyRetirementRefusal = typeof sparkLegacyRetirementRefusals[number];
|
|
112
|
+
/**
|
|
113
|
+
* What the server did with the statement one observation carried, answered on that observation's
|
|
114
|
+
* own accepted receipt.
|
|
115
|
+
*
|
|
116
|
+
* The statement is judged against records, not against the message: a malformed one is already
|
|
117
|
+
* refused by `validateSparkLegacyRuntimeRetirement` before any of this, so everything left is a
|
|
118
|
+
* fact about this node's history. That is why a refusal here does not reject the observation —
|
|
119
|
+
* the node's liveness and census are true whatever its released runtime states — and why an
|
|
120
|
+
* accepted observation is the only place this outcome appears.
|
|
121
|
+
*
|
|
122
|
+
* `generation` is the revision both node-owned records stand at once the observation is accepted:
|
|
123
|
+
* `accepted` advanced it, `restated` is the replay that renewed nothing and left it where it was.
|
|
124
|
+
* A refusal carries no generation, because the counter a refused node has to reconcile with is
|
|
125
|
+
* its own `ownerGeneration`, which it already holds.
|
|
126
|
+
*/
|
|
127
|
+
export type TSparkLegacyRetirementOutcome = {
|
|
128
|
+
state: 'accepted';
|
|
129
|
+
/** The revision this observation advanced both records to. */
|
|
130
|
+
generation: number;
|
|
131
|
+
} | {
|
|
132
|
+
state: 'restated';
|
|
133
|
+
/** The revision that stands; this observation added nothing to it. */
|
|
134
|
+
generation: number;
|
|
135
|
+
} | {
|
|
136
|
+
state: 'refused';
|
|
137
|
+
refusal: TSparkLegacyRetirementRefusal;
|
|
138
|
+
/**
|
|
139
|
+
* Always false, and stated anyway.
|
|
140
|
+
*
|
|
141
|
+
* Every refusal of this family answers one exact statement, so resending it cannot change
|
|
142
|
+
* the answer; a server-side race is refused one level up, as the observation's own
|
|
143
|
+
* `acceptance-race`. It travels on the wire for the reason the rejected receipt carries its
|
|
144
|
+
* own flag: a node that meets a refusal name a later minor added still learns it must stop.
|
|
145
|
+
*/
|
|
146
|
+
retryable: false;
|
|
147
|
+
};
|
|
103
148
|
/** Structural copy only; whether the tree it describes is installed is the node's to observe. */
|
|
104
149
|
export declare const snapshotSparkNodeBundleIdentity: (valueArg: unknown) => ISparkNodeBundleIdentity;
|
|
105
150
|
export declare const snapshotSparkLegacyConfigurationState: (valueArg: unknown) => ISparkLegacyConfigurationState;
|
|
@@ -109,6 +154,10 @@ export declare const snapshotSparkLegacyRuntimeRetirement: (valueArg: unknown) =
|
|
|
109
154
|
* digested as a whole, so a second domain here would only be a second thing to keep in step.
|
|
110
155
|
*/
|
|
111
156
|
export declare const validateSparkLegacyRuntimeRetirement: (valueArg: unknown) => string[];
|
|
157
|
+
/** Exact-key per state, like every other shape here: an outcome states one answer and no other. */
|
|
158
|
+
export declare const snapshotSparkLegacyRetirementOutcome: (valueArg: unknown) => TSparkLegacyRetirementOutcome;
|
|
159
|
+
/** Synchronous for the same reason: the receipt that carries it is what a reader binds. */
|
|
160
|
+
export declare const validateSparkLegacyRetirementOutcome: (valueArg: unknown) => string[];
|
|
112
161
|
export declare const snapshotSparkLegacyModeRefusal: (valueArg: unknown) => ISparkLegacyModeRefusal;
|
|
113
162
|
export declare const computeSparkLegacyModeRefusalDigest: (valueArg: unknown) => Promise<TSha256Digest>;
|
|
114
163
|
export declare const validateSparkLegacyModeRefusal: (valueArg: unknown) => Promise<string[]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isReleaseVersion } from '
|
|
1
|
+
import { isReleaseVersion } from './releaseversion.js';
|
|
2
2
|
import { captureNetwork, networkCounter, networkDigest, networkEqual, networkHash, networkId, networkNodeId, networkRecord, networkReference, networkRevision, requireNetwork, } from '../private/networkcontract.js';
|
|
3
3
|
/** The two runtimes a released Spark could be put into by its `mode` configuration key. */
|
|
4
4
|
export const sparkLegacyRuntimeModes = ['cloudly', 'coreflow-node'];
|
|
@@ -11,6 +11,14 @@ export const sparkLegacyRuntimeModeServices = Object.freeze({
|
|
|
11
11
|
'cloudly': Object.freeze(['cloudly']),
|
|
12
12
|
'coreflow-node': Object.freeze(['coreflow', 'corestore', 'coretraffic']),
|
|
13
13
|
});
|
|
14
|
+
/**
|
|
15
|
+
* What became of the released configuration source once this node stopped reading it.
|
|
16
|
+
*
|
|
17
|
+
* A tuple beside the union, exactly like `sparkLegacyRuntimeModes`: a reader that has to name the
|
|
18
|
+
* two states — a form, a migration, a refusal message — reads them from the contract instead of
|
|
19
|
+
* restating two string literals the contract could later disagree with.
|
|
20
|
+
*/
|
|
21
|
+
export const sparkLegacyConfigurationDispositions = ['retained-inert', 'removed'];
|
|
14
22
|
export const sparkLegacyRetirementContract = Object.freeze({
|
|
15
23
|
modeRefusalDigestDomain: 'serve.zone/spark-legacy-mode-refusal',
|
|
16
24
|
configurationRetirementDigestDomain: 'serve.zone/spark-legacy-configuration-retirement',
|
|
@@ -54,7 +62,13 @@ const legacyRuntimeMode = (valueArg) => {
|
|
|
54
62
|
return valueArg;
|
|
55
63
|
};
|
|
56
64
|
const configurationDisposition = (valueArg) => {
|
|
57
|
-
requireNetwork(
|
|
65
|
+
requireNetwork(sparkLegacyConfigurationDispositions
|
|
66
|
+
.includes(valueArg));
|
|
67
|
+
return valueArg;
|
|
68
|
+
};
|
|
69
|
+
const retirementRefusal = (valueArg) => {
|
|
70
|
+
requireNetwork(sparkLegacyRetirementRefusals
|
|
71
|
+
.includes(valueArg));
|
|
58
72
|
return valueArg;
|
|
59
73
|
};
|
|
60
74
|
/** Structural copy only; whether the tree it describes is installed is the node's to observe. */
|
|
@@ -103,6 +117,30 @@ export const validateSparkLegacyRuntimeRetirement = (valueArg) => {
|
|
|
103
117
|
return ['Spark legacy runtime retirement must use its exact canonical schema'];
|
|
104
118
|
}
|
|
105
119
|
};
|
|
120
|
+
/** Exact-key per state, like every other shape here: an outcome states one answer and no other. */
|
|
121
|
+
export const snapshotSparkLegacyRetirementOutcome = (valueArg) => safe(() => {
|
|
122
|
+
const captured = captureNetwork(valueArg);
|
|
123
|
+
requireNetwork(captured !== null && typeof captured === 'object');
|
|
124
|
+
const state = captured.state;
|
|
125
|
+
requireNetwork(state === 'accepted' || state === 'restated' || state === 'refused');
|
|
126
|
+
if (state === 'refused') {
|
|
127
|
+
const value = networkRecord(captured, ['state', 'refusal', 'retryable']);
|
|
128
|
+
requireNetwork(value.retryable === false);
|
|
129
|
+
return { state, refusal: retirementRefusal(value.refusal), retryable: false };
|
|
130
|
+
}
|
|
131
|
+
const value = networkRecord(captured, ['state', 'generation']);
|
|
132
|
+
return { state, generation: networkCounter(value.generation) };
|
|
133
|
+
});
|
|
134
|
+
/** Synchronous for the same reason: the receipt that carries it is what a reader binds. */
|
|
135
|
+
export const validateSparkLegacyRetirementOutcome = (valueArg) => {
|
|
136
|
+
try {
|
|
137
|
+
snapshotSparkLegacyRetirementOutcome(valueArg);
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return ['Spark legacy retirement outcome must use its exact canonical schema'];
|
|
142
|
+
}
|
|
143
|
+
};
|
|
106
144
|
/** The revision rule every accepted receipt of this contract obeys, read once for both of them. */
|
|
107
145
|
const retirementReceiptBase = (valueArg, ownKeysArg) => {
|
|
108
146
|
const value = networkRecord(captureNetwork(valueArg), [
|
|
@@ -203,4 +241,4 @@ export const bindSparkLegacyRetirement = async (modeRefusalArg, configurationRet
|
|
|
203
241
|
return fail();
|
|
204
242
|
}
|
|
205
243
|
};
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcmtsZWdhY3lyZXRpcmVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9zcGFya2xlZ2FjeXJldGlyZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUNULGFBQWEsRUFDYixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QywyRkFBMkY7QUFDM0YsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFVLENBQUM7QUFJN0U7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxlQUFlLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7Q0FDWixDQUFDLENBQUM7QUF5RmhFLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekQsdUJBQXVCLEVBQUUsc0NBQXNDO0lBQy9ELG1DQUFtQyxFQUFFLGtEQUFrRDtDQUMvRSxDQUFDLENBQUM7QUFFWiwwRkFBMEY7QUFDMUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RCwrREFBK0Q7SUFDL0Qsb0NBQW9DO0lBQ3BDLHVGQUF1RjtJQUN2Rix1Q0FBdUM7SUFDdkMscUZBQXFGO0lBQ3JGLGtDQUFrQztJQUNsQyxxREFBcUQ7SUFDckQs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
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcmtsZWdhY3lyZXRpcmVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9zcGFya2xlZ2FjeXJldGlyZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUNULGFBQWEsRUFDYixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QywyRkFBMkY7QUFDM0YsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFVLENBQUM7QUFJN0U7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxlQUFlLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7Q0FDWixDQUFDLENBQUM7QUFzQmhFOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFVLENBQUM7QUF3RTNGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekQsdUJBQXVCLEVBQUUsc0NBQXNDO0lBQy9ELG1DQUFtQyxFQUFFLGtEQUFrRDtDQUMvRSxDQUFDLENBQUM7QUFFWiwwRkFBMEY7QUFDMUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RCwrREFBK0Q7SUFD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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isReleaseVersion } from '
|
|
1
|
+
import { isReleaseVersion } from './releaseversion.js';
|
|
2
2
|
import { readExactDataRecord } from '../private/dataproperties.js';
|
|
3
3
|
import { isClusterNodeId } from '../private/nodeidentifier.js';
|
|
4
4
|
import { protocolRefusalHttpStatus, readProtocolOffer } from '../protocol.js';
|
|
@@ -100,4 +100,4 @@ export const snapshotSparkNodeHeartbeatReceipt = (valueArg) => {
|
|
|
100
100
|
protocol: readProtocolOffer(value),
|
|
101
101
|
});
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhcmtub2RlcmVwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9zcGFya25vZGVyZXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxpQkFBaUIsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQWlEbkc7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RELFFBQVEsRUFBRSx3QkFBd0I7SUFDbEMsZUFBZSxFQUFFLElBQUk7SUFDckIsZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixxQkFBcUIsRUFBRSx5QkFBeUI7Q0FDeEMsQ0FBQyxDQUFDO0FBRVosTUFBTSxJQUFJLEdBQUcsR0FBVSxFQUFFLEdBQUcsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFGLFNBQVMsWUFBWSxDQUFDLFFBQWlCO0lBQ3JDLElBQUksQ0FBQyxRQUFRO1FBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUNELHNHQUFzRztBQUN0RyxNQUFNLE1BQU0sR0FBRyxDQUFDLFFBQWlCLEVBQUUsT0FBMEIsRUFBMkIsRUFBRTtJQUN4RixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEQsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM5QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFDRixNQUFNLElBQUksR0FBRyxDQUFDLFFBQWlCLEVBQUUs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
|
package/dist_ts/protocol.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { commitinfo } from './00_commitinfo_data.js';
|
|
2
2
|
import { isPlainRecord, readDataProperty, readExactDataRecord, } from './private/dataproperties.js';
|
|
3
|
-
import { compareReleaseVersions, isReleaseVersion, maximumReleaseVersionLength, parseReleaseVersion, } from './
|
|
3
|
+
import { compareReleaseVersions, isReleaseVersion, maximumReleaseVersionLength, parseReleaseVersion, } from './data/releaseversion.js';
|
|
4
4
|
/**
|
|
5
5
|
* The contract this build speaks: the installed `@serve.zone/interfaces` release.
|
|
6
6
|
*
|
|
@@ -252,4 +252,4 @@ export const describeProtocolRefusal = (refusalArg) => (`${refusalArg.code} (${r
|
|
|
252
252
|
+ `and accepts from ${refusalArg.refusing.minimumPeerVersion}; `
|
|
253
253
|
+ `refused side speaks ${refusalArg.refused.interfacesVersion} `
|
|
254
254
|
+ `and accepts from ${refusalArg.refused.minimumPeerVersion}`);
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9wcm90b2NvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUNMLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsR0FDckQsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsbUJBQW1CLEdBRXBCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFXLFVBQVUsQ0FBQyxPQUFPLENBQUM7QUFvQjFELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBVSxDQUFDO0FBRS9FOzs7Ozs7R0FNRztBQUNILE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQix5QkFBeUI7Q0FDakIsQ0FBQztBQWtCWCxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFVLENBQUM7QUFNL0U7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxPQUFPLENBQUM7QUFFbkQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFDO0FBRTdDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxPQUFlLEVBQVUsRUFBRSxDQUFDLEdBQUcsT0FBTyw0QkFBNEIsQ0FBQztBQUUvRixNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBZSxFQUFVLEVBQUUsQ0FBQyxDQUN6RCxHQUFHLE9BQU8sMERBQTBEO01BQ2xFLEdBQUcsMkJBQTJCLG1EQUFtRCxDQUNwRixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/interfaces",
|
|
3
|
-
"version": "32.
|
|
3
|
+
"version": "32.19.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
|
|
6
6
|
"exports": {
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"@tsclass/tsclass": "^9.5.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@git.zone/tsbuild": "^
|
|
31
|
-
"@git.zone/tsdoc": "^2.2.
|
|
32
|
-
"@git.zone/tsrun": "^
|
|
33
|
-
"@git.zone/tstest": "6.
|
|
34
|
-
"@types/node": "26.
|
|
30
|
+
"@git.zone/tsbuild": "^5.0.0",
|
|
31
|
+
"@git.zone/tsdoc": "^2.2.2",
|
|
32
|
+
"@git.zone/tsrun": "^3.0.0",
|
|
33
|
+
"@git.zone/tstest": "6.2.0",
|
|
34
|
+
"@types/node": "26.6.1"
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
37
37
|
"ts/**/*",
|
package/readme.md
CHANGED
|
@@ -1466,6 +1466,11 @@ untouched.
|
|
|
1466
1466
|
|
|
1467
1467
|
Versions are `MAJOR.MINOR.PATCH` and nothing else — no prerelease, no build metadata, no `v`
|
|
1468
1468
|
prefix, no leading zeros — and are compared per numeric component, so `32.10.0` is above `32.9.0`.
|
|
1469
|
+
That grammar is public as `data.IReleaseVersion`, `data.parseReleaseVersion`,
|
|
1470
|
+
`data.isReleaseVersion`, `data.compareReleaseVersions` and `data.maximumReleaseVersionLength`: any
|
|
1471
|
+
policy that has to order two released versions — a minimum bundle a server believes, a supported
|
|
1472
|
+
floor — reads them here instead of splitting strings of its own, which is how a comparison ends up
|
|
1473
|
+
saying `32.9.0` is above `32.10.0`.
|
|
1469
1474
|
`minimumPeerVersion` is in the same major as `interfacesVersion` and never above it. Each
|
|
1470
1475
|
deployable owns its minimums, one per session kind it serves, and raises one only in the commit
|
|
1471
1476
|
that starts depending on a later interfaces minor, for that session kind alone.
|
|
@@ -1557,7 +1562,12 @@ Coreflow connection:
|
|
|
1557
1562
|
exact next sequence with a strictly advancing `observedAt`, while an exact
|
|
1558
1563
|
same-sequence/same-digest retry returns the byte-equivalent persisted receipt
|
|
1559
1564
|
before age checks. It must reject conflicting, stale, skipped,
|
|
1560
|
-
retired-session, old, future, or non-advancing reports.
|
|
1565
|
+
retired-session, old, future, or non-advancing reports. `evidence-refused` is the
|
|
1566
|
+
one rejection about content rather than sequencing: it names an evidence member
|
|
1567
|
+
this server refuses for this body and every resend of it, so the node must change
|
|
1568
|
+
the body instead of retrying it, while a server-side condition a later attempt
|
|
1569
|
+
could pass stays `acceptance-race` — telling those two apart while it accepts
|
|
1570
|
+
evidence is the consumer's own work. A reused session ID
|
|
1561
1571
|
may be treated as new only after it leaves the bounded retired window, and its
|
|
1562
1572
|
sequence-one observation must still advance the permanent timestamp
|
|
1563
1573
|
high-water mark. The consumer must persist acceptance state and its receipt
|
|
@@ -2187,7 +2197,11 @@ the identical accepted reference, so these facts must reach Cloudly on the very
|
|
|
2187
2197
|
carries the node's Docker census.
|
|
2188
2198
|
|
|
2189
2199
|
`data.ISparkLegacyRuntimeRetirement` is the optional observation member, available in every
|
|
2190
|
-
observation state because it describes the host and not its Docker daemon.
|
|
2200
|
+
observation state because it describes the host and not its Docker daemon. Accepting it is
|
|
2201
|
+
state-independent; completing the evidence is not. `IFleetCutoverCoreflowRetirementEvidence`
|
|
2202
|
+
completes only from a `member` observation of the relay host, because `relay.nodeObservation` and
|
|
2203
|
+
`spark.observation` must be the identical accepted reference and that reference has to carry the
|
|
2204
|
+
relay host's local Docker snapshot, which no other observation state can state. It is
|
|
2191
2205
|
`{ refusedMode, bundle, configuration }` and nothing else. It names no node: Cloudly binds it to
|
|
2192
2206
|
the reporter it already authenticated, so there is no node identity on it to disagree with. It
|
|
2193
2207
|
carries no digest of its own either — `computeSparkSwarmObservationDigest` canonicalizes the whole
|
|
@@ -2203,7 +2217,9 @@ host will start that same code again. `data.ISparkLegacyConfigurationState { own
|
|
|
2203
2217
|
sourceSha256, disposition }` names the released key-value source by digest alone. No decoded member
|
|
2204
2218
|
of that file is representable in any shape here, because it carries the node's released bearer and
|
|
2205
2219
|
its jump code; `sourceSha256` covers the whole file, whose smallest unguessable part is a 256-bit
|
|
2206
|
-
token. `disposition` is `retained-inert` or `removed
|
|
2220
|
+
token. `disposition` is `retained-inert` or `removed` — the two of
|
|
2221
|
+
`data.sparkLegacyConfigurationDispositions`, with `data.TSparkLegacyConfigurationDisposition` as
|
|
2222
|
+
their union; erasure is not a cutover requirement.
|
|
2207
2223
|
|
|
2208
2224
|
Cloudly accepts an observation first and then advances two of its own records, which is what the
|
|
2209
2225
|
evidence's two references point at. `data.ISparkLegacyModeRefusal` and
|
|
@@ -2227,6 +2243,26 @@ retirement cites, requiring the same cluster, node, reporter session, sequence a
|
|
|
2227
2243
|
observation. It is a content check; whether each receipt is its node's current revision remains
|
|
2228
2244
|
Cloudly's.
|
|
2229
2245
|
|
|
2246
|
+
The answer travels on the observation's own accepted receipt, as
|
|
2247
|
+
`ISparkSwarmObservationAcceptedReceipt.fleetCutoverLegacyRetirement`, a
|
|
2248
|
+
`data.TSparkLegacyRetirementOutcome`: `{ state: 'accepted', generation }` for the revision this
|
|
2249
|
+
observation advanced both records to, `{ state: 'restated', generation }` for the replay that
|
|
2250
|
+
renewed nothing, and `{ state: 'refused', refusal, retryable: false }` naming one of the refusals
|
|
2251
|
+
above. A refused statement does not reject the observation. The statement is judged against
|
|
2252
|
+
records rather than against the message — a malformed one is already refused by
|
|
2253
|
+
`validateSparkLegacyRuntimeRetirement` — so everything left is a fact about this node's history,
|
|
2254
|
+
while the observation's liveness and census are true either way and the cluster's target set
|
|
2255
|
+
depends on their freshness. A refusal is never retryable: it answers one exact statement, so
|
|
2256
|
+
resending it cannot change the answer, and a genuine server-side race is the observation's own
|
|
2257
|
+
`acceptance-race` one level up. The flag is carried anyway, so a node meeting a refusal name a
|
|
2258
|
+
later minor added still learns it must stop.
|
|
2259
|
+
`validateSparkSwarmObservationResponse` binds the answer to the statement in both directions: an
|
|
2260
|
+
accepted receipt that answers a statement the observation never made, or leaves one it did make
|
|
2261
|
+
unanswered, is refused. A rejected receipt carries no outcome at all, because an observation that
|
|
2262
|
+
was not accepted never reached the statement.
|
|
2263
|
+
`data.snapshotSparkLegacyRetirementOutcome` and `data.validateSparkLegacyRetirementOutcome` read
|
|
2264
|
+
it exact-key per state, like every other shape here.
|
|
2265
|
+
|
|
2230
2266
|
An omitted member is not a refusal and advances nothing, so the existence of these records is not
|
|
2231
2267
|
what makes a retirement honest — the freshness of the observation they name is. Assembly must
|
|
2232
2268
|
require that observation to still be inside `fleetCutoverContract.observationFreshnessMs`, exactly
|
|
@@ -2239,7 +2275,10 @@ ignoring a member it does not know — the peers of a session kind are upgraded
|
|
|
2239
2275
|
starts depending on the later minor, and the `minimumPeerVersion` of that session kind is raised in
|
|
2240
2276
|
the same commit that starts depending on it. A Spark that begins stating this member therefore
|
|
2241
2277
|
raises its `sparkSwarmNode` minimum alone, which requires one minimum per session kind rather than
|
|
2242
|
-
one shared across a deployable's offers.
|
|
2278
|
+
one shared across a deployable's offers. The duty runs both ways: a receipt is read exact-key too,
|
|
2279
|
+
so a Cloudly that begins answering with `fleetCutoverLegacyRetirement` raises its own
|
|
2280
|
+
`sparkSwarmNode` minimum in the same commit, or an older Spark refuses the receipt for a member it
|
|
2281
|
+
does not know.
|
|
2243
2282
|
|
|
2244
2283
|
### Cluster VPN Hub And Network
|
|
2245
2284
|
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/data/clusternode.ts
CHANGED
|
@@ -21,8 +21,10 @@ import {
|
|
|
21
21
|
type IFleetCutoverPreparedVolumeHandoffPage,
|
|
22
22
|
} from './fleetcutover.js';
|
|
23
23
|
import {
|
|
24
|
+
validateSparkLegacyRetirementOutcome,
|
|
24
25
|
validateSparkLegacyRuntimeRetirement,
|
|
25
26
|
type ISparkLegacyRuntimeRetirement,
|
|
27
|
+
type TSparkLegacyRetirementOutcome,
|
|
26
28
|
} from './sparklegacyretirement.js';
|
|
27
29
|
import { protocolRefusalHttpStatus, validateProtocolOfferOn, type IProtocolOffer } from '../protocol.js';
|
|
28
30
|
import {
|
|
@@ -286,7 +288,17 @@ export type TSparkSwarmObservationRejectionCode =
|
|
|
286
288
|
| 'observation-too-old'
|
|
287
289
|
| 'observation-from-future'
|
|
288
290
|
| 'observation-time-not-advancing'
|
|
289
|
-
| 'acceptance-race'
|
|
291
|
+
| 'acceptance-race'
|
|
292
|
+
/**
|
|
293
|
+
* An evidence member of this observation is refused, for this body and every resend of it.
|
|
294
|
+
*
|
|
295
|
+
* The whole observation is rejected because the refused content is what the body states, and a
|
|
296
|
+
* node that keeps resending it would never be recorded. It is the answer for a member whose
|
|
297
|
+
* content this server has decided against; a server-side condition that a later attempt could
|
|
298
|
+
* pass is `acceptance-race` instead, and telling the two apart while accepting evidence is the
|
|
299
|
+
* server's own work.
|
|
300
|
+
*/
|
|
301
|
+
| 'evidence-refused';
|
|
290
302
|
|
|
291
303
|
export const sparkSwarmObservationContract = Object.freeze({
|
|
292
304
|
digestDomain: 'serve.zone/spark-swarm-observation',
|
|
@@ -303,6 +315,7 @@ export const sparkSwarmObservationContract = Object.freeze({
|
|
|
303
315
|
'observation-from-future': false,
|
|
304
316
|
'observation-time-not-advancing': false,
|
|
305
317
|
'acceptance-race': true,
|
|
318
|
+
'evidence-refused': false,
|
|
306
319
|
} satisfies Record<TSparkSwarmObservationRejectionCode, boolean>),
|
|
307
320
|
} as const);
|
|
308
321
|
|
|
@@ -350,6 +363,15 @@ export interface ISparkSwarmObservationAcceptedReceipt {
|
|
|
350
363
|
acceptedAt: number;
|
|
351
364
|
/** Runtime target generation observed immediately after this acceptance. */
|
|
352
365
|
targetGenerationAtAcceptance: number;
|
|
366
|
+
/**
|
|
367
|
+
* What the server did with `fleetCutoverLegacyRetirement`, present exactly when it was stated.
|
|
368
|
+
*
|
|
369
|
+
* A statement about the node's own released runtime is judged against records rather than
|
|
370
|
+
* against this message, so its refusal is answered here instead of rejecting an observation
|
|
371
|
+
* whose liveness and census are true either way. Absent on the rejected receipt: an observation
|
|
372
|
+
* that was not accepted never reached the statement.
|
|
373
|
+
*/
|
|
374
|
+
fleetCutoverLegacyRetirement?: TSparkLegacyRetirementOutcome;
|
|
353
375
|
/** The answering server's offer; see `sparkSwarmNodeContracts`. */
|
|
354
376
|
protocol: IProtocolOffer;
|
|
355
377
|
}
|
|
@@ -968,6 +990,8 @@ export const validateSparkSwarmObservationResponse = async (
|
|
|
968
990
|
'observationDigest',
|
|
969
991
|
'acceptedAt',
|
|
970
992
|
'targetGenerationAtAcceptance',
|
|
993
|
+
...(responseArg.fleetCutoverLegacyRetirement === undefined
|
|
994
|
+
? [] : ['fleetCutoverLegacyRetirement']),
|
|
971
995
|
'protocol',
|
|
972
996
|
];
|
|
973
997
|
const rejectedKeys = [
|
|
@@ -1017,6 +1041,18 @@ export const validateSparkSwarmObservationResponse = async (
|
|
|
1017
1041
|
|| (responseArg.targetGenerationAtAcceptance as number) < 0) {
|
|
1018
1042
|
errors.push('Spark Swarm observation accepted receipt fields must be canonical');
|
|
1019
1043
|
}
|
|
1044
|
+
// Stated and unanswered, or answered and never stated: both are a server that judged
|
|
1045
|
+
// something other than the observation this receipt binds.
|
|
1046
|
+
if ((responseArg.fleetCutoverLegacyRetirement !== undefined)
|
|
1047
|
+
!== (expectedRequestArg.observation.fleetCutoverLegacyRetirement !== undefined)) {
|
|
1048
|
+
errors.push(
|
|
1049
|
+
'Spark Swarm observation accepted receipt must answer the legacy retirement it was sent',
|
|
1050
|
+
);
|
|
1051
|
+
} else if (responseArg.fleetCutoverLegacyRetirement !== undefined) {
|
|
1052
|
+
errors.push(...validateSparkLegacyRetirementOutcome(
|
|
1053
|
+
responseArg.fleetCutoverLegacyRetirement,
|
|
1054
|
+
).map(errorArg => `Spark Swarm observation response ${errorArg}`));
|
|
1055
|
+
}
|
|
1020
1056
|
} else {
|
|
1021
1057
|
const retryability = sparkSwarmObservationContract.rejectionRetryability;
|
|
1022
1058
|
if (!isPositiveSafeInteger(responseArg.rejectedAt)
|
|
@@ -21,52 +21,66 @@ import {
|
|
|
21
21
|
|
|
22
22
|
export type TDeploymentPreflightDecision = 'GO' | 'NO-GO';
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Every code a deployment preflight names a blocker by, as a tuple beside the union: a reader that
|
|
26
|
+
* judges a report's blockers reads the vocabulary from the contract instead of restating a list
|
|
27
|
+
* the contract could later disagree with.
|
|
28
|
+
*/
|
|
29
|
+
export const deploymentPreflightBlockerCodes = [
|
|
30
|
+
'INVALID_REQUEST',
|
|
31
|
+
'AUTHORIZATION_MISSING',
|
|
32
|
+
'ORGANIZATION_SCOPE_MISSING',
|
|
33
|
+
'SERVICE_OWNERSHIP_MISMATCH',
|
|
34
|
+
'DEPLOYMENT_OPERATION_NOT_FOUND',
|
|
35
|
+
'DEPLOYMENT_OPERATION_CONFLICT',
|
|
36
|
+
'DEPLOY_ON_PUSH_MUST_BE_DISABLED',
|
|
37
|
+
'REGISTRY_AUTHENTICATION_UNAVAILABLE',
|
|
38
|
+
'REGISTRY_REPOSITORY_MISMATCH',
|
|
39
|
+
'REGISTRY_TAG_CONFLICT',
|
|
40
|
+
'SOURCE_REVISION_INVALID',
|
|
41
|
+
'SOURCE_WORKTREE_DIRTY',
|
|
42
|
+
'VERSION_NOT_RESERVED',
|
|
43
|
+
'VERSION_COLLISION',
|
|
44
|
+
'NAMESPACE_NOT_RESERVED',
|
|
45
|
+
'NAMESPACE_COLLISION',
|
|
46
|
+
'NAMESPACE_NOT_PROVEN_BLANK',
|
|
47
|
+
'CONFIGURATION_DIGEST_INVALID',
|
|
48
|
+
'INTENT_DIGEST_INVALID',
|
|
49
|
+
'PROPOSED_CONFIGURATION_INCOMPLETE',
|
|
50
|
+
'CURRENT_REFERENCE_MUTABLE',
|
|
51
|
+
'CURRENT_RUNTIME_DIGEST_MISSING',
|
|
52
|
+
'OCI_INDEX_DIGEST_REQUIRED',
|
|
53
|
+
'OCI_INDEX_NOT_FOUND',
|
|
54
|
+
'OCI_INDEX_MEDIA_TYPE_REQUIRED',
|
|
55
|
+
'OCI_PLATFORM_MISSING',
|
|
56
|
+
'OCI_PLATFORM_MANIFEST_MISSING',
|
|
57
|
+
'IMMUTABLE_RELEASE_TAG_REQUIRED',
|
|
58
|
+
'IMMUTABLE_RELEASE_TAG_NOT_RESERVED',
|
|
59
|
+
'RELEASE_EVIDENCE_MISSING',
|
|
60
|
+
'RELEASE_EVIDENCE_INVALID',
|
|
61
|
+
'RELEASE_EVIDENCE_AMBIGUOUS',
|
|
62
|
+
'RELEASE_NOT_AUTHORIZED',
|
|
63
|
+
'GREENFIELD_EXECUTION_UNAVAILABLE',
|
|
64
|
+
'ROUTE_PROMOTION_FENCE_UNAVAILABLE',
|
|
65
|
+
'POST_DEPLOYMENT_VERIFICATION_UNAVAILABLE',
|
|
66
|
+
'WOULD_REPLACE_EXISTING_STATE',
|
|
67
|
+
'PLATFORM_CAPABILITY_UNAVAILABLE',
|
|
68
|
+
'CORESTORE_INVENTORY_UNAVAILABLE',
|
|
69
|
+
'RUNTIME_ATTESTATION_MISMATCH',
|
|
70
|
+
'ROLLOUT_ACTIVE_CONFLICT',
|
|
71
|
+
'ROLLOUT_NOT_SUCCEEDED',
|
|
72
|
+
'ROUTE_UNAVAILABLE',
|
|
73
|
+
/**
|
|
74
|
+
* A proposed route hostname the service does not hold yet is, or is a wildcard covering, a
|
|
75
|
+
* cluster relay name `relay.<clusterId>.<zone>` in a zone Cloudly publishes in, and such a name
|
|
76
|
+
* belongs to that cluster's relay alone.
|
|
77
|
+
*/
|
|
78
|
+
'RELAY_NAME_RESERVED',
|
|
79
|
+
'ROUTE_VERIFICATION_FAILED',
|
|
80
|
+
'TLS_VERIFICATION_FAILED',
|
|
81
|
+
] as const;
|
|
82
|
+
|
|
83
|
+
export type TDeploymentPreflightBlockerCode = typeof deploymentPreflightBlockerCodes[number];
|
|
70
84
|
|
|
71
85
|
export interface IDeploymentPreflightBlocker {
|
|
72
86
|
code: TDeploymentPreflightBlockerCode;
|
package/ts/data/index.ts
CHANGED
|
@@ -42,6 +42,7 @@ export * from './networkprotection.js';
|
|
|
42
42
|
export * from './networksigning.js';
|
|
43
43
|
export * from './privatenetwork.js';
|
|
44
44
|
export * from './registry.js';
|
|
45
|
+
export * from './releaseversion.js';
|
|
45
46
|
export * from './runtimeassignment.js';
|
|
46
47
|
export * from './runtimeconfig.js';
|
|
47
48
|
export * from './runtimestorageclaim.js';
|