@serve.zone/interfaces 31.9.0 → 32.0.1
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 +476 -0
- package/dist_ts/00_commitinfo_data.js +3 -3
- package/dist_ts/appstore/types.d.ts +4 -6
- package/dist_ts/appstore/types.js +5 -5
- package/dist_ts/data/backup.d.ts +3 -26
- package/dist_ts/data/cluster.d.ts +36 -11
- package/dist_ts/data/cluster.js +33 -22
- package/dist_ts/data/clusteringress.d.ts +8 -0
- package/dist_ts/data/clusteringress.js +13 -8
- package/dist_ts/data/clusternode.d.ts +121 -74
- package/dist_ts/data/clusternode.js +109 -132
- package/dist_ts/data/coremail.d.ts +3 -7
- package/dist_ts/data/coremail.js +2 -2
- package/dist_ts/data/coremail.runtime.d.ts +0 -1
- package/dist_ts/data/coremail.runtime.js +5 -22
- package/dist_ts/data/deploymentadoption.d.ts +0 -2
- package/dist_ts/data/deploymentadoption.js +40 -6
- package/dist_ts/data/deploymentoperation.js +16 -3
- package/dist_ts/data/deploymentpreflight.d.ts +0 -2
- package/dist_ts/data/deploymentpreflight.js +1 -1
- package/dist_ts/data/immutableimage.d.ts +38 -21
- package/dist_ts/data/immutableimage.js +45 -5
- package/dist_ts/data/index.d.ts +1 -1
- package/dist_ts/data/isolatedrestore.d.ts +139 -21
- package/dist_ts/data/isolatedrestore.golden.d.ts +0 -1
- package/dist_ts/data/isolatedrestore.golden.js +6 -9
- package/dist_ts/data/isolatedrestore.js +176 -40
- package/dist_ts/data/mail.d.ts +1 -1
- package/dist_ts/data/networkaddressplan.d.ts +8 -8
- package/dist_ts/data/networkaddressplan.js +4 -4
- package/dist_ts/data/networkauthority.d.ts +20 -22
- package/dist_ts/data/networkauthority.js +26 -28
- package/dist_ts/data/networkcredential.d.ts +10 -10
- package/dist_ts/data/networkcredential.js +16 -16
- package/dist_ts/data/networkdelivery.d.ts +18 -18
- package/dist_ts/data/networkdelivery.js +16 -16
- package/dist_ts/data/networklease.d.ts +18 -7
- package/dist_ts/data/networklease.js +29 -7
- package/dist_ts/data/networknode.d.ts +2 -2
- package/dist_ts/data/networkprojection.d.ts +59 -60
- package/dist_ts/data/networkprojection.js +53 -57
- package/dist_ts/data/networkprotection.d.ts +27 -28
- package/dist_ts/data/networkprotection.js +36 -36
- package/dist_ts/data/networkrouter.d.ts +11 -11
- package/dist_ts/data/networkrouter.js +1 -1
- package/dist_ts/data/networksigning.d.ts +16 -18
- package/dist_ts/data/networksigning.js +20 -21
- package/dist_ts/data/nodecredential.d.ts +4 -6
- package/dist_ts/data/nodeenrollment.d.ts +35 -40
- package/dist_ts/data/nodeenrollment.js +57 -72
- package/dist_ts/data/privatenetwork.d.ts +21 -24
- package/dist_ts/data/privatenetwork.js +39 -54
- package/dist_ts/data/runtimeassignment.d.ts +50 -34
- package/dist_ts/data/runtimeassignment.js +79 -45
- package/dist_ts/data/runtimeconfig.d.ts +21 -22
- package/dist_ts/data/runtimeconfig.js +24 -24
- package/dist_ts/data/runtimesession.d.ts +100 -62
- package/dist_ts/data/runtimesession.js +98 -79
- package/dist_ts/data/runtimeterminalreceipt.d.ts +28 -29
- package/dist_ts/data/runtimeterminalreceipt.js +42 -42
- package/dist_ts/data/secret.d.ts +18 -25
- package/dist_ts/data/secret.js +12 -52
- package/dist_ts/data/servicecredential.d.ts +14 -16
- package/dist_ts/data/servicecredential.js +17 -28
- package/dist_ts/data/serviceruntime.d.ts +7 -7
- package/dist_ts/data/serviceruntime.js +4 -4
- package/dist_ts/data/sparknodereport.d.ts +27 -14
- package/dist_ts/data/sparknodereport.js +35 -28
- package/dist_ts/data/webpush.d.ts +0 -1
- package/dist_ts/index.d.ts +2 -1
- package/dist_ts/index.js +3 -2
- package/dist_ts/platform/objectstorageretention.d.ts +21 -24
- package/dist_ts/platform/objectstorageretention.js +10 -17
- package/dist_ts/platform/storage.d.ts +1 -3
- package/dist_ts/platform/storagemigration.d.ts +0 -7
- package/dist_ts/platform/storagemigration.golden.d.ts +0 -1
- package/dist_ts/platform/storagemigration.golden.js +8 -12
- package/dist_ts/platform/storagemigration.js +6 -51
- package/dist_ts/platform/types.d.ts +2 -2
- package/dist_ts/private/canonicaljson.d.ts +9 -1
- package/dist_ts/private/canonicaljson.js +14 -2
- package/dist_ts/private/dataproperties.d.ts +62 -0
- package/dist_ts/private/dataproperties.js +117 -0
- package/dist_ts/private/networkcontract.d.ts +10 -10
- package/dist_ts/private/networkcontract.js +1 -1
- package/dist_ts/private/releaseversion.d.ts +37 -0
- package/dist_ts/private/releaseversion.js +48 -0
- package/dist_ts/private/runtimepolicy.d.ts +2 -2
- package/dist_ts/private/runtimepolicy.js +1 -1
- package/dist_ts/private/tokenlist.d.ts +9 -0
- package/dist_ts/private/tokenlist.js +23 -0
- package/dist_ts/protocol.d.ts +137 -0
- package/dist_ts/protocol.js +255 -0
- package/dist_ts/requests/admin.d.ts +8 -8
- package/dist_ts/requests/backup.d.ts +102 -112
- package/dist_ts/requests/cluster.d.ts +10 -10
- package/dist_ts/requests/clusteringress.d.ts +9 -0
- package/dist_ts/requests/clusteringress.js +1 -1
- package/dist_ts/requests/config.d.ts +3 -3
- package/dist_ts/requests/corestore.d.ts +0 -3
- package/dist_ts/requests/corestore.js +5 -9
- package/dist_ts/requests/network.d.ts +30 -30
- package/dist_ts/requests/node.d.ts +15 -28
- package/dist_ts/requests/pallet.d.ts +13 -13
- package/dist_ts/requests/runtimesession.d.ts +53 -41
- package/dist_ts/requests/secret.d.ts +4 -5
- package/dist_ts/requests/secret.js +1 -5
- package/dist_ts/runtime.corestore.d.ts +56 -74
- package/dist_ts/runtime.corestore.databaseexportpackage.d.ts +30 -36
- package/dist_ts/runtime.corestore.databaseexportpackage.golden.d.ts +11 -12
- package/dist_ts/runtime.corestore.databaseexportpackage.golden.js +54 -71
- package/dist_ts/runtime.corestore.databaseexportpackage.js +9 -25
- package/dist_ts/runtime.corestore.js +35 -135
- package/dist_ts/runtime.corestore.relay.js +2 -7
- package/dist_ts/runtime.d.ts +38 -48
- package/dist_ts/runtime.js +20 -77
- package/dist_ts/runtime.networkprojection.d.ts +4 -4
- package/dist_ts/runtime.networkprojection.js +18 -18
- package/dist_ts/runtime.workloadinit.d.ts +23 -24
- package/dist_ts/runtime.workloadinit.js +6 -13
- package/package.json +2 -2
- package/readme.md +421 -270
- package/ts/00_commitinfo_data.ts +3 -3
- package/ts/appstore/types.ts +4 -6
- package/ts/data/backup.ts +3 -38
- package/ts/data/cluster.ts +51 -34
- package/ts/data/clusteringress.ts +12 -12
- package/ts/data/clusternode.ts +204 -232
- package/ts/data/coremail.runtime.ts +4 -21
- package/ts/data/coremail.ts +3 -7
- package/ts/data/deploymentadoption.ts +46 -4
- package/ts/data/deploymentoperation.ts +16 -1
- package/ts/data/deploymentpreflight.ts +0 -2
- package/ts/data/immutableimage.ts +71 -24
- package/ts/data/index.ts +1 -1
- package/ts/data/isolatedrestore.golden.ts +5 -9
- package/ts/data/isolatedrestore.ts +339 -54
- package/ts/data/mail.ts +1 -1
- package/ts/data/networkaddressplan.ts +13 -13
- package/ts/data/networkauthority.ts +42 -46
- package/ts/data/networkcredential.ts +24 -24
- package/ts/data/networkdelivery.ts +27 -27
- package/ts/data/networklease.ts +40 -13
- package/ts/data/networknode.ts +2 -2
- package/ts/data/networkprojection.ts +119 -124
- package/ts/data/networkprotection.ts +54 -55
- package/ts/data/networkrouter.ts +14 -14
- package/ts/data/networksigning.ts +29 -32
- package/ts/data/nodecredential.ts +4 -6
- package/ts/data/nodeenrollment.ts +96 -114
- package/ts/data/privatenetwork.ts +58 -74
- package/ts/data/runtimeassignment.ts +143 -94
- package/ts/data/runtimeconfig.ts +45 -46
- package/ts/data/runtimesession.ts +185 -138
- package/ts/data/runtimeterminalreceipt.ts +72 -73
- package/ts/data/secret.ts +28 -76
- package/ts/data/servicecredential.ts +33 -43
- package/ts/data/serviceruntime.ts +11 -11
- package/ts/data/sparknodereport.ts +48 -36
- package/ts/data/webpush.ts +0 -1
- package/ts/index.ts +2 -0
- package/ts/platform/objectstorageretention.ts +40 -54
- package/ts/platform/storage.ts +1 -3
- package/ts/platform/storagemigration.golden.ts +7 -11
- package/ts/platform/storagemigration.ts +5 -55
- package/ts/platform/types.ts +2 -2
- package/ts/private/canonicaljson.ts +13 -1
- package/ts/private/dataproperties.ts +139 -0
- package/ts/private/networkcontract.ts +9 -9
- package/ts/private/releaseversion.ts +70 -0
- package/ts/private/runtimepolicy.ts +2 -2
- package/ts/private/tokenlist.ts +30 -0
- package/ts/protocol.ts +364 -0
- package/ts/requests/admin.ts +11 -11
- package/ts/requests/backup.ts +112 -117
- package/ts/requests/cluster.ts +13 -13
- package/ts/requests/clusteringress.ts +9 -0
- package/ts/requests/config.ts +3 -3
- package/ts/requests/corestore.ts +4 -16
- package/ts/requests/network.ts +40 -40
- package/ts/requests/node.ts +21 -38
- package/ts/requests/pallet.ts +17 -17
- package/ts/requests/runtimesession.ts +63 -51
- package/ts/requests/secret.ts +5 -10
- package/ts/runtime.corestore.databaseexportpackage.golden.ts +77 -95
- package/ts/runtime.corestore.databaseexportpackage.ts +51 -73
- package/ts/runtime.corestore.relay.ts +1 -10
- package/ts/runtime.corestore.ts +118 -268
- package/ts/runtime.networkprojection.ts +30 -30
- package/ts/runtime.ts +83 -158
- package/ts/runtime.workloadinit.ts +36 -48
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.d.ts +0 -902
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.d.ts +0 -35
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.js +0 -315
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.js +0 -3315
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.d.ts +0 -291
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.d.ts +0 -30
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.js +0 -408
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.js +0 -1126
- package/ts/runtime.cloudlylegacydeploymentsettlement.golden.ts +0 -421
- package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.ts +0 -510
- package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.ts +0 -2470
- package/ts/runtime.cloudlylegacydeploymentsettlement.ts +0 -6630
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { canonicalizeStrictJson, createCanonicalJsonSha256Hex, createSha256Hex, deepFreezeValue, strictCanonicalJsonRules, } from '../private/canonicaljson.js';
|
|
2
|
+
import { hasExactKeys } from '../private/dataproperties.js';
|
|
2
3
|
/** Operations carried by a short-lived, single-operation restore grant. */
|
|
3
4
|
export const isolatedRestoreGrantOperations = Object.freeze([
|
|
4
5
|
'prepare',
|
|
@@ -8,16 +9,15 @@ export const isolatedRestoreGrantOperations = Object.freeze([
|
|
|
8
9
|
'status',
|
|
9
10
|
]);
|
|
10
11
|
/**
|
|
11
|
-
*
|
|
12
|
+
* The limits signers, relays and Corestore all hold this family to.
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* The descriptor manifest travels inside a 1 MiB control request. Its 4,096
|
|
15
|
+
* object slots reserve 256 entries for config, snapshots, keys, and index
|
|
16
|
+
* segments; the remaining 3,840 slots fit 1,920 default 8 MiB pack/index
|
|
16
17
|
* pairs. The 15 GiB total envelope is therefore reachable with the default
|
|
17
18
|
* ContainerArchive packing profile instead of advertising impossible capacity.
|
|
18
19
|
*/
|
|
19
20
|
export const isolatedRestoreContractLimits = Object.freeze({
|
|
20
|
-
version: 1,
|
|
21
21
|
maximumControlJsonBytes: 1024 * 1024,
|
|
22
22
|
maximumRestoreGrantBytes: 64 * 1024,
|
|
23
23
|
maximumConfiguredStringBytes: 2048,
|
|
@@ -32,9 +32,8 @@ export const isolatedRestoreContractLimits = Object.freeze({
|
|
|
32
32
|
maximumWriteChunkBase64Characters: 699_052,
|
|
33
33
|
maximumObjectChunks: 4096,
|
|
34
34
|
});
|
|
35
|
-
/** ContainerArchive
|
|
35
|
+
/** The ContainerArchive repository paths that may be replicated into restore staging. */
|
|
36
36
|
export const isolatedRestoreRepositoryPathProfile = Object.freeze({
|
|
37
|
-
version: 1,
|
|
38
37
|
rootObject: 'config.json',
|
|
39
38
|
topLevelDirectories: Object.freeze([
|
|
40
39
|
'packs',
|
|
@@ -160,12 +159,9 @@ const readDenseArray = (valueArg, fieldNameArg, minimumLengthArg, maximumLengthA
|
|
|
160
159
|
}
|
|
161
160
|
return valueArg;
|
|
162
161
|
};
|
|
163
|
-
const assertExactKeys = (recordArg, expectedKeysArg, fieldNameArg) => {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if (actualKeys.length !== expectedKeys.length ||
|
|
167
|
-
actualKeys.some((keyArg, indexArg) => keyArg !== expectedKeys[indexArg])) {
|
|
168
|
-
fail(`${fieldNameArg} does not match its exact versioned schema`);
|
|
162
|
+
const assertExactKeys = (recordArg, expectedKeysArg, fieldNameArg, optionalKeysArg = []) => {
|
|
163
|
+
if (!hasExactKeys(recordArg, expectedKeysArg, optionalKeysArg)) {
|
|
164
|
+
fail(`${fieldNameArg} does not match its exact schema`);
|
|
169
165
|
}
|
|
170
166
|
};
|
|
171
167
|
const readString = (valueArg, fieldNameArg, maximumBytesArg) => {
|
|
@@ -560,10 +556,7 @@ export const assertIsolatedRestoreProviderRestorableResourceMappings = (mappings
|
|
|
560
556
|
};
|
|
561
557
|
export const normalizeIsolatedRestoreArchiveManifest = (valueArg) => {
|
|
562
558
|
const manifest = readRecord(valueArg, 'archiveManifest');
|
|
563
|
-
assertExactKeys(manifest, ['
|
|
564
|
-
if (manifest.version !== 1) {
|
|
565
|
-
return fail('archiveManifest.version must be 1');
|
|
566
|
-
}
|
|
559
|
+
assertExactKeys(manifest, ['backupId', 'createdAt', 'objects', 'totalSize'], 'archiveManifest');
|
|
567
560
|
const objectEntries = readDenseArray(manifest.objects, 'archiveManifest.objects', 1, isolatedRestoreContractLimits.maximumArchiveObjects);
|
|
568
561
|
const paths = new Set();
|
|
569
562
|
let calculatedTotalSize = 0;
|
|
@@ -580,7 +573,7 @@ export const normalizeIsolatedRestoreArchiveManifest = (valueArg) => {
|
|
|
580
573
|
if (!Number.isSafeInteger(calculatedTotalSize + size) ||
|
|
581
574
|
calculatedTotalSize + size >
|
|
582
575
|
isolatedRestoreContractLimits.maximumArchiveTotalBytes) {
|
|
583
|
-
return fail('archiveManifest object sizes exceed the
|
|
576
|
+
return fail('archiveManifest object sizes exceed the total-size limit');
|
|
584
577
|
}
|
|
585
578
|
calculatedTotalSize += size;
|
|
586
579
|
return {
|
|
@@ -618,7 +611,6 @@ export const normalizeIsolatedRestoreArchiveManifest = (valueArg) => {
|
|
|
618
611
|
return fail('archiveManifest.totalSize must equal the sum of object sizes');
|
|
619
612
|
}
|
|
620
613
|
return deepFreeze({
|
|
621
|
-
version: 1,
|
|
622
614
|
backupId: readScopedId(manifest.backupId, 'archiveManifest.backupId'),
|
|
623
615
|
createdAt: readSafeInteger(manifest.createdAt, 'archiveManifest.createdAt', 0),
|
|
624
616
|
objects,
|
|
@@ -628,7 +620,6 @@ export const normalizeIsolatedRestoreArchiveManifest = (valueArg) => {
|
|
|
628
620
|
export const normalizeIsolatedRestoreGrantClaims = (valueArg) => {
|
|
629
621
|
const claims = readRecord(valueArg, 'restore grant claims');
|
|
630
622
|
assertExactKeys(claims, [
|
|
631
|
-
'grantVersion',
|
|
632
623
|
'iss',
|
|
633
624
|
'aud',
|
|
634
625
|
'sub',
|
|
@@ -649,9 +640,6 @@ export const normalizeIsolatedRestoreGrantClaims = (valueArg) => {
|
|
|
649
640
|
'nbf',
|
|
650
641
|
'exp',
|
|
651
642
|
], 'restore grant claims');
|
|
652
|
-
if (claims.grantVersion !== 1) {
|
|
653
|
-
return fail('grantVersion must be 1');
|
|
654
|
-
}
|
|
655
643
|
if (typeof claims.operation !== 'string' ||
|
|
656
644
|
!isolatedRestoreGrantOperations.includes(claims.operation)) {
|
|
657
645
|
return fail('operation is unsupported');
|
|
@@ -663,7 +651,6 @@ export const normalizeIsolatedRestoreGrantClaims = (valueArg) => {
|
|
|
663
651
|
return fail('exp must be later than both iat and nbf');
|
|
664
652
|
}
|
|
665
653
|
const normalizedClaims = {
|
|
666
|
-
grantVersion: 1,
|
|
667
654
|
iss: readConfiguredString(claims.iss, 'iss'),
|
|
668
655
|
aud: readConfiguredString(claims.aud, 'aud'),
|
|
669
656
|
sub: readIdentifier(claims.sub, 'sub'),
|
|
@@ -729,7 +716,7 @@ export const normalizeIsolatedRestoreControlWriteRequest = (valueArg) => {
|
|
|
729
716
|
const contentsBase64 = assertCanonicalBase64(request.contentsBase64, 'write request.contentsBase64');
|
|
730
717
|
const contents = decodeCanonicalBase64(contentsBase64, 'write request.contentsBase64');
|
|
731
718
|
if (contents.byteLength > isolatedRestoreContractLimits.maximumWriteChunkBytes) {
|
|
732
|
-
return fail('write request decoded chunk exceeds the
|
|
719
|
+
return fail('write request decoded chunk exceeds the chunk limit');
|
|
733
720
|
}
|
|
734
721
|
if (size === 0) {
|
|
735
722
|
if (offset !== 0 || contents.byteLength !== 0) {
|
|
@@ -763,6 +750,169 @@ export const normalizeIsolatedRestoreControlStatusRequest = (valueArg) => {
|
|
|
763
750
|
assertExactKeys(request, ['restoreGrant'], 'status request');
|
|
764
751
|
return assertControlJsonLimit({ restoreGrant: readCompactRestoreGrant(request.restoreGrant) }, 'status request');
|
|
765
752
|
};
|
|
753
|
+
/**
|
|
754
|
+
* Reads one node-scoped control request, judging the control with its own normalizer.
|
|
755
|
+
*
|
|
756
|
+
* The caller passes the normalizer of the operation it serves, so there is one reader for the
|
|
757
|
+
* envelope and one judge per control body instead of five near-identical readers.
|
|
758
|
+
*/
|
|
759
|
+
export const normalizeIsolatedRestoreNodeControl = (valueArg, normalizeControlArg) => {
|
|
760
|
+
const request = readRecord(valueArg, 'node control request');
|
|
761
|
+
assertExactKeys(request, ['nodeId', 'control'], 'node control request');
|
|
762
|
+
return Object.freeze({
|
|
763
|
+
nodeId: readIdentifier(request.nodeId, 'node control request.nodeId'),
|
|
764
|
+
control: normalizeControlArg(request.control),
|
|
765
|
+
});
|
|
766
|
+
};
|
|
767
|
+
/**
|
|
768
|
+
* Every reason a relay answers instead of carrying a control to the node.
|
|
769
|
+
*
|
|
770
|
+
* The relay writes `<name>: <reason>` and the caller matches the name. Only the first two are the
|
|
771
|
+
* relay's own statement: they say the control never reached Corestore, which is the one thing
|
|
772
|
+
* Corestore cannot say about itself. Everything Corestore answered — a refused grant, a refused
|
|
773
|
+
* body, a revision conflict, an unsupported mapping, a restore it does not hold — arrives under
|
|
774
|
+
* `restore-node-refused` with Corestore's own reason behind it, because inventing a second
|
|
775
|
+
* vocabulary for those would be a second answer to what happened.
|
|
776
|
+
*/
|
|
777
|
+
export const isolatedRestoreNodeControlRefusals = Object.freeze([
|
|
778
|
+
/** This relay carries no Corestore endpoint for that node of its cluster. */
|
|
779
|
+
'restore-node-not-carried',
|
|
780
|
+
/** The node's Corestore did not answer, so nothing of the control was applied. */
|
|
781
|
+
'restore-node-unreachable',
|
|
782
|
+
/** Corestore answered and refused; its own reason follows the name. */
|
|
783
|
+
'restore-node-refused',
|
|
784
|
+
]);
|
|
785
|
+
/**
|
|
786
|
+
* What a node states about one isolated restore it holds, in Corestore's own words.
|
|
787
|
+
*
|
|
788
|
+
* These are the staging states Corestore keeps, taken verbatim: the node is the only party that
|
|
789
|
+
* knows them, and the control plane composes its own record status out of what the node states
|
|
790
|
+
* rather than asking the node to speak the control plane's vocabulary.
|
|
791
|
+
*/
|
|
792
|
+
export const isolatedRestoreProgressStatuses = Object.freeze([
|
|
793
|
+
/** The plan is staged: the manifest is known and its objects may be written. */
|
|
794
|
+
'prepared',
|
|
795
|
+
/** The staged objects are being restored into the scratch namespace. */
|
|
796
|
+
'executing',
|
|
797
|
+
/** The restore stopped on an error; the staging tree and its state stay for cleanup. */
|
|
798
|
+
'failed',
|
|
799
|
+
/** Every mapping of the plan was restored. */
|
|
800
|
+
'executed',
|
|
801
|
+
/** The staging tree is gone; nothing of this restore is left on the node. */
|
|
802
|
+
'cleaned',
|
|
803
|
+
]);
|
|
804
|
+
const isolatedRestoreProgressKeys = [
|
|
805
|
+
'nodeId',
|
|
806
|
+
'restoreId',
|
|
807
|
+
'stagingArchiveId',
|
|
808
|
+
'status',
|
|
809
|
+
'revision',
|
|
810
|
+
'lastFence',
|
|
811
|
+
'expectedObjects',
|
|
812
|
+
'receivedObjects',
|
|
813
|
+
'completedMappings',
|
|
814
|
+
'totalMappings',
|
|
815
|
+
'preparedAt',
|
|
816
|
+
'updatedAt',
|
|
817
|
+
];
|
|
818
|
+
const optionalIsolatedRestoreProgressKeys = ['executedAt', 'stagedObject'];
|
|
819
|
+
const normalizeIsolatedRestoreObjectProgress = (valueArg) => {
|
|
820
|
+
const progress = readRecord(valueArg, 'restore progress.stagedObject');
|
|
821
|
+
assertExactKeys(progress, ['path', 'nextOffset', 'completed'], 'restore progress.stagedObject');
|
|
822
|
+
if (typeof progress.completed !== 'boolean') {
|
|
823
|
+
return fail('restore progress.stagedObject.completed must be a boolean');
|
|
824
|
+
}
|
|
825
|
+
return {
|
|
826
|
+
path: readRepositoryPath(progress.path, 'restore progress.stagedObject.path'),
|
|
827
|
+
nextOffset: readSafeInteger(progress.nextOffset, 'restore progress.stagedObject.nextOffset', 0, isolatedRestoreContractLimits.maximumArchiveObjectBytes),
|
|
828
|
+
completed: progress.completed,
|
|
829
|
+
};
|
|
830
|
+
};
|
|
831
|
+
/**
|
|
832
|
+
* Reads one node's progress and refuses everything that is not exactly it.
|
|
833
|
+
*
|
|
834
|
+
* The counts are read against each other rather than one by one: a node cannot have received more
|
|
835
|
+
* objects than its manifest lists or completed more mappings than its plan has, and a restore it
|
|
836
|
+
* never prepared has no progress at all — a node that does not hold the restore refuses the call
|
|
837
|
+
* (`restore-node-refused`) instead of answering a progress with revision 0. `revision` and
|
|
838
|
+
* `lastFence` are read from 1 for the same reason: a committed state carries the revision it was
|
|
839
|
+
* committed as and the fence of the lease that committed it, so neither is ever 0.
|
|
840
|
+
*
|
|
841
|
+
* The states a run passes through are read against the archive as well: `executing` and `executed`
|
|
842
|
+
* hold the whole archive, and `executed` completed every mapping and says when.
|
|
843
|
+
*/
|
|
844
|
+
export const normalizeIsolatedRestoreProgress = (valueArg) => {
|
|
845
|
+
const progress = readRecord(valueArg, 'restore progress');
|
|
846
|
+
assertExactKeys(progress, isolatedRestoreProgressKeys, 'restore progress', optionalIsolatedRestoreProgressKeys);
|
|
847
|
+
if (typeof progress.status !== 'string' ||
|
|
848
|
+
!isolatedRestoreProgressStatuses.includes(progress.status)) {
|
|
849
|
+
return fail('restore progress.status is unsupported');
|
|
850
|
+
}
|
|
851
|
+
const expectedObjects = readSafeInteger(progress.expectedObjects, 'restore progress.expectedObjects', 1, isolatedRestoreContractLimits.maximumArchiveObjects);
|
|
852
|
+
const totalMappings = readSafeInteger(progress.totalMappings, 'restore progress.totalMappings', 1, isolatedRestoreContractLimits.maximumResourceMappings);
|
|
853
|
+
const preparedAt = readSafeInteger(progress.preparedAt, 'restore progress.preparedAt', 1);
|
|
854
|
+
const normalized = {
|
|
855
|
+
nodeId: readIdentifier(progress.nodeId, 'restore progress.nodeId'),
|
|
856
|
+
restoreId: readScopedId(progress.restoreId, 'restore progress.restoreId'),
|
|
857
|
+
stagingArchiveId: readScopedId(progress.stagingArchiveId, 'restore progress.stagingArchiveId'),
|
|
858
|
+
status: progress.status,
|
|
859
|
+
revision: readSafeInteger(progress.revision, 'restore progress.revision', 1),
|
|
860
|
+
lastFence: readSafeInteger(progress.lastFence, 'restore progress.lastFence', 1),
|
|
861
|
+
expectedObjects,
|
|
862
|
+
receivedObjects: readSafeInteger(progress.receivedObjects, 'restore progress.receivedObjects', 0, expectedObjects),
|
|
863
|
+
completedMappings: readSafeInteger(progress.completedMappings, 'restore progress.completedMappings', 0, totalMappings),
|
|
864
|
+
totalMappings,
|
|
865
|
+
preparedAt,
|
|
866
|
+
updatedAt: readSafeInteger(progress.updatedAt, 'restore progress.updatedAt', preparedAt),
|
|
867
|
+
...(Object.hasOwn(progress, 'executedAt')
|
|
868
|
+
? {
|
|
869
|
+
executedAt: readSafeInteger(progress.executedAt, 'restore progress.executedAt', preparedAt),
|
|
870
|
+
}
|
|
871
|
+
: {}),
|
|
872
|
+
...(Object.hasOwn(progress, 'stagedObject')
|
|
873
|
+
? { stagedObject: normalizeIsolatedRestoreObjectProgress(progress.stagedObject) }
|
|
874
|
+
: {}),
|
|
875
|
+
};
|
|
876
|
+
// Corestore asserts that every manifest object was received before it commits `executing`, and
|
|
877
|
+
// refuses archive writes from that state on, so a run that reached either state holds the whole
|
|
878
|
+
// archive; `executedAt` is written by the same commit that sets `executed`.
|
|
879
|
+
if ((normalized.status === 'executing' || normalized.status === 'executed') &&
|
|
880
|
+
normalized.receivedObjects !== expectedObjects) {
|
|
881
|
+
return fail(`restore progress.status ${normalized.status} requires every archive object to be received`);
|
|
882
|
+
}
|
|
883
|
+
if (normalized.status === 'executed') {
|
|
884
|
+
if (normalized.completedMappings !== totalMappings) {
|
|
885
|
+
return fail('restore progress.status executed requires every mapping to be completed');
|
|
886
|
+
}
|
|
887
|
+
if (normalized.executedAt === undefined) {
|
|
888
|
+
return fail('restore progress.status executed requires an executedAt');
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
return deepFreeze(normalized);
|
|
892
|
+
};
|
|
893
|
+
/**
|
|
894
|
+
* The progress a node stated, bound to the call it answers.
|
|
895
|
+
*
|
|
896
|
+
* The control body carries no node and no restore id — the signed grant is the only authority for
|
|
897
|
+
* the restore, and the relay routes on `nodeId` — so the caller is the one party holding both
|
|
898
|
+
* facts, and this is where the answer is tied back to them. Without it a relay could answer with
|
|
899
|
+
* another node's progress, or with another restore's, and the fields alone would look perfectly
|
|
900
|
+
* canonical.
|
|
901
|
+
*/
|
|
902
|
+
export const bindIsolatedRestoreProgressToNode = (progressArg, expectationArg) => {
|
|
903
|
+
const expectation = readRecord(expectationArg, 'restore progress expectation');
|
|
904
|
+
assertExactKeys(expectation, ['nodeId', 'restoreId'], 'restore progress expectation');
|
|
905
|
+
const nodeId = readIdentifier(expectation.nodeId, 'restore progress expectation.nodeId');
|
|
906
|
+
const restoreId = readScopedId(expectation.restoreId, 'restore progress expectation.restoreId');
|
|
907
|
+
const progress = normalizeIsolatedRestoreProgress(progressArg);
|
|
908
|
+
if (progress.nodeId !== nodeId) {
|
|
909
|
+
return fail('restore progress must describe the node the control was carried to');
|
|
910
|
+
}
|
|
911
|
+
if (progress.restoreId !== restoreId) {
|
|
912
|
+
return fail('restore progress must describe the restore its grant names');
|
|
913
|
+
}
|
|
914
|
+
return progress;
|
|
915
|
+
};
|
|
766
916
|
const canonicalizeJson = (valueArg) => {
|
|
767
917
|
return canonicalizeStrictJson(valueArg, fail);
|
|
768
918
|
};
|
|
@@ -778,7 +928,6 @@ export const canonicalizeIsolatedRestoreGrantClaims = (valueArg) => {
|
|
|
778
928
|
export const normalizeIsolatedRestoreAuthorityProjection = (valueArg) => {
|
|
779
929
|
const authority = readRecord(valueArg, 'restore authority projection');
|
|
780
930
|
assertExactKeys(authority, [
|
|
781
|
-
'version',
|
|
782
931
|
'iss',
|
|
783
932
|
'aud',
|
|
784
933
|
'sub',
|
|
@@ -794,11 +943,7 @@ export const normalizeIsolatedRestoreAuthorityProjection = (valueArg) => {
|
|
|
794
943
|
'resourceMappingsSha256',
|
|
795
944
|
'archiveManifestSha256',
|
|
796
945
|
], 'restore authority projection');
|
|
797
|
-
if (authority.version !== 1) {
|
|
798
|
-
return fail('restore authority projection.version must be 1');
|
|
799
|
-
}
|
|
800
946
|
const normalized = {
|
|
801
|
-
version: 1,
|
|
802
947
|
iss: readConfiguredString(authority.iss, 'restore authority projection.iss'),
|
|
803
948
|
aud: readConfiguredString(authority.aud, 'restore authority projection.aud'),
|
|
804
949
|
sub: readIdentifier(authority.sub, 'restore authority projection.sub'),
|
|
@@ -825,7 +970,6 @@ export const normalizeIsolatedRestoreAuthorityProjection = (valueArg) => {
|
|
|
825
970
|
export const createIsolatedRestoreAuthorityProjection = (claimsArg) => {
|
|
826
971
|
const claims = normalizeIsolatedRestoreGrantClaims(claimsArg);
|
|
827
972
|
return normalizeIsolatedRestoreAuthorityProjection({
|
|
828
|
-
version: 1,
|
|
829
973
|
iss: claims.iss,
|
|
830
974
|
aud: claims.aud,
|
|
831
975
|
sub: claims.sub,
|
|
@@ -1058,7 +1202,6 @@ export const decodeIsolatedRestoreBoundWriteChunk = (bindingArg) => {
|
|
|
1058
1202
|
};
|
|
1059
1203
|
const createDurableChunkReceiptPayload = (receiptArg) => {
|
|
1060
1204
|
return {
|
|
1061
|
-
version: 1,
|
|
1062
1205
|
authority: receiptArg.authority,
|
|
1063
1206
|
authoritySha256: receiptArg.authoritySha256,
|
|
1064
1207
|
descriptor: receiptArg.descriptor,
|
|
@@ -1073,7 +1216,6 @@ const createDurableChunkReceiptSha256 = async (payloadArg) => {
|
|
|
1073
1216
|
export const normalizeIsolatedRestoreDurableChunkReceipt = (valueArg) => {
|
|
1074
1217
|
const receipt = readRecord(valueArg, 'durable chunk receipt');
|
|
1075
1218
|
assertExactKeys(receipt, [
|
|
1076
|
-
'version',
|
|
1077
1219
|
'authority',
|
|
1078
1220
|
'authoritySha256',
|
|
1079
1221
|
'descriptor',
|
|
@@ -1082,9 +1224,6 @@ export const normalizeIsolatedRestoreDurableChunkReceipt = (valueArg) => {
|
|
|
1082
1224
|
'chunkSha256',
|
|
1083
1225
|
'receiptSha256',
|
|
1084
1226
|
], 'durable chunk receipt');
|
|
1085
|
-
if (receipt.version !== 1) {
|
|
1086
|
-
return fail('durable chunk receipt.version must be 1');
|
|
1087
|
-
}
|
|
1088
1227
|
const authority = normalizeIsolatedRestoreAuthorityProjection(receipt.authority);
|
|
1089
1228
|
const descriptorRecord = readRecord(receipt.descriptor, 'durable chunk receipt.descriptor');
|
|
1090
1229
|
assertExactKeys(descriptorRecord, ['path', 'size', 'sha256'], 'durable chunk receipt.descriptor');
|
|
@@ -1106,7 +1245,6 @@ export const normalizeIsolatedRestoreDurableChunkReceipt = (valueArg) => {
|
|
|
1106
1245
|
return fail('durable chunk receipt range does not fit its immutable descriptor');
|
|
1107
1246
|
}
|
|
1108
1247
|
return deepFreeze({
|
|
1109
|
-
version: 1,
|
|
1110
1248
|
authority,
|
|
1111
1249
|
authoritySha256: readSha256(receipt.authoritySha256, 'durable chunk receipt.authoritySha256'),
|
|
1112
1250
|
descriptor,
|
|
@@ -1139,7 +1277,6 @@ export const verifyIsolatedRestoreDurableChunkReceipt = async (valueArg) => {
|
|
|
1139
1277
|
export const createIsolatedRestoreDurableChunkReceipt = async (bindingArg) => {
|
|
1140
1278
|
const binding = requireBoundWriteRequest(bindingArg);
|
|
1141
1279
|
const payload = {
|
|
1142
|
-
version: 1,
|
|
1143
1280
|
authority: binding.authority,
|
|
1144
1281
|
authoritySha256: binding.authoritySha256,
|
|
1145
1282
|
descriptor: binding.descriptor,
|
|
@@ -1211,7 +1348,6 @@ export const verifyIsolatedRestoreDurableCompletedObject = async (receiptsArg, c
|
|
|
1211
1348
|
}
|
|
1212
1349
|
const receiptSetSha256 = await createCanonicalJsonSha256(canonicalizeJson(receipts));
|
|
1213
1350
|
const proofPayload = {
|
|
1214
|
-
version: 1,
|
|
1215
1351
|
authority,
|
|
1216
1352
|
authoritySha256,
|
|
1217
1353
|
descriptor,
|
|
@@ -1287,4 +1423,4 @@ export const assertIsolatedRestoreCompletedObject = (completedArg) => {
|
|
|
1287
1423
|
}
|
|
1288
1424
|
return completedArg;
|
|
1289
1425
|
};
|
|
1290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWRyZXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9pc29sYXRlZHJlc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLGVBQWUsRUFDZix3QkFBd0IsR0FDekIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQywyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRCxTQUFTO0lBQ1QsY0FBYztJQUNkLFNBQVM7SUFDVCxTQUFTO0lBQ1QsUUFBUTtDQUNBLENBQUMsQ0FBQztBQUtaOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RCxPQUFPLEVBQUUsQ0FBVTtJQUNuQix1QkFBdUIsRUFBRSxJQUFJLEdBQUcsSUFBSTtJQUNwQyx3QkFBd0IsRUFBRSxFQUFFLEdBQUcsSUFBSTtJQUNuQyw0QkFBNEIsRUFBRSxJQUFJO0lBQ2xDLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsdUJBQXVCLEVBQUUsR0FBRztJQUM1QixxQkFBcUIsRUFBRSxJQUFJO0lBQzNCLDhCQUE4QixFQUFFLEdBQUc7SUFDbkMsc0NBQXNDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ3ZELHlCQUF5QixFQUFFLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUMzQyx3QkFBd0IsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJO0lBQ2pELHNCQUFzQixFQUFFLEdBQUcsR0FBRyxJQUFJO0lBQ2xDLGlDQUFpQyxFQUFFLE9BQU87SUFDMUMsbUJBQW1CLEVBQUUsSUFBSTtDQUMxQixDQUFDLENBQUM7QUFFSCw2RUFBNkU7QUFDN0UsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcs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
|
|
1426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWRyZXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9pc29sYXRlZHJlc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLGVBQWUsRUFDZix3QkFBd0IsR0FDekIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUQsU0FBUztJQUNULGNBQWM7SUFDZCxTQUFTO0lBQ1QsU0FBUztJQUNULFFBQVE7Q0FDQSxDQUFDLENBQUM7QUFLWjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDekQsdUJBQXVCLEVBQUUsSUFBSSxHQUFHLElBQUk7SUFDcEMsd0JBQXdCLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDbkMsNEJBQTRCLEVBQUUsSUFBSTtJQUNsQyxnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLHVCQUF1QixFQUFFLEdBQUc7SUFDNUIscUJBQXFCLEVBQUUsSUFBSTtJQUMzQiw4QkFBOEIsRUFBRSxHQUFHO0lBQ25DLHNDQUFzQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUN2RCx5QkFBeUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUk7SUFDM0Msd0JBQXdCLEVBQUUsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSTtJQUNqRCxzQkFBc0IsRUFBRSxHQUFHLEdBQUcsSUFBSTtJQUNsQyxpQ0FBaUMsRUFBRSxPQUFPO0lBQzFDLG1CQUFtQixFQUFFLElBQUk7Q0FDMUIsQ0FBQyxDQUFDO0FBRUgseUZBQXlGO0FBQ3pGLE1BQU0s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
|