@serve.zone/interfaces 32.48.0 → 32.50.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 (39) hide show
  1. package/changelog.md +67 -0
  2. package/dist_ts/00_commitinfo_data.js +1 -1
  3. package/dist_ts/appstore/catalog.d.ts +300 -0
  4. package/dist_ts/appstore/catalog.js +544 -0
  5. package/dist_ts/appstore/index.d.ts +2 -0
  6. package/dist_ts/appstore/index.js +3 -1
  7. package/dist_ts/appstore/types.d.ts +9 -0
  8. package/dist_ts/appstore/types.js +1 -1
  9. package/dist_ts/appstore/versionconfig.d.ts +21 -0
  10. package/dist_ts/appstore/versionconfig.js +685 -0
  11. package/dist_ts/data/index.d.ts +1 -0
  12. package/dist_ts/data/index.js +2 -1
  13. package/dist_ts/data/networkapplication.d.ts +84 -0
  14. package/dist_ts/data/networkapplication.js +128 -0
  15. package/dist_ts/data/networkprojection.d.ts +5 -3
  16. package/dist_ts/data/networkprojection.js +6 -4
  17. package/dist_ts/private/keylist.d.ts +5 -0
  18. package/dist_ts/private/keylist.js +2 -0
  19. package/dist_ts/requests/appstore.d.ts +30 -1
  20. package/dist_ts/requests/runtimesession.d.ts +11 -0
  21. package/dist_ts/runtime.appstorecatalog.d.ts +46 -0
  22. package/dist_ts/runtime.appstorecatalog.js +142 -0
  23. package/dist_ts/runtime.d.ts +1 -0
  24. package/dist_ts/runtime.js +2 -1
  25. package/package.json +1 -1
  26. package/readme.md +127 -4
  27. package/ts/00_commitinfo_data.ts +1 -1
  28. package/ts/appstore/catalog.ts +851 -0
  29. package/ts/appstore/index.ts +2 -0
  30. package/ts/appstore/types.ts +9 -0
  31. package/ts/appstore/versionconfig.ts +803 -0
  32. package/ts/data/index.ts +1 -0
  33. package/ts/data/networkapplication.ts +188 -0
  34. package/ts/data/networkprojection.ts +5 -3
  35. package/ts/private/keylist.ts +6 -0
  36. package/ts/requests/appstore.ts +38 -0
  37. package/ts/requests/runtimesession.ts +14 -0
  38. package/ts/runtime.appstorecatalog.ts +195 -0
  39. package/ts/runtime.ts +1 -0
@@ -4,6 +4,7 @@ import type * as binding from '../data/noderuntimebinding.js';
4
4
  import type * as terminal from '../data/runtimeterminalreceipt.js';
5
5
  import type * as network from '../data/networkdelivery.js';
6
6
  import type * as protection from '../data/networkprotection.js';
7
+ import type * as application from '../data/networkapplication.js';
7
8
  import type * as credential from '../data/networkcredential.js';
8
9
  import type * as assignmentSecret from '../runtime.assignmentsecret.js';
9
10
  import type * as fleet from '../data/fleetcutover.js';
@@ -25,6 +26,16 @@ export interface IReq_Pallet_Controller_ReportRuntimeNetworkProtection extends p
25
26
  request: protection.IReportRuntimeNetworkProtectionRequest;
26
27
  response: protection.IReportRuntimeNetworkProtectionResponse;
27
28
  }
