@serve.zone/interfaces 22.0.0 → 23.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 +19 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/appstore/types.d.ts +31 -16
- package/dist_ts/appstore/types.js +208 -11
- package/dist_ts/data/coremail.runtime.d.ts +3 -2
- package/dist_ts/data/coremail.runtime.js +10 -5
- package/dist_ts/data/deploymentoperation.js +6 -20
- package/dist_ts/data/deploymentpreflight.d.ts +2 -6
- package/dist_ts/data/deploymentpreflight.js +1 -1
- package/dist_ts/data/hostedapp.d.ts +40 -14
- package/dist_ts/data/hostedapp.js +90 -1
- package/dist_ts/data/immutableimage.d.ts +30 -1
- package/dist_ts/data/immutableimage.js +103 -1
- package/dist_ts/data/index.d.ts +0 -2
- package/dist_ts/data/index.js +1 -3
- package/dist_ts/data/secret.d.ts +186 -13
- package/dist_ts/data/secret.js +543 -45
- package/dist_ts/data/service.d.ts +0 -39
- package/dist_ts/data/service.js +1 -77
- package/dist_ts/data/settings.d.ts +62 -43
- package/dist_ts/data/settings.js +34 -2
- package/dist_ts/platform/storage.d.ts +13 -14
- package/dist_ts/platform/storage.js +1 -1
- package/dist_ts/platform/storagemigration.d.ts +8 -8
- package/dist_ts/platform/storagemigration.golden.d.ts +2 -2
- package/dist_ts/platform/storagemigration.golden.js +19 -88
- package/dist_ts/platform/storagemigration.js +46 -58
- package/dist_ts/platform/types.d.ts +5 -19
- package/dist_ts/plugins.d.ts +2 -1
- package/dist_ts/plugins.js +3 -2
- package/dist_ts/requests/hostedapp.d.ts +12 -9
- package/dist_ts/requests/hostedapp.js +38 -1
- package/dist_ts/requests/index.d.ts +1 -3
- package/dist_ts/requests/index.js +2 -4
- package/dist_ts/requests/platform.d.ts +0 -1
- package/dist_ts/requests/secret.d.ts +23 -17
- package/dist_ts/requests/secret.js +161 -2
- package/dist_ts/requests/service.d.ts +0 -13
- package/dist_ts/requests/settings.d.ts +3 -3
- package/dist_ts/runtime.d.ts +78 -26
- package/dist_ts/runtime.js +219 -19
- package/package.json +2 -1
- package/readme.md +110 -29
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/appstore/types.ts +251 -25
- package/ts/data/coremail.runtime.ts +18 -4
- package/ts/data/deploymentoperation.ts +7 -31
- package/ts/data/deploymentpreflight.ts +2 -5
- package/ts/data/hostedapp.ts +144 -18
- package/ts/data/immutableimage.ts +150 -1
- package/ts/data/index.ts +0 -2
- package/ts/data/secret.ts +775 -53
- package/ts/data/service.ts +0 -118
- package/ts/data/settings.ts +70 -80
- package/ts/platform/storage.ts +15 -16
- package/ts/platform/storagemigration.golden.ts +18 -95
- package/ts/platform/storagemigration.ts +57 -87
- package/ts/platform/types.ts +6 -19
- package/ts/plugins.ts +2 -0
- package/ts/requests/hostedapp.ts +50 -9
- package/ts/requests/index.ts +0 -4
- package/ts/requests/platform.ts +0 -1
- package/ts/requests/secret.ts +204 -9
- package/ts/requests/service.ts +0 -16
- package/ts/requests/settings.ts +3 -3
- package/ts/runtime.ts +314 -41
- package/dist_ts/data/secretbundle.d.ts +0 -57
- package/dist_ts/data/secretbundle.js +0 -2
- package/dist_ts/data/secretgroup.d.ts +0 -52
- package/dist_ts/data/secretgroup.js +0 -2
- package/dist_ts/requests/secretbundle.d.ts +0 -75
- package/dist_ts/requests/secretbundle.js +0 -4
- package/dist_ts/requests/secretgroup.d.ts +0 -52
- package/dist_ts/requests/secretgroup.js +0 -4
- package/ts/data/secretbundle.ts +0 -65
- package/ts/data/secretgroup.ts +0 -58
- package/ts/requests/secretbundle.ts +0 -103
- package/ts/requests/secretgroup.ts +0 -74
package/changelog.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-07-30 - 23.0.1
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- expose stable CoreMail contract error codes and classify oversized message
|
|
8
|
+
parts as `PAYLOAD_LIMIT_EXCEEDED` (coremail)
|
|
9
|
+
|
|
10
|
+
## 2026-07-30 - 23.0.0
|
|
11
|
+
|
|
12
|
+
### Breaking Changes
|
|
13
|
+
|
|
14
|
+
- replace grouped/plaintext secret delivery with the sealed v23 contract (secrets)
|
|
15
|
+
- Remove SecretGroup and SecretBundle data/request exports, bundled service and preflight fields, flattening RPCs, compatibility validators, and aggregate runtime-file design.
|
|
16
|
+
- Require context-bound X25519 ingress envelopes, schema-v2 immutable manifests, request-and-scope-bound sealed runtime verification, active-recipient issuance, and two-step Coreflow recipient enrollment.
|
|
17
|
+
- Add stable Docker resource names, WorkloadInit map/wrapper contracts, immutable per-platform container invocation evidence, and required Coreflow capabilities.
|
|
18
|
+
- Split App Store public and secret inputs, remove serialized platform/settings/storage credentials, and require JWT-derived hosted-app machine identity with value-free revision-fenced bootstrap actions.
|
|
19
|
+
- Bump storage migration normalization and golden vectors to schema 2 with service-owned credential management scopes.
|
|
20
|
+
- This pre-cutover release does not complete or claim clean-v2 backup verification, historical erasure, or destructive cleanup; those remain separately gated.
|
|
21
|
+
|
|
3
22
|
## 2026-07-30 - 22.0.0
|
|
4
23
|
|
|
5
24
|
### Breaking Changes
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/interfaces',
|
|
6
|
-
version: '
|
|
6
|
+
version: '23.0.1',
|
|
7
7
|
description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type TSecretDelivery, type TSecretGeneratedEncoding, type TSecretIngressRecipient, type TSecretValueInput } from '../data/secret.js';
|
|
2
2
|
import { type IHostedAppRoleDefinition } from '../data/hostedapp.js';
|
|
3
3
|
import type { IServiceDomainRoute, IServicePublicPortMapping, IServiceTargetPort } from '../data/serviceports.js';
|
|
4
4
|
import type { IStorageCapacityRequest, IStorageClassRequirement, TFilesystemStorageAccessMode, TObjectStorageAccessMode, TObjectStorageDelivery, TStorageReclaimPolicy, TStorageResourceKind, TStorageSnapshotMode } from '../platform/storage.js';
|
|
@@ -18,10 +18,10 @@ export type TAppStoreSourceType = 'inline' | 'repoManifest' | 'dockerImage';
|
|
|
18
18
|
export type TAppStoreTrackingMode = 'tag' | 'digest';
|
|
19
19
|
export type TAppStoreUpgradeStrategy = 'semver' | 'branch' | 'dockerDigest';
|
|
20
20
|
export declare const appStoreStorageFeatureIds: {
|
|
21
|
-
readonly
|
|
21
|
+
readonly bindingsV2: "storage.bindings.v2";
|
|
22
22
|
readonly filesystemV1: "storage.filesystem.v1";
|
|
23
|
-
readonly
|
|
24
|
-
readonly
|
|
23
|
+
readonly objectStorageV2: "storage.object-storage.v2";
|
|
24
|
+
readonly objectStorageFileV2: "storage.object-storage.file.v2";
|
|
25
25
|
};
|
|
26
26
|
export type TAppStoreStorageFeatureId = typeof appStoreStorageFeatureIds[keyof typeof appStoreStorageFeatureIds];
|
|
27
27
|
export type TAppStoreStoragePurpose = 'runtime' | 'database' | 'registry' | 'backup';
|
|
@@ -95,20 +95,28 @@ export interface IAppStoreResolvedSource {
|
|
|
95
95
|
imageDigest?: string;
|
|
96
96
|
resolvedAt: string;
|
|
97
97
|
}
|
|
98
|
-
|
|
98
|
+
interface IAppStoreEnvironmentDeclarationBase {
|
|
99
99
|
key: string;
|
|
100
|
-
value?: string;
|
|
101
100
|
description: string;
|
|
102
101
|
required?: boolean;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
}
|
|
103
|
+
export interface IAppStorePublicEnvironmentDeclaration extends IAppStoreEnvironmentDeclarationBase {
|
|
104
|
+
secret?: false;
|
|
105
|
+
/** Public nonsecret default. */
|
|
106
|
+
value?: string;
|
|
107
|
+
delivery?: never;
|
|
108
|
+
generate?: never;
|
|
109
|
+
}
|
|
110
|
+
export interface IAppStoreSecretEnvironmentDeclaration extends IAppStoreEnvironmentDeclarationBase {
|
|
111
|
+
secret: true;
|
|
112
|
+
value?: never;
|
|
113
|
+
delivery: TSecretDelivery;
|
|
106
114
|
generate?: {
|
|
107
|
-
|
|
108
|
-
/** Number of random bytes before hexadecimal encoding. */
|
|
115
|
+
encoding: TSecretGeneratedEncoding;
|
|
109
116
|
bytes: number;
|
|
110
117
|
};
|
|
111
118
|
}
|
|
119
|
+
export type TAppStoreEnvironmentDeclaration = IAppStorePublicEnvironmentDeclaration | IAppStoreSecretEnvironmentDeclaration;
|
|
112
120
|
export interface IAppStoreVolume {
|
|
113
121
|
/** Stable Docker volume name. If omitted, the runtime derives one from service name and mount path. */
|
|
114
122
|
name?: string;
|
|
@@ -193,13 +201,11 @@ export interface IAppStoreVersionConfig {
|
|
|
193
201
|
port?: number;
|
|
194
202
|
/** Exact OCI/Docker argument vector appended after the image entrypoint. */
|
|
195
203
|
containerArgs?: string[];
|
|
196
|
-
/** Secret-bundle keys delivered only through Docker's read-only secret tmpfs. */
|
|
197
|
-
secretFiles?: IServiceSecretFile[];
|
|
198
204
|
targetPorts?: IServiceTargetPort[];
|
|
199
205
|
domains?: IServiceDomainRoute[];
|
|
200
206
|
/** Edge/coretraffic public TCP/UDP exposure, distinct from Docker publishedPorts. */
|
|
201
207
|
publicPortMappings?: IServicePublicPortMapping[];
|
|
202
|
-
envVars?:
|
|
208
|
+
envVars?: TAppStoreEnvironmentDeclaration[];
|
|
203
209
|
/**
|
|
204
210
|
* @deprecated Legacy volume syntax. New templates use storageClasses and
|
|
205
211
|
* storageRequests. Resolver normalization must reject legacy physical driver
|
|
@@ -269,16 +275,24 @@ export interface IServezoneAppStoreManifest {
|
|
|
269
275
|
};
|
|
270
276
|
}
|
|
271
277
|
export interface IAppStoreInstallRequest {
|
|
278
|
+
mutationId: string;
|
|
272
279
|
appId: string;
|
|
273
|
-
version
|
|
280
|
+
version: string;
|
|
281
|
+
serviceId: string;
|
|
274
282
|
serviceName: string;
|
|
275
283
|
domain?: string;
|
|
276
284
|
/** Legacy install-time override for the web target port. */
|
|
277
285
|
port?: number;
|
|
278
286
|
publishedPorts?: IAppStorePublishedPort[];
|
|
279
287
|
publicPortMappings?: IServicePublicPortMapping[];
|
|
280
|
-
|
|
288
|
+
publicEnvironment: Record<string, string>;
|
|
289
|
+
secretInputs: Array<{
|
|
290
|
+
key: string;
|
|
291
|
+
valueInput: TSecretValueInput;
|
|
292
|
+
}>;
|
|
281
293
|
}
|
|
294
|
+
export declare const validateAppStoreEnvironmentDeclarations: (declarationsArg: unknown) => string[];
|
|
295
|
+
export declare const validateAppStoreInstallRequest: (requestArg: unknown, configArg: IAppStoreVersionConfig, activeIngressRecipientArg: TSecretIngressRecipient) => Promise<string[]>;
|
|
282
296
|
export interface IUpgradeableAppStoreService {
|
|
283
297
|
serviceId?: string;
|
|
284
298
|
serviceName: string;
|
|
@@ -287,3 +301,4 @@ export interface IUpgradeableAppStoreService {
|
|
|
287
301
|
latestVersion: string;
|
|
288
302
|
hasMigration: boolean;
|
|
289
303
|
}
|
|
304
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { createAppStoreInstallSecretEnvelopeContext, validateSecretDelivery, validateSecretValueInput, validateSecretValueInputForRecipient, } from '../data/secret.js';
|
|
1
2
|
import { validateHostedAppRoleDefinitions, } from '../data/hostedapp.js';
|
|
2
3
|
export const appStoreStorageFeatureIds = {
|
|
3
|
-
|
|
4
|
+
bindingsV2: 'storage.bindings.v2',
|
|
4
5
|
filesystemV1: 'storage.filesystem.v1',
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
objectStorageV2: 'storage.object-storage.v2',
|
|
7
|
+
objectStorageFileV2: 'storage.object-storage.file.v2',
|
|
7
8
|
};
|
|
8
9
|
const appStoreEnvKeyRegex = /^[A-Z_][A-Z0-9_]*$/;
|
|
9
10
|
export const validateAppStorePlatformOidcCapability = (capabilityArg) => {
|
|
@@ -52,7 +53,10 @@ export const validateAppStoreVersionPlatformOidc = (configArg) => {
|
|
|
52
53
|
return ['appstore config must be an object'];
|
|
53
54
|
}
|
|
54
55
|
const config = configArg;
|
|
55
|
-
const errors =
|
|
56
|
+
const errors = [
|
|
57
|
+
...validateAppStorePlatformOidcCapability(config.platformOidc),
|
|
58
|
+
...validateAppStoreEnvironmentDeclarations(config.envVars),
|
|
59
|
+
];
|
|
56
60
|
if (!config.platformOidc || typeof config.platformOidc !== 'object'
|
|
57
61
|
|| Array.isArray(config.platformOidc))
|
|
58
62
|
return errors;
|
|
@@ -67,16 +71,209 @@ export const validateAppStoreVersionPlatformOidc = (configArg) => {
|
|
|
67
71
|
? envArg.key
|
|
68
72
|
: undefined)).filter((valueArg) => typeof valueArg === 'string')
|
|
69
73
|
: [];
|
|
70
|
-
const
|
|
71
|
-
? config.secretFiles.map((fileArg) => (fileArg && typeof fileArg === 'object' && !Array.isArray(fileArg)
|
|
72
|
-
? fileArg.sourceKey
|
|
73
|
-
: undefined)).filter((valueArg) => typeof valueArg === 'string')
|
|
74
|
-
: [];
|
|
75
|
-
for (const key of [...ordinaryEnvKeys, ...secretFileKeys]) {
|
|
74
|
+
for (const key of ordinaryEnvKeys) {
|
|
76
75
|
if (oidcKeys.has(key)) {
|
|
77
76
|
errors.push(`platformOidc environment key '${key}' collides with app runtime input`);
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
79
|
return errors;
|
|
81
80
|
};
|
|
82
|
-
|
|
81
|
+
const appStoreMutationIdRegex = /^[A-Za-z0-9][A-Za-z0-9:._-]{0,199}$/;
|
|
82
|
+
export const validateAppStoreEnvironmentDeclarations = (declarationsArg) => {
|
|
83
|
+
if (declarationsArg === undefined)
|
|
84
|
+
return [];
|
|
85
|
+
if (!Array.isArray(declarationsArg) || declarationsArg.length > 256) {
|
|
86
|
+
return ['envVars must be a bounded array'];
|
|
87
|
+
}
|
|
88
|
+
const errors = [];
|
|
89
|
+
const keys = [];
|
|
90
|
+
declarationsArg.forEach((declarationArg, indexArg) => {
|
|
91
|
+
if (!declarationArg || typeof declarationArg !== 'object' || Array.isArray(declarationArg)) {
|
|
92
|
+
errors.push(`envVars[${indexArg}] must be an object`);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const declaration = declarationArg;
|
|
96
|
+
const allowedKeys = declaration.secret === true
|
|
97
|
+
? new Set(['key', 'description', 'required', 'secret', 'delivery', 'generate'])
|
|
98
|
+
: new Set(['key', 'description', 'required', 'secret', 'value']);
|
|
99
|
+
if (Object.keys(declaration).some((keyArg) => !allowedKeys.has(keyArg))) {
|
|
100
|
+
errors.push(`envVars[${indexArg}] contains fields outside its exact channel schema`);
|
|
101
|
+
}
|
|
102
|
+
if (typeof declaration.key !== 'string' || !appStoreEnvKeyRegex.test(declaration.key)) {
|
|
103
|
+
errors.push(`envVars[${indexArg}].key must be canonical`);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
keys.push(declaration.key);
|
|
107
|
+
}
|
|
108
|
+
if (typeof declaration.description !== 'string' || declaration.description.length > 1000) {
|
|
109
|
+
errors.push(`envVars[${indexArg}].description must be bounded`);
|
|
110
|
+
}
|
|
111
|
+
if (declaration.required !== undefined && typeof declaration.required !== 'boolean') {
|
|
112
|
+
errors.push(`envVars[${indexArg}].required must be boolean`);
|
|
113
|
+
}
|
|
114
|
+
if (declaration.secret === true) {
|
|
115
|
+
if ('value' in declaration)
|
|
116
|
+
errors.push(`envVars[${indexArg}] secret declaration forbids value`);
|
|
117
|
+
if (!('delivery' in declaration)) {
|
|
118
|
+
errors.push(`envVars[${indexArg}] secret declaration requires delivery`);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
errors.push(...validateSecretDelivery(declaration.delivery)
|
|
122
|
+
.map((errorArg) => `envVars[${indexArg}].${errorArg}`));
|
|
123
|
+
}
|
|
124
|
+
if (declaration.generate !== undefined) {
|
|
125
|
+
errors.push(...validateSecretValueInput({
|
|
126
|
+
mode: 'generated',
|
|
127
|
+
...declaration.generate,
|
|
128
|
+
}).map((errorArg) => `envVars[${indexArg}].generate ${errorArg}`));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
if (declaration.secret !== undefined && declaration.secret !== false) {
|
|
133
|
+
errors.push(`envVars[${indexArg}].secret must be true or false`);
|
|
134
|
+
}
|
|
135
|
+
if ('delivery' in declaration)
|
|
136
|
+
errors.push(`envVars[${indexArg}] public declaration forbids delivery`);
|
|
137
|
+
if ('generate' in declaration)
|
|
138
|
+
errors.push(`envVars[${indexArg}] public declaration forbids generate`);
|
|
139
|
+
if (declaration.value !== undefined && typeof declaration.value !== 'string') {
|
|
140
|
+
errors.push(`envVars[${indexArg}].value must be a public string default`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
if (new Set(keys).size !== keys.length)
|
|
145
|
+
errors.push('envVars keys must be unique');
|
|
146
|
+
return errors;
|
|
147
|
+
};
|
|
148
|
+
export const validateAppStoreInstallRequest = async (requestArg, configArg, activeIngressRecipientArg) => {
|
|
149
|
+
if (!requestArg || typeof requestArg !== 'object' || Array.isArray(requestArg)) {
|
|
150
|
+
return ['install request must be an object'];
|
|
151
|
+
}
|
|
152
|
+
const request = requestArg;
|
|
153
|
+
const rawDeclarations = configArg && typeof configArg === 'object'
|
|
154
|
+
? configArg.envVars
|
|
155
|
+
: undefined;
|
|
156
|
+
const errors = validateAppStoreEnvironmentDeclarations(rawDeclarations);
|
|
157
|
+
const allowedRequestKeys = new Set([
|
|
158
|
+
'mutationId',
|
|
159
|
+
'appId',
|
|
160
|
+
'version',
|
|
161
|
+
'serviceId',
|
|
162
|
+
'serviceName',
|
|
163
|
+
'domain',
|
|
164
|
+
'port',
|
|
165
|
+
'publishedPorts',
|
|
166
|
+
'publicPortMappings',
|
|
167
|
+
'publicEnvironment',
|
|
168
|
+
'secretInputs',
|
|
169
|
+
]);
|
|
170
|
+
if (Object.keys(request).some((keyArg) => !allowedRequestKeys.has(keyArg))) {
|
|
171
|
+
errors.push('install request contains fields outside its schema');
|
|
172
|
+
}
|
|
173
|
+
if (typeof request.mutationId !== 'string'
|
|
174
|
+
|| !appStoreMutationIdRegex.test(request.mutationId)) {
|
|
175
|
+
errors.push('install mutationId must be canonical');
|
|
176
|
+
}
|
|
177
|
+
for (const field of ['appId', 'version', 'serviceId', 'serviceName']) {
|
|
178
|
+
if (typeof request[field] !== 'string' || !request[field].trim()) {
|
|
179
|
+
errors.push(`install ${field} must be non-empty`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const publicEnvironment = request.publicEnvironment;
|
|
183
|
+
if (!publicEnvironment || typeof publicEnvironment !== 'object'
|
|
184
|
+
|| Array.isArray(publicEnvironment)
|
|
185
|
+
|| Object.entries(publicEnvironment).some(([keyArg, valueArg]) => (!appStoreEnvKeyRegex.test(keyArg) || typeof valueArg !== 'string'))) {
|
|
186
|
+
errors.push('install publicEnvironment must be a canonical string map');
|
|
187
|
+
}
|
|
188
|
+
const secretInputs = Array.isArray(request.secretInputs) ? request.secretInputs : [];
|
|
189
|
+
if (!Array.isArray(request.secretInputs) || secretInputs.length > 256) {
|
|
190
|
+
errors.push('install secretInputs must be a bounded array');
|
|
191
|
+
}
|
|
192
|
+
const inputKeys = [];
|
|
193
|
+
const inputsByKey = new Map();
|
|
194
|
+
const declarations = Array.isArray(rawDeclarations) && rawDeclarations.length <= 256
|
|
195
|
+
? rawDeclarations.filter((entryArg) => (validateAppStoreEnvironmentDeclarations([entryArg]).length === 0))
|
|
196
|
+
: [];
|
|
197
|
+
const publicDeclarations = new Map(declarations
|
|
198
|
+
.filter((entryArg) => entryArg.secret !== true)
|
|
199
|
+
.map((entryArg) => [entryArg.key, entryArg]));
|
|
200
|
+
const secretDeclarations = new Map(declarations
|
|
201
|
+
.filter((entryArg) => entryArg.secret === true)
|
|
202
|
+
.map((entryArg) => [entryArg.key, entryArg]));
|
|
203
|
+
for (const [indexArg, inputArg] of secretInputs.entries()) {
|
|
204
|
+
if (!inputArg || typeof inputArg !== 'object' || Array.isArray(inputArg)) {
|
|
205
|
+
errors.push(`install secretInputs[${indexArg}] must be an object`);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const input = inputArg;
|
|
209
|
+
if (JSON.stringify(Object.keys(input).sort()) !== JSON.stringify(['key', 'valueInput'])) {
|
|
210
|
+
errors.push(`install secretInputs[${indexArg}] must use its exact schema`);
|
|
211
|
+
}
|
|
212
|
+
if (typeof input.key !== 'string' || !appStoreEnvKeyRegex.test(input.key)) {
|
|
213
|
+
errors.push(`install secretInputs[${indexArg}].key must be canonical`);
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
inputKeys.push(input.key);
|
|
217
|
+
inputsByKey.set(input.key, input);
|
|
218
|
+
const declaration = secretDeclarations.get(input.key);
|
|
219
|
+
const canBuildContext = declaration
|
|
220
|
+
&& typeof request.mutationId === 'string'
|
|
221
|
+
&& appStoreMutationIdRegex.test(request.mutationId)
|
|
222
|
+
&& typeof request.appId === 'string'
|
|
223
|
+
&& Boolean(request.appId.trim())
|
|
224
|
+
&& typeof request.version === 'string'
|
|
225
|
+
&& Boolean(request.version.trim())
|
|
226
|
+
&& typeof request.serviceId === 'string'
|
|
227
|
+
&& Boolean(request.serviceId.trim());
|
|
228
|
+
const expectedContext = canBuildContext
|
|
229
|
+
? createAppStoreInstallSecretEnvelopeContext({
|
|
230
|
+
mutationId: request.mutationId,
|
|
231
|
+
appId: request.appId,
|
|
232
|
+
appVersion: request.version,
|
|
233
|
+
serviceId: request.serviceId,
|
|
234
|
+
key: input.key,
|
|
235
|
+
delivery: declaration.delivery,
|
|
236
|
+
generation: declaration.generate,
|
|
237
|
+
})
|
|
238
|
+
: new Uint8Array();
|
|
239
|
+
errors.push(...(await validateSecretValueInputForRecipient(input.valueInput, activeIngressRecipientArg, expectedContext))
|
|
240
|
+
.map((errorArg) => `install secretInputs[${indexArg}].${errorArg}`));
|
|
241
|
+
}
|
|
242
|
+
if (new Set(inputKeys).size !== inputKeys.length) {
|
|
243
|
+
errors.push('install secretInputs keys must be unique');
|
|
244
|
+
}
|
|
245
|
+
for (const key of Object.keys((publicEnvironment || {}))) {
|
|
246
|
+
if (!publicDeclarations.has(key))
|
|
247
|
+
errors.push(`install public key '${key}' is not declared public`);
|
|
248
|
+
if (inputsByKey.has(key))
|
|
249
|
+
errors.push(`install key '${key}' appears in both channels`);
|
|
250
|
+
}
|
|
251
|
+
for (const [key, input] of inputsByKey) {
|
|
252
|
+
const declaration = secretDeclarations.get(key);
|
|
253
|
+
if (!declaration) {
|
|
254
|
+
errors.push(`install secret key '${key}' is not declared secret`);
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
const valueInput = input.valueInput;
|
|
258
|
+
if (valueInput?.mode === 'generated'
|
|
259
|
+
&& (!declaration.generate
|
|
260
|
+
|| declaration.generate.encoding !== valueInput.encoding
|
|
261
|
+
|| declaration.generate.bytes !== valueInput.bytes)) {
|
|
262
|
+
errors.push(`install secret key '${key}' generation does not match its declaration`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
for (const declaration of publicDeclarations.values()) {
|
|
266
|
+
if (declaration.required
|
|
267
|
+
&& declaration.value === undefined
|
|
268
|
+
&& !Object.hasOwn((publicEnvironment || {}), declaration.key)) {
|
|
269
|
+
errors.push(`install required public key '${declaration.key}' is missing`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
for (const declaration of secretDeclarations.values()) {
|
|
273
|
+
if (declaration.required && !declaration.generate && !inputsByKey.has(declaration.key)) {
|
|
274
|
+
errors.push(`install required secret key '${declaration.key}' is missing`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return errors;
|
|
278
|
+
};
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9hcHBzdG9yZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMENBQTBDLEVBQzFDLHNCQUFzQixFQUN0Qix3QkFBd0IsRUFDeEIsb0NBQW9DLEdBS3JDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLGdDQUFnQyxHQUVqQyxNQUFNLHNCQUFzQixDQUFDO0FBaUM5QixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLFlBQVksRUFBRSx1QkFBdUI7SUFDckMsZUFBZSxFQUFFLDJCQUEyQjtJQUM1QyxtQkFBbUIsRUFBRSxnQ0FBZ0M7Q0FDN0MsQ0FBQztBQThLWCxNQUFNLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDO0FBRWpELE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLENBQ3BELGFBQXNCLEVBQ1osRUFBRTtJQUNaLElBQUksYUFBYSxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxJQUFJLENBQUMsYUFBYSxJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDeEYsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLGFBQXdDLENBQUM7SUFDNUQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksT0FBTyxVQUFVLENBQUMsWUFBWSxLQUFLLFFBQVE7V0FDMUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7V0FDeEMsVUFBVSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1dBQ3hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztXQUN4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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ICoreMailBindingCredentialVerifier, type ICoreMailControlBootstrap, type ICoreMailDesiredState, type ICoreMailDownloadGrant, type ICoreMailEnvelope, type ICoreMailErrorData, type ICoreMailGatewayOutboundStatus, type ICoreMailGatewayPeerDesiredState, type ICoreMailInboundDelivery, type ICoreMailInboundDeliveryPage, type ICoreMailOutboundMessageDescriptor, type ICoreMailRuntimeKeyReference, type ICoreMailReconciliationStatus, type ICoreMailReplicaIdentity, type ICoreMailSubmission, type ICoreMailTransferGrant, type ICoreMailUploadGrant, type TCoreMailCapability, type TCoreMailBindingState, type TCoreMailSha256, type TCoreMailWorkloadOperation } from './coremail.js';
|
|
1
|
+
import { type ICoreMailBindingCredentialVerifier, type ICoreMailControlBootstrap, type ICoreMailDesiredState, type ICoreMailDownloadGrant, type ICoreMailEnvelope, type ICoreMailErrorData, type ICoreMailGatewayOutboundStatus, type ICoreMailGatewayPeerDesiredState, type ICoreMailInboundDelivery, type ICoreMailInboundDeliveryPage, type ICoreMailOutboundMessageDescriptor, type ICoreMailRuntimeKeyReference, type ICoreMailReconciliationStatus, type ICoreMailReplicaIdentity, type ICoreMailSubmission, type ICoreMailTransferGrant, type ICoreMailUploadGrant, type TCoreMailCapability, type TCoreMailBindingState, type TCoreMailErrorCode, type TCoreMailSha256, type TCoreMailWorkloadOperation } from './coremail.js';
|
|
2
2
|
export declare const coreMailCanonicalJsonRules: Readonly<{
|
|
3
3
|
version: 1;
|
|
4
4
|
encoding: "utf-8";
|
|
@@ -30,7 +30,8 @@ export declare const coreMailContractLimits: Readonly<{
|
|
|
30
30
|
readonly maximumBearerTokenBytes: 1024;
|
|
31
31
|
}>;
|
|
32
32
|
export declare class CoreMailContractError extends Error {
|
|
33
|
-
|
|
33
|
+
readonly code: TCoreMailErrorCode;
|
|
34
|
+
constructor(reasonArg: string, codeArg?: TCoreMailErrorCode);
|
|
34
35
|
}
|
|
35
36
|
export declare const normalizeCoreMailSha256: (valueArg: unknown, pathArg?: string) => TCoreMailSha256;
|
|
36
37
|
export declare const normalizeCoreMailCredentialVerifier: (valueArg: unknown, pathArg?: string) => ICoreMailBindingCredentialVerifier;
|