@serve.zone/interfaces 31.8.0 → 32.0.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/.smartconfig.json +1 -0
- package/changelog.md +512 -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/clusterruntime.d.ts +39 -0
- package/dist_ts/data/clusterruntime.js +11 -0
- 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 +5 -1
- package/dist_ts/data/index.js +5 -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 +78 -0
- package/dist_ts/data/networkaddressplan.js +114 -0
- package/dist_ts/data/networkauthority.d.ts +20 -22
- package/dist_ts/data/networkauthority.js +29 -43
- 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 +37 -0
- package/dist_ts/data/networknode.js +6 -0
- 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 +37 -100
- 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 +128 -0
- package/dist_ts/data/serviceruntime.js +92 -0
- 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 +6 -18
- 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 +14 -10
- package/dist_ts/private/networkcontract.js +15 -1
- package/dist_ts/private/producercontract.d.ts +11 -0
- package/dist_ts/private/producercontract.js +21 -0
- package/dist_ts/private/releaseversion.d.ts +37 -0
- package/dist_ts/private/releaseversion.js +48 -0
- package/dist_ts/private/runtimepolicy.d.ts +31 -0
- package/dist_ts/private/runtimepolicy.js +90 -0
- 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 +47 -10
- package/dist_ts/requests/cluster.js +1 -1
- 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 +87 -31
- 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/requests/service.d.ts +60 -0
- 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 +540 -269
- 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/clusterruntime.ts +45 -0
- 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 +5 -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 +175 -0
- package/ts/data/networkauthority.ts +45 -61
- 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 +37 -0
- 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 +62 -122
- 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 +208 -0
- 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 +36 -55
- 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 +23 -9
- package/ts/private/producercontract.ts +19 -0
- package/ts/private/releaseversion.ts +70 -0
- package/ts/private/runtimepolicy.ts +105 -0
- 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 +58 -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 +90 -41
- 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/requests/service.ts +81 -0
- 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,10 +1,10 @@
|
|
|
1
1
|
import * as plugins from './plugins.runtime.js';
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
7
|
-
|
|
2
|
+
import type { IRuntimeAuthorityReference, IRuntimeController } from './data/runtimeassignment.js';
|
|
3
|
+
import type { IRuntimeNetworkProjection } from './data/networkprojection.js';
|
|
4
|
+
import { snapshotRuntimeNetworkNodeScope, snapshotRuntimeNetworkProjection, validateRuntimeNetworkProjection } from './data/networkprojection.js';
|
|
5
|
+
import type { IRuntimeNetworkSigningAuthority, ISignedRuntimeNetworkProjection } from './data/networksigning.js';
|
|
6
|
+
import { computeRuntimeNetworkSigningAuthorityDigest, runtimeNetworkSigningContract,
|
|
7
|
+
snapshotRuntimeNetworkSigningAuthority, snapshotSignedRuntimeNetworkProjection } from './data/networksigning.js';
|
|
8
8
|
import type { IRuntimeNetworkDnsLeaseRenewal, ISignedRuntimeNetworkDnsLeaseRenewal } from './data/networklease.js';
|
|
9
9
|
import { runtimeNetworkDnsLeaseRenewalContract, snapshotRuntimeNetworkDnsLeaseRenewal,
|
|
10
10
|
snapshotSignedRuntimeNetworkDnsLeaseRenewal, validateRuntimeNetworkDnsLeaseRenewal } from './data/networklease.js';
|
|
@@ -12,7 +12,7 @@ import { captureNetwork, failNetwork, networkCanonical, networkEqual, networkRef
|
|
|
12
12
|
networkSameScope, requireNetwork } from './private/networkcontract.js';
|
|
13
13
|
|
|
14
14
|
/** The private KeyObject is process-local. Persist only through the controller's encrypted secret store. */
|
|
15
|
-
export const
|
|
15
|
+
export const createRuntimeNetworkSigningKey = (): { publicKey: string; privateKey: plugins.crypto.KeyObject } => {
|
|
16
16
|
const pair = plugins.crypto.generateKeyPairSync('ed25519');
|
|
17
17
|
const jwk = pair.publicKey.export({ format: 'jwk' });
|
|
18
18
|
requireNetwork(jwk.kty === 'OKP' && jwk.crv === 'Ed25519' && typeof jwk.x === 'string');
|
|
@@ -21,28 +21,28 @@ export const createRuntimeNetworkSigningKeyV1 = (): { publicKey: string; private
|
|
|
21
21
|
|
|
22
22
|
/** What every signed network statement carries besides its content. */
|
|
23
23
|
interface IAuthoritySignature {
|
|
24
|
-
authority:
|
|
24
|
+
authority: IRuntimeAuthorityReference;
|
|
25
25
|
signature: string;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const projectionEnvelope = (authority:
|
|
29
|
-
({ domain:
|
|
30
|
-
const renewalEnvelope = (authority:
|
|
28
|
+
const projectionEnvelope = (authority: IRuntimeAuthorityReference, projection: IRuntimeNetworkProjection) =>
|
|
29
|
+
({ domain: runtimeNetworkSigningContract.signatureDomain, authority, projection });
|
|
30
|
+
const renewalEnvelope = (authority: IRuntimeAuthorityReference, renewal: IRuntimeNetworkDnsLeaseRenewal) =>
|
|
31
31
|
({ domain: runtimeNetworkDnsLeaseRenewalContract.signatureDomain, authority, renewal });
|
|
32
32
|
const envelopeBytes = (envelope: object): Uint8Array => new TextEncoder().encode(networkCanonical(envelope));
|
|
33
33
|
|
|
34
34
|
/** A revoked revision has no key; any other must be intact and belong to the controller that owns the content. */
|
|
35
|
-
const liveKeyOf = async (authority:
|
|
35
|
+
const liveKeyOf = async (authority: IRuntimeNetworkSigningAuthority, contentController: IRuntimeController): Promise<string> => {
|
|
36
36
|
const { publicKey } = authority;
|
|
37
37
|
requireNetwork(publicKey !== null && networkEqual(authority.controller, contentController)
|
|
38
|
-
&& authority.digest === await
|
|
38
|
+
&& authority.digest === await computeRuntimeNetworkSigningAuthorityDigest(authority));
|
|
39
39
|
return publicKey;
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
/** Sign as the authority's revision, and only with the private half of its live key. */
|
|
43
43
|
const signAs = async (
|
|
44
|
-
authority:
|
|
45
|
-
envelopeOf: (reference:
|
|
44
|
+
authority: IRuntimeNetworkSigningAuthority, privateKey: plugins.crypto.KeyObject, contentController: IRuntimeController,
|
|
45
|
+
envelopeOf: (reference: IRuntimeAuthorityReference) => object,
|
|
46
46
|
): Promise<IAuthoritySignature> => {
|
|
47
47
|
requireNetwork(privateKey instanceof plugins.crypto.KeyObject && privateKey.type === 'private' && privateKey.asymmetricKeyType === 'ed25519');
|
|
48
48
|
const derived = plugins.crypto.createPublicKey(privateKey).export({ format: 'jwk' });
|
|
@@ -54,7 +54,7 @@ const signAs = async (
|
|
|
54
54
|
|
|
55
55
|
/** The receiver's own trusted revision decides; the envelope only names which revision it claims. */
|
|
56
56
|
const requireSignedBy = async (
|
|
57
|
-
trusted:
|
|
57
|
+
trusted: IRuntimeNetworkSigningAuthority, signed: IAuthoritySignature, contentController: IRuntimeController, envelope: object,
|
|
58
58
|
): Promise<void> => {
|
|
59
59
|
requireNetwork(networkEqual(signed.authority, networkReferenceOf(trusted)));
|
|
60
60
|
const key = plugins.crypto.createPublicKey({ format: 'jwk', key: { kty: 'OKP', crv: 'Ed25519',
|
|
@@ -63,14 +63,14 @@ const requireSignedBy = async (
|
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
/** Sign only validated complete state and a matching dedicated private key. */
|
|
66
|
-
export const
|
|
66
|
+
export const signRuntimeNetworkProjection = async (
|
|
67
67
|
projectionValue: unknown, authorityValue: unknown, privateKey: plugins.crypto.KeyObject,
|
|
68
|
-
): Promise<
|
|
68
|
+
): Promise<ISignedRuntimeNetworkProjection> => {
|
|
69
69
|
try {
|
|
70
|
-
const input =
|
|
71
|
-
const projection = await
|
|
70
|
+
const input = snapshotRuntimeNetworkProjection(projectionValue), authority = snapshotRuntimeNetworkSigningAuthority(authorityValue);
|
|
71
|
+
const projection = await validateRuntimeNetworkProjection(input);
|
|
72
72
|
const signed = await signAs(authority, privateKey, projection.controller, reference => projectionEnvelope(reference, projection));
|
|
73
|
-
return {
|
|
73
|
+
return { authority: signed.authority, projection, signature: signed.signature };
|
|
74
74
|
} catch { return failNetwork(); }
|
|
75
75
|
};
|
|
76
76
|
|
|
@@ -79,16 +79,16 @@ export const signRuntimeNetworkProjectionV1 = async (
|
|
|
79
79
|
* This verifies content/scope/signature only. The owner still performs atomic revision
|
|
80
80
|
* admission, live-session fencing, allocation barriers and conservative DNS time checks.
|
|
81
81
|
*/
|
|
82
|
-
export const
|
|
82
|
+
export const verifyRuntimeNetworkProjection = async (
|
|
83
83
|
value: unknown, trustedAuthorityValue: unknown, trustedScopeValue: unknown,
|
|
84
|
-
): Promise<
|
|
84
|
+
): Promise<ISignedRuntimeNetworkProjection> => {
|
|
85
85
|
try {
|
|
86
|
-
const signed =
|
|
87
|
-
const authority =
|
|
88
|
-
const trusted =
|
|
86
|
+
const signed = snapshotSignedRuntimeNetworkProjection(value);
|
|
87
|
+
const authority = snapshotRuntimeNetworkSigningAuthority(trustedAuthorityValue);
|
|
88
|
+
const trusted = snapshotRuntimeNetworkNodeScope(trustedScopeValue);
|
|
89
89
|
requireNetwork(networkSameScope(signed.projection, trusted));
|
|
90
90
|
await requireSignedBy(authority, signed, signed.projection.controller, projectionEnvelope(signed.authority, signed.projection));
|
|
91
|
-
await
|
|
91
|
+
await validateRuntimeNetworkProjection(signed.projection);
|
|
92
92
|
return signed;
|
|
93
93
|
} catch { return failNetwork(); }
|
|
94
94
|
};
|
|
@@ -98,7 +98,7 @@ export const signRuntimeNetworkDnsLeaseRenewal = async (
|
|
|
98
98
|
renewalValue: unknown, authorityValue: unknown, privateKey: plugins.crypto.KeyObject,
|
|
99
99
|
): Promise<ISignedRuntimeNetworkDnsLeaseRenewal> => {
|
|
100
100
|
try {
|
|
101
|
-
const input = snapshotRuntimeNetworkDnsLeaseRenewal(renewalValue), authority =
|
|
101
|
+
const input = snapshotRuntimeNetworkDnsLeaseRenewal(renewalValue), authority = snapshotRuntimeNetworkSigningAuthority(authorityValue);
|
|
102
102
|
const renewal = await validateRuntimeNetworkDnsLeaseRenewal(input);
|
|
103
103
|
const signed = await signAs(authority, privateKey, renewal.controller, reference => renewalEnvelope(reference, renewal));
|
|
104
104
|
return { authority: signed.authority, renewal, signature: signed.signature };
|
|
@@ -120,8 +120,8 @@ export const verifyRuntimeNetworkDnsLeaseRenewal = async (
|
|
|
120
120
|
): Promise<ISignedRuntimeNetworkDnsLeaseRenewal> => {
|
|
121
121
|
try {
|
|
122
122
|
const signed = snapshotSignedRuntimeNetworkDnsLeaseRenewal(value);
|
|
123
|
-
const authority =
|
|
124
|
-
const trusted =
|
|
123
|
+
const authority = snapshotRuntimeNetworkSigningAuthority(trustedAuthorityValue);
|
|
124
|
+
const trusted = snapshotRuntimeNetworkNodeScope(trustedScopeValue);
|
|
125
125
|
const projectionAuthority = networkReference(captureNetwork(projectionAuthorityValue));
|
|
126
126
|
requireNetwork(networkSameScope(signed.renewal, trusted) && networkEqual(signed.authority, projectionAuthority));
|
|
127
127
|
await requireSignedBy(authority, signed, signed.renewal.controller, renewalEnvelope(signed.authority, signed.renewal));
|