29
+ /**
30
+ * Current authenticated peer reports its durable joined application receipt: the projection that
31
+ * bounds its packet authority. The controller passes it as `appliedPrevious` only while it names
32
+ * the exact head; an admission ACK never stands in for it.
33
+ */
34
+ export interface IReq_Pallet_Controller_ReportRuntimeNetworkProjectionApplication extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Pallet_Controller_ReportRuntimeNetworkProjectionApplication> {
35
+ method: 'reportRuntimeNetworkProjectionApplication';
36
+ request: application.IReportRuntimeNetworkProjectionApplicationRequest;
37
+ response: application.IReportRuntimeNetworkProjectionApplicationResponse;
38
+ }
28
39
  /**
29
40
  * Current authenticated Pallet session only. Cloudly reads the current pallet runtime and exact
30
41
  * owner records, then grants one held prepared handoff; serialized session content is no proof.
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Ed25519 signing and verification of App Store catalog envelopes (Node-only).
3
+ *
4
+ * A consumer authenticates before it interprets: the envelope's digest and signature are checked
5
+ * before the catalog's contract and schema are read.
6
+ */
7
+ import * as plugins from './plugins.runtime.js';
8
+ import type { TSha256Digest } from './data/immutableimage.js';
9
+ import type { IAppStoreCatalog, IAppStoreCatalogEnvelope, IAppStoreCatalogRefusal, IAppStoreCatalogTrustedKey, IAppStoreCatalogValidationOptions } from './appstore/catalog.js';
10
+ /** A catalog signing key. The private half is process-local; keep it in the publisher's secret store. */
11
+ export interface IAppStoreCatalogSigningKey {
12
+ keyId: TSha256Digest;
13
+ /** Raw 32-byte Ed25519 public key, lower-case hex. */
14
+ publicKey: string;
15
+ privateKey: plugins.crypto.KeyObject;
16
+ }
17
+ export interface IAppStoreCatalogVerificationOptions extends IAppStoreCatalogValidationOptions {
18
+ /** The keys this consumer trusts, shipped with its release. */
19
+ trustedKeys: readonly IAppStoreCatalogTrustedKey[];
20
+ }
21
+ export type TAppStoreCatalogVerification = {
22
+ accepted: true;
23
+ envelope: IAppStoreCatalogEnvelope;
24
+ keyId: TSha256Digest;
25
+ } | {
26
+ accepted: false;
27
+ refusal: IAppStoreCatalogRefusal;
28
+ };
29
+ /** A fresh Ed25519 catalog signing key with its key id. */
30
+ export declare const createAppStoreCatalogSigningKey: () => Promise<IAppStoreCatalogSigningKey>;
31
+ /**
32
+ * Signs only a catalog this contract accepts, whose every `configDigest` matches its config.
33
+ *
34
+ * `optionsArg.supportedFeatureIds` should name every feature id the catalog uses, so the
35
+ * publisher judges every version config in full.
36
+ */
37
+ export declare const signAppStoreCatalog: (catalogArg: IAppStoreCatalog, signingKeysArg: readonly IAppStoreCatalogSigningKey[], optionsArg: IAppStoreCatalogValidationOptions) => Promise<IAppStoreCatalogEnvelope>;
38
+ /**
39
+ * Judges an envelope a consumer fetched or an operator imported.
40
+ *
41
+ * In order: exact envelope shape, `catalogDigest` against the catalog, one valid signature by a
42
+ * trusted key (and no failing one), the contract identity, the catalog schema, every
43
+ * `configDigest`. The accepted envelope is an inert copy of the input. Succession against the
44
+ * active catalog is the caller's next step (`judgeAppStoreCatalogSuccession`).
45
+ */
46
+ export declare const verifyAppStoreCatalogEnvelope: (envelopeArg: unknown, optionsArg: IAppStoreCatalogVerificationOptions) => Promise<TAppStoreCatalogVerification>;
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Ed25519 signing and verification of App Store catalog envelopes (Node-only).
3
+ *
4
+ * A consumer authenticates before it interprets: the envelope's digest and signature are checked
5
+ * before the catalog's contract and schema are read.
6
+ */
7
+ import * as plugins from './plugins.runtime.js';
8
+ import { isSha256Digest } from './data/immutableimage.js';
9
+ import { canonicalizeStrictJson } from './private/canonicaljson.js';
10
+ import { readDataElements, readDataProperties } from './private/dataproperties.js';
11
+ import { appStoreCatalogContract, computeAppStoreCatalogDigest, computeAppStoreCatalogSigningKeyId, createAppStoreCatalogSignaturePayload, findAppStoreCatalogConfigDigestMismatch, isAppStoreCatalogEnvelope, judgeAppStoreCatalogContract, validateAppStoreCatalog, validateAppStoreCatalogEnvelope, validateAppStoreCatalogEnvelopeShape, } from './appstore/catalog.js';
12
+ const rawPublicKeyOf = (keyArg) => {
13
+ const jwk = keyArg.export({ format: 'jwk' });
14
+ if (jwk.kty !== 'OKP' || jwk.crv !== 'Ed25519' || typeof jwk.x !== 'string') {
15
+ throw new Error('App Store catalog signing key must be an Ed25519 key');
16
+ }
17
+ return Buffer.from(jwk.x, 'base64url').toString('hex');
18
+ };
19
+ const publicKeyObjectOf = (publicKeyArg) => plugins.crypto.createPublicKey({
20
+ format: 'jwk',
21
+ key: { kty: 'OKP', crv: 'Ed25519', x: Buffer.from(publicKeyArg, 'hex').toString('base64url') },
22
+ });
23
+ /** A fresh Ed25519 catalog signing key with its key id. */
24
+ export const createAppStoreCatalogSigningKey = async () => {
25
+ const pair = plugins.crypto.generateKeyPairSync('ed25519');
26
+ const publicKey = rawPublicKeyOf(pair.publicKey);
27
+ return { keyId: await computeAppStoreCatalogSigningKeyId(publicKey), publicKey, privateKey: pair.privateKey };
28
+ };
29
+ /**
30
+ * Signs only a catalog this contract accepts, whose every `configDigest` matches its config.
31
+ *
32
+ * `optionsArg.supportedFeatureIds` should name every feature id the catalog uses, so the
33
+ * publisher judges every version config in full.
34
+ */
35
+ export const signAppStoreCatalog = async (catalogArg, signingKeysArg, optionsArg) => {
36
+ const errors = validateAppStoreCatalog(catalogArg, optionsArg);
37
+ if (errors.length > 0) {
38
+ throw new Error(`App Store catalog refused for signing: ${errors.join('; ')}`);
39
+ }
40
+ const mismatch = await findAppStoreCatalogConfigDigestMismatch(catalogArg);
41
+ if (mismatch !== null)
42
+ throw new Error(`App Store catalog refused for signing: ${mismatch}`);
43
+ if (signingKeysArg.length === 0)
44
+ throw new Error('App Store catalog needs at least one signing key');
45
+ const catalogDigest = await computeAppStoreCatalogDigest(catalogArg);
46
+ const payload = createAppStoreCatalogSignaturePayload(catalogDigest);
47
+ const signatures = [];
48
+ for (const key of signingKeysArg) {
49
+ const { privateKey } = key;
50
+ if (!(privateKey instanceof plugins.crypto.KeyObject) || privateKey.type !== 'private'
51
+ || privateKey.asymmetricKeyType !== 'ed25519') {
52
+ throw new Error('App Store catalog signing key must be an Ed25519 private key');
53
+ }
54
+ const publicKey = rawPublicKeyOf(plugins.crypto.createPublicKey(privateKey));
55
+ if (publicKey !== key.publicKey || await computeAppStoreCatalogSigningKeyId(publicKey) !== key.keyId) {
56
+ throw new Error(`App Store catalog signing key ${key.keyId} does not match its private key`);
57
+ }
58
+ signatures.push({
59
+ keyId: key.keyId,
60
+ signature: plugins.crypto.sign(null, payload, privateKey).toString('hex'),
61
+ });
62
+ }
63
+ return { catalog: structuredClone(catalogArg), catalogDigest, signatures };
64
+ };
65
+ const refuse = (reasonArg, messageArg) => ({ accepted: false, refusal: { reason: reasonArg, message: messageArg } });
66
+ const failCanonicalInput = (reasonArg) => {
67
+ throw new Error(reasonArg);
68
+ };
69
+ /**
70
+ * Judges an envelope a consumer fetched or an operator imported.
71
+ *
72
+ * In order: exact envelope shape, `catalogDigest` against the catalog, one valid signature by a
73
+ * trusted key (and no failing one), the contract identity, the catalog schema, every
74
+ * `configDigest`. The accepted envelope is an inert copy of the input. Succession against the
75
+ * active catalog is the caller's next step (`judgeAppStoreCatalogSuccession`).
76
+ */
77
+ export const verifyAppStoreCatalogEnvelope = async (envelopeArg, optionsArg) => {
78
+ let inert;
79
+ try {
80
+ inert = JSON.parse(canonicalizeStrictJson(envelopeArg, failCanonicalInput, 'envelope'));
81
+ }
82
+ catch (error) {
83
+ return refuse('schemaInvalid', error instanceof Error ? error.message : 'envelope is not canonical JSON');
84
+ }
85
+ const shapeErrors = validateAppStoreCatalogEnvelopeShape(inert);
86
+ const envelope = readDataProperties(inert);
87
+ const signatures = envelope === null
88
+ ? null
89
+ : readDataElements(envelope.signatures, appStoreCatalogContract.maximumSignatures);
90
+ if (shapeErrors.length > 0 || envelope === null || signatures === null
91
+ || typeof envelope.catalogDigest !== 'string' || !isSha256Digest(envelope.catalogDigest)) {
92
+ return refuse('schemaInvalid', shapeErrors.join('; ') || 'envelope must be an object');
93
+ }
94
+ if (await computeAppStoreCatalogDigest(envelope.catalog) !== envelope.catalogDigest) {
95
+ return refuse('digestMismatch', 'catalogDigest does not match the catalog');
96
+ }
97
+ const trustedKeys = new Map();
98
+ for (const trustedKey of optionsArg.trustedKeys) {
99
+ let keyId;
100
+ try {
101
+ keyId = await computeAppStoreCatalogSigningKeyId(trustedKey.publicKey);
102
+ }
103
+ catch {
104
+ return refuse('signatureInvalid', `trusted key ${trustedKey.keyId} is not a raw Ed25519 public key`);
105
+ }
106
+ if (keyId !== trustedKey.keyId) {
107
+ return refuse('signatureInvalid', `trusted key ${trustedKey.keyId} does not match its public key`);
108
+ }
109
+ trustedKeys.set(keyId, trustedKey.publicKey);
110
+ }
111
+ const payload = createAppStoreCatalogSignaturePayload(envelope.catalogDigest);
112
+ let verifiedKeyId = null;
113
+ for (const signatureArg of signatures) {
114
+ const signature = readDataProperties(signatureArg);
115
+ if (signature === null || typeof signature.keyId !== 'string' || !isSha256Digest(signature.keyId)
116
+ || typeof signature.signature !== 'string') {
117
+ return refuse('schemaInvalid', 'envelope.signatures entries must be objects');
118
+ }
119
+ const publicKey = trustedKeys.get(signature.keyId);
120
+ if (publicKey === undefined)
121
+ continue;
122
+ const valid = plugins.crypto.verify(null, payload, publicKeyObjectOf(publicKey), Buffer.from(signature.signature, 'hex'));
123
+ if (!valid) {
124
+ return refuse('signatureInvalid', `signature by trusted key ${signature.keyId} does not verify`);
125
+ }
126
+ verifiedKeyId = signature.keyId;
127
+ }
128
+ if (verifiedKeyId === null) {
129
+ return refuse('signatureInvalid', 'no signature by a trusted key');
130
+ }
131
+ const contractRefusal = judgeAppStoreCatalogContract(envelope.catalog);
132
+ if (contractRefusal !== null)
133
+ return { accepted: false, refusal: contractRefusal };
134
+ if (!isAppStoreCatalogEnvelope(inert, optionsArg)) {
135
+ return refuse('schemaInvalid', validateAppStoreCatalogEnvelope(inert, optionsArg).join('; '));
136
+ }
137
+ const mismatch = await findAppStoreCatalogConfigDigestMismatch(inert.catalog);
138
+ if (mismatch !== null)
139
+ return refuse('digestMismatch', mismatch);
140
+ return { accepted: true, envelope: inert, keyId: verifiedKeyId };
141
+ };
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5hcHBzdG9yZWNhdGFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9ydW50aW1lLmFwcHN0b3JlY2F0YWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sS0FBSyxPQUFPLE1BQU0sc0JBQXNCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLGtDQUFrQyxFQUNsQyxxQ0FBcUMsRUFDckMsdUNBQXVDLEVBQ3ZDLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLCtCQUErQixFQUMvQixvQ0FBb0MsR0FDckMsTUFBTSx1QkFBdUIsQ0FBQztBQTRCL0IsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFnQyxFQUFVLEVBQUU7SUFDbEUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxZQUFvQixFQUE0QixFQUFFLENBQzNFLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQzdCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7Q0FDL0YsQ0FBQyxDQUFDO0FBRUwsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEtBQUssSUFBeUMsRUFBRTtJQUM3RixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtDQUFrQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2hILENBQUMsQ0FBQztBQUVGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxFQUN0QyxVQUE0QixFQUM1QixjQUFxRCxFQUNyRCxVQUE2QyxFQUNWLEVBQUU7SUFDckMsTUFBTSxNQUFNLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQy9ELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSx1Q0FBdUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzRSxJQUFJLFFBQVEsS0FBSyxJQUFJO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3RixJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUNyRyxNQUFNLGFBQWEsR0FBRyxNQUFNLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sT0FBTyxHQUFHLHFDQUFxQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sVUFBVSxHQUFnQyxFQUFFLENBQUM7SUFDbkQsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQzNCLElBQUksQ0FBQyxDQUFDLFVBQVUsWUFBWSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUztlQUNqRixVQUFVLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLFNBQVMsS0FBSyxHQUFHLENBQUMsU0FBUyxJQUFJLE1BQU0sa0NBQWtDLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JHLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsQ0FBQyxLQUFLLGlDQUFpQyxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUNELFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDZCxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMxRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQzdFLENBQUMsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFHLENBQUMsU0FBd0MsRUFBRSxVQUFrQixFQUFnQyxFQUFFLENBQzVHLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUU3RSxNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBaUIsRUFBUyxFQUFFO0lBQ3RELE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEtBQUssRUFDaEQsV0FBb0IsRUFDcEIsVUFBK0MsRUFDUixFQUFFO0lBQ3pDLElBQUksS0FBYyxDQUFDO0lBQ25CLElBQUksQ0FBQztRQUNILEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxNQUFNLENBQUMsZUFBZSxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sVUFBVSxHQUFHLFFBQVEsS0FBSyxJQUFJO1FBQ2xDLENBQUMsQ0FBQyxJQUFJO1FBQ04sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyRixJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFFBQVEsS0FBSyxJQUFJLElBQUksVUFBVSxLQUFLLElBQUk7V0FDakUsT0FBTyxRQUFRLENBQUMsYUFBYSxLQUFLLFFBQVEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUMzRixPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLE1BQU0sNEJBQTRCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwRixPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSwwQ0FBMEMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUM5QyxLQUFLLE1BQU0sVUFBVSxJQUFJLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxJQUFJLEtBQW9CLENBQUM7UUFDekIsSUFBSSxDQUFDO1lBQ0gsS0FBSyxHQUFHLE1BQU0sa0NBQWtDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLFVBQVUsQ0FBQyxLQUFLLGtDQUFrQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLFVBQVUsQ0FBQyxLQUFLLGdDQUFnQyxDQUFDLENBQUM7UUFDckcsQ0FBQztRQUNELFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcscUNBQXFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlFLElBQUksYUFBYSxHQUF5QixJQUFJLENBQUM7SUFDL0MsS0FBSyxNQUFNLFlBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxJQUFJLFNBQVMsS0FBSyxJQUFJLElBQUksT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2VBQzVGLE9BQU8sU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEVBQUUsNkNBQTZDLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxTQUFTLEtBQUssU0FBUztZQUFFLFNBQVM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pDLElBQUksRUFDSixPQUFPLEVBQ1AsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEVBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FDeEMsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixFQUFFLDRCQUE0QixTQUFTLENBQUMsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25HLENBQUM7UUFDRCxhQUFhLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsK0JBQStCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsNEJBQTRCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLElBQUksZUFBZSxLQUFLLElBQUk7UUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDbkYsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ2xELE9BQU8sTUFBTSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sdUNBQXVDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLElBQUksUUFBUSxLQUFLLElBQUk7UUFBRSxPQUFPLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQztBQUNuRSxDQUFDLENBQUMifQ==
@@ -8,6 +8,7 @@ export * from './runtime.corestore.js';
8
8
  export * from './runtime.corestore.databaseexportpackage.js';
9
9
  export * from './runtime.corestore.relay.js';
10
10
  export * from './runtime.assignmentsecret.js';
11
+ export * from './runtime.appstorecatalog.js';
11
12
  export interface ISealedResolvedSecretMaterialEntry {
12
13
  secretVersionId: string;
13
14
  envelope: plugins.smartcrypto.IX25519EnvelopeV1;
@@ -11,6 +11,7 @@ export * from './runtime.corestore.js';
11
11
  export * from './runtime.corestore.databaseexportpackage.js';
12
12
  export * from './runtime.corestore.relay.js';
13
13
  export * from './runtime.assignmentsecret.js';
14
+ export * from './runtime.appstorecatalog.js';
14
15
  /**
15
16
  * Parses every envelope with SmartCrypto, verifies its bound context digest,
16
17
  * and checks sorted exact version coverage. It never receives a private key
@@ -851,4 +852,4 @@ export const validateSecretDeploymentReportRequest = async (requestArg, expected
851
852
  return ['secret deployment report request must be safely inspectable'];
852
853
  }
853
854
  };
854
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFjeEMsT0FBTyxFQUNMLDJDQUEyQyxFQUMzQywrQ0FBK0MsRUFDL0MscUNBQXFDLEVBQ3JDLDhCQUE4QixFQUM5Qix1Q0FBdUMsRUFDdkMsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0Isa0NBQWtDLEdBQ25DLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLDhCQUE4QixFQUM5QiwrQkFBK0IsR0FDaEMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU05RCxPQUFPLEVBQ0wsMkNBQTJDLEVBQzNDLDhDQUE4QyxHQUMvQyxNQUFNLDJCQUEyQixDQUFDO0FBRW5DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBa0M5Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsS0FBSyxFQUNyRCxXQUFvQixFQUNwQixXQUF1QyxFQUNyQixFQUFFO0lBQ3BCLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDaEcsTUFBTSxRQUFRLEdBQUcsV0FBcUQs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
855
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3J1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFjeEMsT0FBTyxFQUNMLDJDQUEyQyxFQUMzQywrQ0FBK0MsRUFDL0MscUNBQXFDLEVBQ3JDLDhCQUE4QixFQUM5Qix1Q0FBdUMsRUFDdkMsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0Isa0NBQWtDLEdBQ25DLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLDhCQUE4QixFQUM5QiwrQkFBK0IsR0FDaEMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU05RCxPQUFPLEVBQ0wsMkNBQTJDLEVBQzNDLDhDQUE4QyxHQUMvQyxNQUFNLDJCQUEyQixDQUFDO0FBRW5DLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsOEJBQThCLENBQUM7QUFrQzdDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxLQUFLLEVBQ3JELFdBQW9CLEVBQ3BCLFdBQXVDLEVBQ3JCLEVBQUU7SUFDcEIsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNo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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "32.48.0",
3
+ "version": "32.50.0",
4
4
  "private": false,
5
5
  "description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
6
6
  "exports": {
package/readme.md CHANGED
@@ -711,9 +711,17 @@ projection and returns detached `IRuntimeNetworkWorkloadIngressPacketGrant`s
711
711
  (`{ source, destination: { lease, protocol, port } }`). Their withdrawals follow
712
712
  the host rules: an omitted grant needs its exact withdrawal, unknown or current
713
713
  denials reject, and up to 4,096 retained withdrawals carry forward until the
714
- exact joined application of the preceding projection is supplied. Cloudly routes
715
- a cluster ingress route to the target lease address and port once the grant
716
- exists.
714
+ exact joined application of the preceding projection is supplied
715
+ ([Projection Application Receipts](#projection-application-receipts)).
716
+
717
+ A signed grant is not yet a delivered flow. The receiving node enforces a grant
718
+ only between two workloads attached behind its own router: the packet engine
719
+ has no one-way grant across the inter-node tunnel, so a grant whose ingress
720
+ lease and target lease run on different nodes is signed into both nodes'
721
+ projections and admitted by both, yet neither builds a packet path for it and
722
+ the flow stays denied. Until cross-node one-way grants exist, a controller may
723
+ route a cluster ingress route to the target lease address and port only when the
724
+ grant exists and both leases are placed on the same node.
717
725
 
718
726
  The optional `IRuntimeNetworkProjection.hostPlatformEndpointIds` lists the ids of
719
727
  the protected authority's platform endpoints whose address the projection's
@@ -784,7 +792,8 @@ rejects changed same-generation content, regressed membership/readiness evidence
784
792
  changed immutable address/DNS keys, and omitted packet grants without explicit
785
793
  withdrawal. Pending withdrawals/tombstones must carry forward until the caller
786
794
  supplies the exact previous projection reference from its own durable joined
787
- application receipt. That reference is never taken from an incoming ACK. Keep
795
+ application receipt ([Projection Application Receipts](#projection-application-receipts)).
796
+ That reference is never taken from an incoming ACK. Keep
788
797
  the accepted history and apply journal until native effects and DNS/allocation
789
798
  quarantine are settled; a complete new snapshot does not erase that history.
790
799
 
@@ -873,6 +882,63 @@ Noise implementation owns cryptographic validation and authentication. Credentia
873
882
  delivery does not prove a connected VPN, TUN ownership, packet enforcement or
874
883
  workload readiness, and does not replace explicit packet withdrawals.
875
884
 
885
+ #### Projection Application Receipts
886
+
887
+ `IRuntimeNetworkProjectionApplicationReceipt` is a node's durable statement that
888
+ its packet authority is bounded by one admitted projection. Its claim is a
889
+ ceiling: every packet table the node holds was composed from `projection`, or
890
+ the node holds no packet table at all, so the flows its kernel admits are a
891
+ subset of that projection's grants. Only the node's joined native packet owner
892
+ can supply it: the journaled application of the projection's policies on every
893
+ role, or the release of every table (`nativeJournal: null`). An admission ACK,
894
+ a single table inspection or a success flag is never such evidence
895
+ (`runtimeNetworkProjectionApplicationContract`). A crash, a reboot or a restored
896
+ guard only removes authority, so a receipt stays true until the node starts
897
+ applying a successor; from then on only the successor's receipt counts, because
898
+ only the exact predecessor of an admitted projection is ever selected.
899
+
900
+ A node's receipts form one monotonic chain bound to its node scope and reporter
901
+ session; `bootId` records the boot that minted a receipt and is not compared.
902
+ `admitRuntimeNetworkProjectionApplicationReceipt(receipt,
903
+ previousReceipt, scope, head)` is the receiver's gate: the first receipt is
904
+ generation 1, each successor names its exact predecessor, an identical receipt
905
+ is a replay, and the named projection never goes back. The receipt must name
906
+ the head's projection chain at a generation the head has reached: the head
907
+ exactly, or an older generation. An older one was minted before the node
908
+ admitted the head; it advances the chain and is never usable.
909
+
910
+ `selectRuntimeNetworkProjectionAppliedPrevious(receipt, previous)` returns the
911
+ `appliedPrevious` argument of `admitRuntimeNetworkProjection` for the successor
912
+ of `previous`: the receipt's projection reference when it is exactly `previous`,
913
+ otherwise null. A controller passes the latest receipt it admitted for the node;
914
+ the node passes its own durable receipt to its own admission. Only the exact
915
+ predecessor counts. A receipt for an older projection proves nothing about the
916
+ grants issued since, so it releases nothing.
917
+
918
+ This is why withdrawals now drop. A projection carries its predecessor's
919
+ withdrawals, and may not grant a withdrawn flow again, until `appliedPrevious`
920
+ names that predecessor. Once a receipt proves the node applied it, the node's
921
+ packet authority is within the predecessor's grants, so the successor states
922
+ only the withdrawals of grants the predecessor held and it drops. A flow
923
+ withdrawn earlier can then be granted again. Without receipts, withdrawals only
924
+ accumulate up to their bound, and a withdrawn flow stays withdrawn until a lease
925
+ changes.
926
+
927
+ `reportRuntimeNetworkProjectionApplication`
928
+ (`IReq_Pallet_Controller_ReportRuntimeNetworkProjectionApplication`) carries a
929
+ receipt on the current authenticated physical session.
930
+ `bindReportRuntimeNetworkProjectionApplicationRequest` binds it to the current
931
+ session and the receiver-owned reporter history, as protection reports are
932
+ bound: a receipt minted under an earlier session of the same node still drains
933
+ from its outbox as `historical`. The response must match the exact sent receipt
934
+ (`bindReportRuntimeNetworkProjectionApplicationResponse`). Trust rests on the
935
+ authenticated session; the contract has no node signing key. A node's receipt
936
+ only loosens that node's own enforcement, so a node that misreports it gains no
937
+ authority over any other node. Each node's receipt chain is independent: a flow
938
+ granted in the projections of two nodes is released on each by that node's own
939
+ receipt. A receipt is not an admission acknowledgement, and an acknowledgement
940
+ is never a receipt.
941
+
876
942
  ### Egress Owner Retirement
877
943
 
878
944
  An owner that is offline, revoked or gone can never acknowledge a successor, so
@@ -3455,6 +3521,63 @@ the lifecycle contract. Each server action carries a CAS revision; completion
3455
3521
  requires its exact ID, current revision, and `ready` status so a delayed request
3456
3522
  cannot complete a replacement action.
3457
3523
 
3524
+ ## App Store Catalog Contract
3525
+
3526
+ Onebox and Cloudly load the App Store at runtime as one signed catalog. The contract is what a consumer has to understand; everything else is data that arrives with the next catalog revision and needs no consumer release: new apps and versions, image digests, changelogs, descriptions.
3527
+
3528
+ ```typescript
3529
+ import { appstore } from '@serve.zone/interfaces';
3530
+
3531
+ appstore.appStoreCatalogContract.id; // 'serve.zone/appstore-catalog'
3532
+ appstore.appStoreCatalogContract.major; // 1
3533
+ appstore.appStoreCatalogContract.minor; // 0
3534
+ ```
3535
+
3536
+ An `IAppStoreCatalog` carries `contract`, a strictly increasing `revision`, `publishedAt`, `sourceRevision` and every app (`info`, `latestVersion`, optional `upgradeStrategy`, `versions`). Each `IAppStoreCatalogVersion` holds the full `config` and its `configDigest`, and once withdrawn its `withdrawn: { at, reason }` record (`IAppStoreCatalogWithdrawal`). `latestVersion` names a listed version that is not withdrawn (under semver the highest of them); only an app whose every version is withdrawn names a withdrawn one. A catalog version config is an `IAppStoreVersionConfig` without the live-source members (`source`, `resolvedSource`, `resolvedImageDigest`), the per-version `upgradeStrategy` and `appStoreVersion`; its image is digest-pinned. A publisher ships an `IAppStoreCatalogEnvelope`: the catalog, its `catalogDigest` and one or more Ed25519 `signatures` by key id.
3537
+
3538
+ Compatibility rules:
3539
+
3540
+ - A consumer reads a catalog of its own contract id and major whose minor is not newer than its own. Anything else is refused as `contractUnsupported` (`appstore.judgeAppStoreCatalogContract`).
3541
+ - Every level has exact keys; an unknown member is `schemaInvalid` (`appstore.validateAppStoreCatalog`).
3542
+ - `requiresFeatures` gates one version: a consumer passes the feature ids it fulfils (`supportedFeatureIds`, e.g. `appStoreStorageFeatureIds` values). A version naming any other id stays listed, is refused for install and upgrade there, and its config is not interpreted, so a new config capability ships under a feature id without refusing the rest of the catalog (`appstore.getAppStoreCatalogMissingFeatureIds`).
3543
+ - A published `app@version` stays in every later catalog and never changes (`appstore.judgeAppStoreCatalogSuccession`): a later catalog that no longer lists it is `publishedVersionRemoved`, one that lists it with another `configDigest` is `publishedVersionMutated`, and a revision that does not increase is `revisionRegressed`.
3544
+ - A publisher retires a version by withdrawing it, never by removing it. A withdrawn version keeps its entry, config and digest, so services installed from it keep reading it, and is refused as an install or upgrade target, like a version gated on a feature the consumer lacks (`appstore.judgeAppStoreCatalogInstallTarget`). A withdrawal is final: a later catalog that revokes or rewrites it is `publishedWithdrawalChanged`; a version withdrawn by mistake is republished under a new version.
3545
+
3546
+ Digests are SHA-256 over strict canonical JSON (keys in UTF-16 code-unit order, safe integers only) of a domain-separated value: `computeAppStoreCatalogConfigDigest`, `computeAppStoreCatalogDigest` and `computeAppStoreCatalogSigningKeyId`. A signature covers `createAppStoreCatalogSignaturePayload(catalogDigest)`. These helpers use Web Crypto and are safe in the browser entry.
3547
+
3548
+ Signing and verification are Node-only:
3549
+
3550
+ ```typescript
3551
+ import {
3552
+ createAppStoreCatalogSigningKey,
3553
+ signAppStoreCatalog,
3554
+ verifyAppStoreCatalogEnvelope,
3555
+ } from '@serve.zone/interfaces/runtime';
3556
+
3557
+ const verification = await verifyAppStoreCatalogEnvelope(fetchedEnvelope, {
3558
+ trustedKeys, // IAppStoreCatalogTrustedKey[] shipped with the consumer release
3559
+ supportedFeatureIds,
3560
+ });
3561
+ if (!verification.accepted) {
3562
+ // verification.refusal.reason: schemaInvalid | digestMismatch | signatureInvalid | contractUnsupported
3563
+ }
3564
+ ```
3565
+
3566
+ `verifyAppStoreCatalogEnvelope` authenticates before it interprets: envelope shape, `catalogDigest`, one valid signature by a trusted key (a failing signature by a trusted key refuses the envelope), then contract, schema and every `configDigest`. The consumer then judges succession against its active catalog.
3567
+
3568
+ `TAppStoreCatalogStatus` is the operator's view, discriminated by `availability`: `ready` (`IAppStoreCatalogReadyStatus`) always carries the `active` catalog's revision, digest, key and origin, including a restored last-known-good catalog; `unavailable` (`IAppStoreCatalogUnavailableStatus`) always carries a `reason` and no active catalog. Both state `supportedContract`, `supportedFeatureIds`, `lastAttempt`, `nextAttemptAt` and the last `refused` catalog. Loading a catalog never gates the boot, readiness or health of anything else; while none is active only App Store install, upgrade and upgrade-preview are refused. `requests.appstore.IReq_Any_GetAppStoreCatalogStatus` reads it, `IReq_Any_RefreshAppStoreCatalog` runs one attempt now and answers the state after it, and `IReq_Any_GetAppStoreTemplates` may answer it as `catalogStatus`.
3569
+
3570
+ The catalog validator judges every supported version config in full; no consumer needs a second validator. Besides the catalog's own rules (member set, image pinning, the feature gate, minimum versions, upgrade flags, `healthCheck`) it applies `appstore.validateAppStoreVersionConfig`, the member rules a host applies before it installs a version, in this order:
3571
+
3572
+ - `image`, then the port model (`appstore.validateAppStoreVersionPortModel`): `port` or `targetPorts` is required, and `targetPorts`, `domains` and `publicPortMappings` are read as exactly their types and resolved through `data.normalizeServicePortConfig`.
3573
+ - `containerArgs` and the environment declarations.
3574
+ - Storage (`appstore.validateAppStoreVersionStorage`): the exact config member set (`appstore.appStoreVersionConfigKeys`), `platformRequirements`, `storageClasses` and `storageRequests` (declared together, every class used), the storage feature ids `requiresFeatures` must name, portable legacy `volumes`, and every environment, secret-file and mount destination used once.
3575
+ - Platform OIDC, then Docker `publishedPorts` (`appstore.validateAppStorePublishedPorts`).
3576
+
3577
+ Each storage request is judged on its own by the storage contract behind `platform.normalizeStorageRequest`: members, capacity quantities and limits, protection, delivery and mount path, with that contract's messages and bounds, and a legacy volume's mount path as the request it becomes. The version config adds what only holds between requests: each request's class is declared, of its kind and backs a declared limit (`hardQuota`), backup or snapshots; ids, environment keys, secret files and mounts are used once; the legacy names `legacyFilesystem`, `legacyObjectStorage` and `legacy-s3` stay reserved. Two App Store narrowings apply on top: a request id is a stable lowercase identifier (it shares a namespace with the derived `legacy-volume-*` ids), and a file delivery targets one file directly below `/run/secrets`.
3578
+
3579
+ Each of these validators stops at the first violation and answers it as a one-element list starting `Invalid <label>`, so a config is refused for the same reason everywhere.
3580
+
3458
3581
  ## TypedRequest Contracts
3459
3582
 
3460
3583
  Use `requests` when registering handlers with `@api.global/typedrequest` or when creating typed requests through a TypedSocket client.
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '32.48.0',
6
+ version: '32.50.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }