@empire-builder-kit/runtime 1.0.0-beta.9 → 1.0.0-rc.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/NOTICE +6 -0
- package/package.json +93 -3
- package/src/api-contract/artifacts.d.ts +67 -0
- package/src/api-contract/artifacts.js +349 -0
- package/src/api-contract/artifacts.js.map +1 -0
- package/src/api-contract/client.d.ts +79 -0
- package/src/api-contract/client.js +561 -0
- package/src/api-contract/client.js.map +1 -0
- package/src/api-contract/errors.d.ts +7 -0
- package/src/api-contract/errors.js +11 -0
- package/src/api-contract/errors.js.map +1 -0
- package/src/api-contract/index.d.ts +9 -0
- package/src/api-contract/index.js +10 -0
- package/src/api-contract/index.js.map +1 -0
- package/src/api-contract/operation.d.ts +118 -0
- package/src/api-contract/operation.js +609 -0
- package/src/api-contract/operation.js.map +1 -0
- package/src/api-contract/schema.d.ts +81 -0
- package/src/api-contract/schema.js +313 -0
- package/src/api-contract/schema.js.map +1 -0
- package/src/api-contract/server.d.ts +77 -0
- package/src/api-contract/server.js +466 -0
- package/src/api-contract/server.js.map +1 -0
- package/src/async-work/contract.d.ts +17 -0
- package/src/async-work/contract.js +105 -0
- package/src/async-work/contract.js.map +1 -0
- package/src/async-work/idempotency.d.ts +123 -0
- package/src/async-work/idempotency.js +167 -0
- package/src/async-work/idempotency.js.map +1 -0
- package/src/async-work/index.d.ts +8 -0
- package/src/async-work/index.js +9 -0
- package/src/async-work/index.js.map +1 -0
- package/src/async-work/provider.d.ts +90 -0
- package/src/async-work/provider.js +155 -0
- package/src/async-work/provider.js.map +1 -0
- package/src/async-work/recovery.d.ts +103 -0
- package/src/async-work/recovery.js +291 -0
- package/src/async-work/recovery.js.map +1 -0
- package/src/async-work/schedule.d.ts +117 -0
- package/src/async-work/schedule.js +279 -0
- package/src/async-work/schedule.js.map +1 -0
- package/src/async-work/sqs.d.ts +133 -0
- package/src/async-work/sqs.js +280 -0
- package/src/async-work/sqs.js.map +1 -0
- package/src/async-work/webhook.d.ts +60 -0
- package/src/async-work/webhook.js +178 -0
- package/src/async-work/webhook.js.map +1 -0
- package/src/async-work/workflow.d.ts +98 -0
- package/src/async-work/workflow.js +225 -0
- package/src/async-work/workflow.js.map +1 -0
- package/src/auth-backend.d.ts +12 -2
- package/src/auth-backend.js +30 -18
- package/src/auth-backend.js.map +1 -1
- package/src/authorization/admission.d.ts +30 -0
- package/src/authorization/admission.js +87 -0
- package/src/authorization/admission.js.map +1 -0
- package/src/authorization/approval.d.ts +99 -0
- package/src/authorization/approval.js +249 -0
- package/src/authorization/approval.js.map +1 -0
- package/src/authorization/audit.d.ts +35 -0
- package/src/authorization/audit.js +35 -0
- package/src/authorization/audit.js.map +1 -0
- package/src/authorization/delegation.d.ts +149 -0
- package/src/authorization/delegation.js +401 -0
- package/src/authorization/delegation.js.map +1 -0
- package/src/authorization/errors.d.ts +32 -0
- package/src/authorization/errors.js +153 -0
- package/src/authorization/errors.js.map +1 -0
- package/src/authorization/evaluator.d.ts +39 -0
- package/src/authorization/evaluator.js +199 -0
- package/src/authorization/evaluator.js.map +1 -0
- package/src/authorization/index.d.ts +14 -0
- package/src/authorization/index.js +15 -0
- package/src/authorization/index.js.map +1 -0
- package/src/authorization/machine-token.d.ts +87 -0
- package/src/authorization/machine-token.js +201 -0
- package/src/authorization/machine-token.js.map +1 -0
- package/src/authorization/machine.d.ts +32 -0
- package/src/authorization/machine.js +41 -0
- package/src/authorization/machine.js.map +1 -0
- package/src/authorization/model.d.ts +112 -0
- package/src/authorization/model.js +112 -0
- package/src/authorization/model.js.map +1 -0
- package/src/canonical-json.cjs +157 -0
- package/src/canonical-json.d.cts +26 -0
- package/src/canonical-json.d.ts +18 -0
- package/src/canonical-json.js +125 -0
- package/src/canonical-json.js.map +1 -0
- package/src/configuration/contract.d.ts +107 -0
- package/src/configuration/contract.js +461 -0
- package/src/configuration/contract.js.map +1 -0
- package/src/configuration/index.d.ts +3 -0
- package/src/configuration/index.js +4 -0
- package/src/configuration/index.js.map +1 -0
- package/src/configuration/provider.d.ts +59 -0
- package/src/configuration/provider.js +198 -0
- package/src/configuration/provider.js.map +1 -0
- package/src/configuration/rollout-evaluator.cjs +54 -0
- package/src/configuration/rollout-evaluator.d.cts +26 -0
- package/src/configuration/rollout-evaluator.d.ts +18 -0
- package/src/configuration/rollout-evaluator.js +38 -0
- package/src/configuration/rollout-evaluator.js.map +1 -0
- package/src/configuration/rollout-key.cjs +38 -0
- package/src/configuration/rollout-key.d.cts +14 -0
- package/src/configuration/rollout-key.d.ts +10 -0
- package/src/configuration/rollout-key.js +26 -0
- package/src/configuration/rollout-key.js.map +1 -0
- package/src/configuration/rollout.d.ts +60 -0
- package/src/configuration/rollout.js +42 -0
- package/src/configuration/rollout.js.map +1 -0
- package/src/data-lifecycle/contract.d.ts +33 -0
- package/src/data-lifecycle/contract.js +118 -0
- package/src/data-lifecycle/contract.js.map +1 -0
- package/src/data-lifecycle/event.d.ts +28 -0
- package/src/data-lifecycle/event.js +76 -0
- package/src/data-lifecycle/event.js.map +1 -0
- package/src/data-lifecycle/evidence.d.ts +65 -0
- package/src/data-lifecycle/evidence.js +162 -0
- package/src/data-lifecycle/evidence.js.map +1 -0
- package/src/data-lifecycle/holds.d.ts +29 -0
- package/src/data-lifecycle/holds.js +124 -0
- package/src/data-lifecycle/holds.js.map +1 -0
- package/src/data-lifecycle/index.d.ts +8 -0
- package/src/data-lifecycle/index.js +9 -0
- package/src/data-lifecycle/index.js.map +1 -0
- package/src/data-lifecycle/policy.d.ts +16 -0
- package/src/data-lifecycle/policy.js +79 -0
- package/src/data-lifecycle/policy.js.map +1 -0
- package/src/data-lifecycle/restore.d.ts +90 -0
- package/src/data-lifecycle/restore.js +336 -0
- package/src/data-lifecycle/restore.js.map +1 -0
- package/src/data-lifecycle/retention.d.ts +57 -0
- package/src/data-lifecycle/retention.js +232 -0
- package/src/data-lifecycle/retention.js.map +1 -0
- package/src/data-lifecycle/rights.d.ts +171 -0
- package/src/data-lifecycle/rights.js +533 -0
- package/src/data-lifecycle/rights.js.map +1 -0
- package/src/database.d.ts +36 -0
- package/src/database.js +119 -0
- package/src/database.js.map +1 -0
- package/src/deterministic-order.cjs +16 -0
- package/src/deterministic-order.d.cts +9 -0
- package/src/deterministic-order.d.ts +7 -0
- package/src/deterministic-order.js +10 -0
- package/src/deterministic-order.js.map +1 -0
- package/src/events.d.ts +28 -19
- package/src/events.js +171 -66
- package/src/events.js.map +1 -1
- package/src/index.d.ts +7 -1
- package/src/index.js +24 -0
- package/src/index.js.map +1 -1
- package/src/lambda.d.ts +8 -2
- package/src/lambda.js +100 -39
- package/src/lambda.js.map +1 -1
- package/src/logging.d.ts +95 -36
- package/src/logging.js +460 -62
- package/src/logging.js.map +1 -1
- package/src/observability.d.ts +80 -18
- package/src/observability.js +252 -61
- package/src/observability.js.map +1 -1
- package/src/performance/index.d.ts +1 -0
- package/src/performance/index.js +2 -0
- package/src/performance/index.js.map +1 -0
- package/src/performance/protected-load-endpoint.d.ts +140 -0
- package/src/performance/protected-load-endpoint.js +462 -0
- package/src/performance/protected-load-endpoint.js.map +1 -0
- package/src/rds-global-ca-bundle.d.ts +1 -0
- package/src/rds-global-ca-bundle.js +2742 -0
- package/src/rds-global-ca-bundle.js.map +1 -0
- package/src/reliability/burn.d.ts +39 -0
- package/src/reliability/burn.js +102 -0
- package/src/reliability/burn.js.map +1 -0
- package/src/reliability/contract.d.ts +5 -0
- package/src/reliability/contract.js +317 -0
- package/src/reliability/contract.js.map +1 -0
- package/src/reliability/incident.d.ts +16 -0
- package/src/reliability/incident.js +562 -0
- package/src/reliability/incident.js.map +1 -0
- package/src/reliability/index.d.ts +5 -0
- package/src/reliability/index.js +6 -0
- package/src/reliability/index.js.map +1 -0
- package/src/reliability/model.d.ts +191 -0
- package/src/reliability/model.fixtures.d.ts +2 -0
- package/src/reliability/model.fixtures.js +57 -0
- package/src/reliability/model.fixtures.js.map +1 -0
- package/src/reliability/model.js +2 -0
- package/src/reliability/model.js.map +1 -0
- package/src/reliability/slo.d.ts +9 -0
- package/src/reliability/slo.js +74 -0
- package/src/reliability/slo.js.map +1 -0
- package/src/request-context.d.ts +57 -15
- package/src/request-context.js +116 -36
- package/src/request-context.js.map +1 -1
- package/src/safe-reference.cjs +57 -0
- package/src/safe-reference.d.cts +25 -0
- package/src/safe-reference.d.ts +11 -0
- package/src/safe-reference.js +46 -0
- package/src/safe-reference.js.map +1 -0
- package/src/secrets/contract.d.ts +99 -0
- package/src/secrets/contract.js +238 -0
- package/src/secrets/contract.js.map +1 -0
- package/src/secrets/index.d.ts +4 -0
- package/src/secrets/index.js +5 -0
- package/src/secrets/index.js.map +1 -0
- package/src/secrets/observability.d.ts +14 -0
- package/src/secrets/observability.js +100 -0
- package/src/secrets/observability.js.map +1 -0
- package/src/secrets/personal.d.ts +48 -0
- package/src/secrets/personal.js +332 -0
- package/src/secrets/personal.js.map +1 -0
- package/src/secrets/resolver.d.ts +125 -0
- package/src/secrets/resolver.js +602 -0
- package/src/secrets/resolver.js.map +1 -0
- package/src/secrets/sensitive-patterns.cjs +84 -0
- package/src/secrets/sensitive-patterns.d.cts +62 -0
- package/src/secrets/sensitive-patterns.d.ts +40 -0
- package/src/secrets/sensitive-patterns.js +60 -0
- package/src/secrets/sensitive-patterns.js.map +1 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
export declare const CONFIGURATION_DECLARATION_SCHEMA_VERSION: 1;
|
|
2
|
+
export declare const CONFIGURATION_CLASSES: readonly ["source", "deployment", "secret", "operational", "feature-rollout", "experiment"];
|
|
3
|
+
export declare const CONFIGURATION_VALUE_TYPES: readonly ["boolean", "number", "string", "json"];
|
|
4
|
+
export declare const CONFIGURATION_PROVIDERS: readonly ["source", "deployment", "secrets-manager", "local", "appconfig"];
|
|
5
|
+
export declare const CONFIGURATION_STAGES: readonly ["development", "staging", "production"];
|
|
6
|
+
export declare const CONFIGURATION_APPROVAL_CLASSES: readonly ["reviewed-source", "protected-deployment", "protected-runtime"];
|
|
7
|
+
export declare const CONFIGURATION_MUTABILITY_CLASSES: readonly ["artifact-rebuild", "redeploy", "dynamic"];
|
|
8
|
+
export declare const CONFIGURATION_SENSITIVITY_CLASSES: readonly ["public", "non-secret", "secret"];
|
|
9
|
+
export declare const CONFIGURATION_LOGGING_RULES: readonly ["public-value", "metadata-only", "never"];
|
|
10
|
+
export type ConfigurationClass = (typeof CONFIGURATION_CLASSES)[number];
|
|
11
|
+
export type ConfigurationValueType = (typeof CONFIGURATION_VALUE_TYPES)[number];
|
|
12
|
+
export type ConfigurationProvider = (typeof CONFIGURATION_PROVIDERS)[number];
|
|
13
|
+
export type ConfigurationStage = (typeof CONFIGURATION_STAGES)[number];
|
|
14
|
+
export type ConfigurationValue = boolean | number | string | null | readonly ConfigurationValue[] | {
|
|
15
|
+
readonly [key: string]: ConfigurationValue;
|
|
16
|
+
};
|
|
17
|
+
export type ConfigurationValidationSchema = {
|
|
18
|
+
type: 'boolean';
|
|
19
|
+
} | {
|
|
20
|
+
integer?: boolean;
|
|
21
|
+
maximum?: number;
|
|
22
|
+
minimum?: number;
|
|
23
|
+
type: 'number';
|
|
24
|
+
} | {
|
|
25
|
+
maximumLength?: number;
|
|
26
|
+
minimumLength?: number;
|
|
27
|
+
pattern?: string;
|
|
28
|
+
type: 'string';
|
|
29
|
+
} | {
|
|
30
|
+
maximumBytes: number;
|
|
31
|
+
type: 'json';
|
|
32
|
+
};
|
|
33
|
+
export interface ConfigurationCachePolicy {
|
|
34
|
+
maxStaleMs: number;
|
|
35
|
+
refreshAfterMs: number;
|
|
36
|
+
timeoutMs: number;
|
|
37
|
+
}
|
|
38
|
+
export interface ConfigurationDeclaration {
|
|
39
|
+
alarms: readonly string[];
|
|
40
|
+
approval: 'reviewed-source' | 'protected-deployment' | 'protected-runtime';
|
|
41
|
+
cache: ConfigurationCachePolicy;
|
|
42
|
+
class: ConfigurationClass;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
defaultValue?: ConfigurationValue;
|
|
45
|
+
dependentOperations: readonly string[];
|
|
46
|
+
description: string;
|
|
47
|
+
expiresAt?: string;
|
|
48
|
+
key: string;
|
|
49
|
+
logging: 'public-value' | 'metadata-only' | 'never';
|
|
50
|
+
mutability: 'artifact-rebuild' | 'redeploy' | 'dynamic';
|
|
51
|
+
owner: string;
|
|
52
|
+
provider: ConfigurationProvider;
|
|
53
|
+
removalPlan?: string;
|
|
54
|
+
requiredStages: readonly ConfigurationStage[];
|
|
55
|
+
reviewAt: string;
|
|
56
|
+
rollbackStrategy: string;
|
|
57
|
+
runbook: string;
|
|
58
|
+
safeFallback?: ConfigurationValue;
|
|
59
|
+
schemaVersion: typeof CONFIGURATION_DECLARATION_SCHEMA_VERSION;
|
|
60
|
+
sensitivity: 'public' | 'non-secret' | 'secret';
|
|
61
|
+
validation: ConfigurationValidationSchema;
|
|
62
|
+
valueType: ConfigurationValueType;
|
|
63
|
+
}
|
|
64
|
+
export interface ActiveConfigurationInput {
|
|
65
|
+
key: string;
|
|
66
|
+
provider: ConfigurationProvider;
|
|
67
|
+
providerVersion: string;
|
|
68
|
+
status: 'active' | 'defaulted';
|
|
69
|
+
value?: ConfigurationValue;
|
|
70
|
+
}
|
|
71
|
+
export interface ActiveConfigurationItem {
|
|
72
|
+
class: ConfigurationClass;
|
|
73
|
+
key: string;
|
|
74
|
+
owner: string;
|
|
75
|
+
provider: ConfigurationProvider;
|
|
76
|
+
providerVersion: string;
|
|
77
|
+
status: 'active' | 'defaulted';
|
|
78
|
+
}
|
|
79
|
+
export interface ActiveConfigurationEvidence {
|
|
80
|
+
activeDigest: string;
|
|
81
|
+
declarationDigest: string;
|
|
82
|
+
items: readonly ActiveConfigurationItem[];
|
|
83
|
+
kind: 'active-configuration-evidence';
|
|
84
|
+
schemaVersion: 1;
|
|
85
|
+
stage: ConfigurationStage;
|
|
86
|
+
}
|
|
87
|
+
export interface ActiveConfigurationExpectation {
|
|
88
|
+
activeDigest?: string;
|
|
89
|
+
declarationDigest?: string;
|
|
90
|
+
stage?: ConfigurationStage;
|
|
91
|
+
}
|
|
92
|
+
export type ConfigurationFailureClassification = 'configuration-declaration-invalid' | 'configuration-duplicate-key' | 'configuration-active-key-missing' | 'configuration-active-key-unknown' | 'configuration-active-value-invalid' | 'configuration-active-drift' | 'configuration-secret-value-present';
|
|
93
|
+
export declare class ConfigurationContractError extends Error {
|
|
94
|
+
readonly classification: ConfigurationFailureClassification;
|
|
95
|
+
readonly pointer: string;
|
|
96
|
+
constructor(classification: ConfigurationFailureClassification, pointer: string, message: string);
|
|
97
|
+
}
|
|
98
|
+
export declare function configurationValueMatchesType(value: ConfigurationValue, valueType: ConfigurationValueType): boolean;
|
|
99
|
+
export declare function configurationValueMatchesDeclaration(value: ConfigurationValue, declaration: Pick<ConfigurationDeclaration, 'validation' | 'valueType'>): boolean;
|
|
100
|
+
export declare function defineConfiguration(declarations: readonly ConfigurationDeclaration[]): readonly ConfigurationDeclaration[];
|
|
101
|
+
/**
|
|
102
|
+
* Produces comparison evidence without retaining a value or an individually
|
|
103
|
+
* guessable value digest. The aggregate digest covers the active values and
|
|
104
|
+
* provider versions while the returned item list contains metadata only.
|
|
105
|
+
*/
|
|
106
|
+
export declare function createActiveConfigurationEvidence(declarationsInput: readonly ConfigurationDeclaration[], activeInput: readonly ActiveConfigurationInput[], stage: ConfigurationStage): ActiveConfigurationEvidence;
|
|
107
|
+
export declare function validateActiveConfigurationEvidence(evidence: ActiveConfigurationEvidence, expectation?: ActiveConfigurationExpectation): ActiveConfigurationEvidence;
|
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
import { canonicalJson, canonicalJsonSha256 } from '../canonical-json.js';
|
|
2
|
+
import { isBoundedSafeReference } from '../safe-reference.js';
|
|
3
|
+
export const CONFIGURATION_DECLARATION_SCHEMA_VERSION = 1;
|
|
4
|
+
export const CONFIGURATION_CLASSES = [
|
|
5
|
+
'source',
|
|
6
|
+
'deployment',
|
|
7
|
+
'secret',
|
|
8
|
+
'operational',
|
|
9
|
+
'feature-rollout',
|
|
10
|
+
'experiment',
|
|
11
|
+
];
|
|
12
|
+
export const CONFIGURATION_VALUE_TYPES = [
|
|
13
|
+
'boolean',
|
|
14
|
+
'number',
|
|
15
|
+
'string',
|
|
16
|
+
'json',
|
|
17
|
+
];
|
|
18
|
+
export const CONFIGURATION_PROVIDERS = [
|
|
19
|
+
'source',
|
|
20
|
+
'deployment',
|
|
21
|
+
'secrets-manager',
|
|
22
|
+
'local',
|
|
23
|
+
'appconfig',
|
|
24
|
+
];
|
|
25
|
+
export const CONFIGURATION_STAGES = [
|
|
26
|
+
'development',
|
|
27
|
+
'staging',
|
|
28
|
+
'production',
|
|
29
|
+
];
|
|
30
|
+
export const CONFIGURATION_APPROVAL_CLASSES = [
|
|
31
|
+
'reviewed-source',
|
|
32
|
+
'protected-deployment',
|
|
33
|
+
'protected-runtime',
|
|
34
|
+
];
|
|
35
|
+
export const CONFIGURATION_MUTABILITY_CLASSES = [
|
|
36
|
+
'artifact-rebuild',
|
|
37
|
+
'redeploy',
|
|
38
|
+
'dynamic',
|
|
39
|
+
];
|
|
40
|
+
export const CONFIGURATION_SENSITIVITY_CLASSES = [
|
|
41
|
+
'public',
|
|
42
|
+
'non-secret',
|
|
43
|
+
'secret',
|
|
44
|
+
];
|
|
45
|
+
export const CONFIGURATION_LOGGING_RULES = [
|
|
46
|
+
'public-value',
|
|
47
|
+
'metadata-only',
|
|
48
|
+
'never',
|
|
49
|
+
];
|
|
50
|
+
export class ConfigurationContractError extends Error {
|
|
51
|
+
constructor(classification, pointer, message) {
|
|
52
|
+
super(`${pointer}: ${message}`);
|
|
53
|
+
this.classification = classification;
|
|
54
|
+
this.pointer = pointer;
|
|
55
|
+
this.name = 'ConfigurationContractError';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const SAFE_KEY = /^[a-z][a-z0-9-]{0,62}\.[a-z][a-z0-9.-]{0,126}$/;
|
|
59
|
+
const SHA256 = /^[a-f0-9]{64}$/;
|
|
60
|
+
function compareStrings(left, right) {
|
|
61
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
62
|
+
}
|
|
63
|
+
function canonicalize(value) {
|
|
64
|
+
return canonicalJson(value);
|
|
65
|
+
}
|
|
66
|
+
function digest(value) {
|
|
67
|
+
return canonicalJsonSha256(value, { omitUndefinedObjectValues: true });
|
|
68
|
+
}
|
|
69
|
+
function configurationValuesEqual(left, right) {
|
|
70
|
+
return canonicalize(left) === canonicalize(right);
|
|
71
|
+
}
|
|
72
|
+
function isIsoInstant(value) {
|
|
73
|
+
return (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z$/.test(value) &&
|
|
74
|
+
!Number.isNaN(Date.parse(value)));
|
|
75
|
+
}
|
|
76
|
+
function isValidPattern(value) {
|
|
77
|
+
try {
|
|
78
|
+
new RegExp(value, 'u');
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch (_a) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function isConfigurationValue(value) {
|
|
86
|
+
if (value === null ||
|
|
87
|
+
typeof value === 'boolean' ||
|
|
88
|
+
typeof value === 'string') {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
if (typeof value === 'number') {
|
|
92
|
+
return Number.isFinite(value);
|
|
93
|
+
}
|
|
94
|
+
if (Array.isArray(value)) {
|
|
95
|
+
return value.every(isConfigurationValue);
|
|
96
|
+
}
|
|
97
|
+
return (typeof value === 'object' &&
|
|
98
|
+
Object.values(value).every(isConfigurationValue));
|
|
99
|
+
}
|
|
100
|
+
export function configurationValueMatchesType(value, valueType) {
|
|
101
|
+
switch (valueType) {
|
|
102
|
+
case 'boolean':
|
|
103
|
+
case 'number':
|
|
104
|
+
case 'string':
|
|
105
|
+
return typeof value === valueType;
|
|
106
|
+
case 'json':
|
|
107
|
+
return isConfigurationValue(value);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export function configurationValueMatchesDeclaration(value, declaration) {
|
|
111
|
+
if (!configurationValueMatchesType(value, declaration.valueType) ||
|
|
112
|
+
declaration.validation.type !== declaration.valueType) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
switch (declaration.validation.type) {
|
|
116
|
+
case 'boolean':
|
|
117
|
+
return true;
|
|
118
|
+
case 'number':
|
|
119
|
+
return (typeof value === 'number' &&
|
|
120
|
+
(!declaration.validation.integer || Number.isInteger(value)) &&
|
|
121
|
+
(declaration.validation.minimum === undefined ||
|
|
122
|
+
value >= declaration.validation.minimum) &&
|
|
123
|
+
(declaration.validation.maximum === undefined ||
|
|
124
|
+
value <= declaration.validation.maximum));
|
|
125
|
+
case 'string':
|
|
126
|
+
return (typeof value === 'string' &&
|
|
127
|
+
value.length > 0 &&
|
|
128
|
+
value === value.trim() &&
|
|
129
|
+
(declaration.validation.minimumLength === undefined ||
|
|
130
|
+
value.length >= declaration.validation.minimumLength) &&
|
|
131
|
+
(declaration.validation.maximumLength === undefined ||
|
|
132
|
+
value.length <= declaration.validation.maximumLength) &&
|
|
133
|
+
(declaration.validation.pattern === undefined ||
|
|
134
|
+
new RegExp(declaration.validation.pattern, 'u').test(value)));
|
|
135
|
+
case 'json':
|
|
136
|
+
return (Buffer.byteLength(canonicalize(value), 'utf8') <=
|
|
137
|
+
declaration.validation.maximumBytes);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function declarationError(pointer, message) {
|
|
141
|
+
throw new ConfigurationContractError('configuration-declaration-invalid', pointer, message);
|
|
142
|
+
}
|
|
143
|
+
function validateDeclaration(declaration, index) {
|
|
144
|
+
var _a;
|
|
145
|
+
const pointer = `/declarations/${index}`;
|
|
146
|
+
const allowedKeys = [
|
|
147
|
+
'alarms',
|
|
148
|
+
'approval',
|
|
149
|
+
'cache',
|
|
150
|
+
'class',
|
|
151
|
+
'createdAt',
|
|
152
|
+
'defaultValue',
|
|
153
|
+
'dependentOperations',
|
|
154
|
+
'description',
|
|
155
|
+
'expiresAt',
|
|
156
|
+
'key',
|
|
157
|
+
'logging',
|
|
158
|
+
'mutability',
|
|
159
|
+
'owner',
|
|
160
|
+
'provider',
|
|
161
|
+
'removalPlan',
|
|
162
|
+
'requiredStages',
|
|
163
|
+
'reviewAt',
|
|
164
|
+
'rollbackStrategy',
|
|
165
|
+
'runbook',
|
|
166
|
+
'safeFallback',
|
|
167
|
+
'schemaVersion',
|
|
168
|
+
'sensitivity',
|
|
169
|
+
'validation',
|
|
170
|
+
'valueType',
|
|
171
|
+
];
|
|
172
|
+
if (Object.keys(declaration).some((key) => !allowedKeys.includes(key))) {
|
|
173
|
+
declarationError(pointer, 'contains a field outside the v1 schema');
|
|
174
|
+
}
|
|
175
|
+
if (Object.keys(declaration.cache).some((key) => !['maxStaleMs', 'refreshAfterMs', 'timeoutMs'].includes(key))) {
|
|
176
|
+
declarationError(`${pointer}/cache`, 'contains an unknown cache field');
|
|
177
|
+
}
|
|
178
|
+
if (declaration.schemaVersion !== CONFIGURATION_DECLARATION_SCHEMA_VERSION ||
|
|
179
|
+
!SAFE_KEY.test(declaration.key) ||
|
|
180
|
+
!isBoundedSafeReference(declaration.owner) ||
|
|
181
|
+
!CONFIGURATION_CLASSES.includes(declaration.class) ||
|
|
182
|
+
!CONFIGURATION_VALUE_TYPES.includes(declaration.valueType) ||
|
|
183
|
+
!CONFIGURATION_PROVIDERS.includes(declaration.provider) ||
|
|
184
|
+
!CONFIGURATION_APPROVAL_CLASSES.includes(declaration.approval) ||
|
|
185
|
+
!CONFIGURATION_MUTABILITY_CLASSES.includes(declaration.mutability) ||
|
|
186
|
+
!CONFIGURATION_SENSITIVITY_CLASSES.includes(declaration.sensitivity) ||
|
|
187
|
+
!CONFIGURATION_LOGGING_RULES.includes(declaration.logging) ||
|
|
188
|
+
declaration.description.trim().length === 0 ||
|
|
189
|
+
declaration.rollbackStrategy.trim().length === 0 ||
|
|
190
|
+
declaration.runbook.trim().length === 0 ||
|
|
191
|
+
!isIsoInstant(declaration.createdAt) ||
|
|
192
|
+
!isIsoInstant(declaration.reviewAt) ||
|
|
193
|
+
(declaration.expiresAt !== undefined &&
|
|
194
|
+
!isIsoInstant(declaration.expiresAt)) ||
|
|
195
|
+
Date.parse(declaration.reviewAt) <= Date.parse(declaration.createdAt) ||
|
|
196
|
+
(declaration.expiresAt !== undefined &&
|
|
197
|
+
Date.parse(declaration.expiresAt) <= Date.parse(declaration.createdAt)) ||
|
|
198
|
+
!Number.isInteger(declaration.cache.refreshAfterMs) ||
|
|
199
|
+
declaration.cache.refreshAfterMs < 0 ||
|
|
200
|
+
!Number.isInteger(declaration.cache.maxStaleMs) ||
|
|
201
|
+
declaration.cache.maxStaleMs < declaration.cache.refreshAfterMs ||
|
|
202
|
+
!Number.isInteger(declaration.cache.timeoutMs) ||
|
|
203
|
+
declaration.cache.timeoutMs <= 0 ||
|
|
204
|
+
declaration.requiredStages.length === 0 ||
|
|
205
|
+
declaration.requiredStages.some((stage) => !CONFIGURATION_STAGES.includes(stage)) ||
|
|
206
|
+
new Set(declaration.requiredStages).size !==
|
|
207
|
+
declaration.requiredStages.length ||
|
|
208
|
+
declaration.alarms.some((alarm) => !isBoundedSafeReference(alarm)) ||
|
|
209
|
+
new Set(declaration.alarms).size !== declaration.alarms.length ||
|
|
210
|
+
declaration.dependentOperations.some((operation) => !isBoundedSafeReference(operation)) ||
|
|
211
|
+
new Set(declaration.dependentOperations).size !==
|
|
212
|
+
declaration.dependentOperations.length ||
|
|
213
|
+
declaration.validation.type !== declaration.valueType ||
|
|
214
|
+
Object.keys(declaration.validation).some((key) => !(declaration.validation.type === 'boolean'
|
|
215
|
+
? ['type']
|
|
216
|
+
: declaration.validation.type === 'number'
|
|
217
|
+
? ['integer', 'maximum', 'minimum', 'type']
|
|
218
|
+
: declaration.validation.type === 'string'
|
|
219
|
+
? ['maximumLength', 'minimumLength', 'pattern', 'type']
|
|
220
|
+
: ['maximumBytes', 'type']).includes(key)) ||
|
|
221
|
+
(declaration.validation.type === 'number' &&
|
|
222
|
+
((declaration.validation.minimum !== undefined &&
|
|
223
|
+
!Number.isFinite(declaration.validation.minimum)) ||
|
|
224
|
+
(declaration.validation.maximum !== undefined &&
|
|
225
|
+
!Number.isFinite(declaration.validation.maximum)) ||
|
|
226
|
+
(declaration.validation.minimum !== undefined &&
|
|
227
|
+
declaration.validation.maximum !== undefined &&
|
|
228
|
+
declaration.validation.minimum > declaration.validation.maximum))) ||
|
|
229
|
+
(declaration.validation.type === 'string' &&
|
|
230
|
+
((declaration.validation.minimumLength !== undefined &&
|
|
231
|
+
(!Number.isInteger(declaration.validation.minimumLength) ||
|
|
232
|
+
declaration.validation.minimumLength < 1)) ||
|
|
233
|
+
(declaration.validation.maximumLength !== undefined &&
|
|
234
|
+
(!Number.isInteger(declaration.validation.maximumLength) ||
|
|
235
|
+
declaration.validation.maximumLength < 1)) ||
|
|
236
|
+
(declaration.validation.minimumLength !== undefined &&
|
|
237
|
+
declaration.validation.maximumLength !== undefined &&
|
|
238
|
+
declaration.validation.minimumLength >
|
|
239
|
+
declaration.validation.maximumLength) ||
|
|
240
|
+
(declaration.validation.pattern !== undefined &&
|
|
241
|
+
!isValidPattern(declaration.validation.pattern)))) ||
|
|
242
|
+
(declaration.validation.type === 'json' &&
|
|
243
|
+
(!Number.isInteger(declaration.validation.maximumBytes) ||
|
|
244
|
+
declaration.validation.maximumBytes <= 0))) {
|
|
245
|
+
declarationError(pointer, 'does not satisfy the v1 declaration contract');
|
|
246
|
+
}
|
|
247
|
+
if ((declaration.class === 'source' &&
|
|
248
|
+
(declaration.provider !== 'source' ||
|
|
249
|
+
declaration.approval !== 'reviewed-source' ||
|
|
250
|
+
!['artifact-rebuild', 'redeploy'].includes(declaration.mutability))) ||
|
|
251
|
+
(declaration.class === 'deployment' &&
|
|
252
|
+
(declaration.provider !== 'deployment' ||
|
|
253
|
+
declaration.approval !== 'protected-deployment' ||
|
|
254
|
+
declaration.mutability !== 'redeploy'))) {
|
|
255
|
+
declarationError(pointer, 'source and deployment classes must use their corresponding governed provider');
|
|
256
|
+
}
|
|
257
|
+
if (declaration.defaultValue !== undefined &&
|
|
258
|
+
(!isConfigurationValue(declaration.defaultValue) ||
|
|
259
|
+
!configurationValueMatchesDeclaration(declaration.defaultValue, declaration))) {
|
|
260
|
+
declarationError(`${pointer}/defaultValue`, 'does not match the declared value type');
|
|
261
|
+
}
|
|
262
|
+
if (declaration.safeFallback !== undefined &&
|
|
263
|
+
(!isConfigurationValue(declaration.safeFallback) ||
|
|
264
|
+
!configurationValueMatchesDeclaration(declaration.safeFallback, declaration))) {
|
|
265
|
+
declarationError(`${pointer}/safeFallback`, 'does not match the declared value type');
|
|
266
|
+
}
|
|
267
|
+
if (declaration.class === 'secret' || declaration.sensitivity === 'secret') {
|
|
268
|
+
if (declaration.class !== 'secret' ||
|
|
269
|
+
declaration.sensitivity !== 'secret' ||
|
|
270
|
+
declaration.provider !== 'secrets-manager' ||
|
|
271
|
+
declaration.logging !== 'never' ||
|
|
272
|
+
declaration.defaultValue !== undefined ||
|
|
273
|
+
declaration.safeFallback !== undefined) {
|
|
274
|
+
declarationError(pointer, 'secret declarations may contain metadata only and must use Secrets Manager');
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
const isDynamic = declaration.class === 'operational' ||
|
|
278
|
+
declaration.class === 'feature-rollout' ||
|
|
279
|
+
declaration.class === 'experiment';
|
|
280
|
+
if (isDynamic &&
|
|
281
|
+
(declaration.mutability !== 'dynamic' ||
|
|
282
|
+
!['local', 'appconfig'].includes(declaration.provider) ||
|
|
283
|
+
declaration.approval !== 'protected-runtime' ||
|
|
284
|
+
declaration.defaultValue === undefined ||
|
|
285
|
+
declaration.safeFallback === undefined ||
|
|
286
|
+
!configurationValuesEqual(declaration.defaultValue, declaration.safeFallback) ||
|
|
287
|
+
declaration.expiresAt === undefined ||
|
|
288
|
+
declaration.alarms.length === 0 ||
|
|
289
|
+
declaration.dependentOperations.length === 0 ||
|
|
290
|
+
((_a = declaration.removalPlan) === null || _a === void 0 ? void 0 : _a.trim().length) === 0)) {
|
|
291
|
+
declarationError(pointer, 'dynamic controls require one identical declared default and runtime safe fallback, a provider, expiry, and removal plan');
|
|
292
|
+
}
|
|
293
|
+
if (declaration.mutability === 'artifact-rebuild' &&
|
|
294
|
+
(declaration.sensitivity !== 'public' ||
|
|
295
|
+
declaration.class === 'secret' ||
|
|
296
|
+
declaration.provider !== 'source')) {
|
|
297
|
+
declarationError(pointer, 'build-time values must be public source configuration');
|
|
298
|
+
}
|
|
299
|
+
if (declaration.logging === 'public-value' &&
|
|
300
|
+
declaration.sensitivity !== 'public') {
|
|
301
|
+
declarationError(`${pointer}/logging`, 'only public values may be logged');
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
export function defineConfiguration(declarations) {
|
|
305
|
+
const seen = new Set();
|
|
306
|
+
declarations.forEach((declaration, index) => {
|
|
307
|
+
validateDeclaration(declaration, index);
|
|
308
|
+
if (seen.has(declaration.key)) {
|
|
309
|
+
throw new ConfigurationContractError('configuration-duplicate-key', `/declarations/${index}/key`, 'must be unique');
|
|
310
|
+
}
|
|
311
|
+
seen.add(declaration.key);
|
|
312
|
+
});
|
|
313
|
+
return [...declarations].sort((left, right) => compareStrings(left.key, right.key));
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Produces comparison evidence without retaining a value or an individually
|
|
317
|
+
* guessable value digest. The aggregate digest covers the active values and
|
|
318
|
+
* provider versions while the returned item list contains metadata only.
|
|
319
|
+
*/
|
|
320
|
+
export function createActiveConfigurationEvidence(declarationsInput, activeInput, stage) {
|
|
321
|
+
if (!CONFIGURATION_STAGES.includes(stage)) {
|
|
322
|
+
throw new ConfigurationContractError('configuration-declaration-invalid', '/stage', 'must be a supported stage');
|
|
323
|
+
}
|
|
324
|
+
const declarations = defineConfiguration(declarationsInput);
|
|
325
|
+
const declarationDigest = digest(declarations);
|
|
326
|
+
const declarationByKey = new Map(declarations.map((declaration) => [declaration.key, declaration]));
|
|
327
|
+
const activeByKey = new Map();
|
|
328
|
+
for (const [index, item] of activeInput.entries()) {
|
|
329
|
+
if (activeByKey.has(item.key)) {
|
|
330
|
+
throw new ConfigurationContractError('configuration-duplicate-key', `/active/${index}/key`, 'must be unique');
|
|
331
|
+
}
|
|
332
|
+
if (!declarationByKey.has(item.key)) {
|
|
333
|
+
throw new ConfigurationContractError('configuration-active-key-unknown', `/active/${index}/key`, 'is not declared');
|
|
334
|
+
}
|
|
335
|
+
activeByKey.set(item.key, item);
|
|
336
|
+
}
|
|
337
|
+
const digestMaterial = [];
|
|
338
|
+
const items = [];
|
|
339
|
+
for (const declaration of declarations) {
|
|
340
|
+
const active = activeByKey.get(declaration.key);
|
|
341
|
+
if (!active) {
|
|
342
|
+
if (declaration.requiredStages.includes(stage) &&
|
|
343
|
+
declaration.defaultValue === undefined) {
|
|
344
|
+
throw new ConfigurationContractError('configuration-active-key-missing', `/active/${declaration.key}`, 'is required for this stage');
|
|
345
|
+
}
|
|
346
|
+
if (declaration.requiredStages.includes(stage) &&
|
|
347
|
+
declaration.defaultValue !== undefined) {
|
|
348
|
+
items.push({
|
|
349
|
+
class: declaration.class,
|
|
350
|
+
key: declaration.key,
|
|
351
|
+
owner: declaration.owner,
|
|
352
|
+
provider: declaration.provider,
|
|
353
|
+
providerVersion: 'declaration-default',
|
|
354
|
+
status: 'defaulted',
|
|
355
|
+
});
|
|
356
|
+
digestMaterial.push({
|
|
357
|
+
key: declaration.key,
|
|
358
|
+
providerVersion: 'declaration-default',
|
|
359
|
+
status: 'defaulted',
|
|
360
|
+
value: declaration.defaultValue,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
continue;
|
|
364
|
+
}
|
|
365
|
+
if (!isBoundedSafeReference(active.providerVersion)) {
|
|
366
|
+
throw new ConfigurationContractError('configuration-active-value-invalid', `/active/${declaration.key}/providerVersion`, 'must be a bounded opaque reference');
|
|
367
|
+
}
|
|
368
|
+
if (!CONFIGURATION_PROVIDERS.includes(active.provider) ||
|
|
369
|
+
(active.provider !== declaration.provider &&
|
|
370
|
+
!(stage === 'development' && active.provider === 'local'))) {
|
|
371
|
+
throw new ConfigurationContractError('configuration-active-value-invalid', `/active/${declaration.key}/provider`, 'must identify the declared provider, except for the local development adapter');
|
|
372
|
+
}
|
|
373
|
+
if (declaration.class === 'secret') {
|
|
374
|
+
if (active.value !== undefined) {
|
|
375
|
+
throw new ConfigurationContractError('configuration-secret-value-present', `/active/${declaration.key}/value`, 'secret evidence accepts version metadata only');
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
else if (active.value === undefined ||
|
|
379
|
+
!configurationValueMatchesDeclaration(active.value, declaration)) {
|
|
380
|
+
throw new ConfigurationContractError('configuration-active-value-invalid', `/active/${declaration.key}/value`, 'does not match the declaration');
|
|
381
|
+
}
|
|
382
|
+
items.push({
|
|
383
|
+
class: declaration.class,
|
|
384
|
+
key: declaration.key,
|
|
385
|
+
owner: declaration.owner,
|
|
386
|
+
provider: active.provider,
|
|
387
|
+
providerVersion: active.providerVersion,
|
|
388
|
+
status: active.status,
|
|
389
|
+
});
|
|
390
|
+
digestMaterial.push({
|
|
391
|
+
key: declaration.key,
|
|
392
|
+
provider: active.provider,
|
|
393
|
+
providerVersion: active.providerVersion,
|
|
394
|
+
status: active.status,
|
|
395
|
+
value: declaration.class === 'secret'
|
|
396
|
+
? { secretVersion: active.providerVersion }
|
|
397
|
+
: active.value,
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
const activeDigest = digest({
|
|
401
|
+
declarationDigest,
|
|
402
|
+
stage,
|
|
403
|
+
values: digestMaterial,
|
|
404
|
+
});
|
|
405
|
+
if (!SHA256.test(activeDigest)) {
|
|
406
|
+
throw new ConfigurationContractError('configuration-active-value-invalid', '/activeDigest', 'could not produce a digest');
|
|
407
|
+
}
|
|
408
|
+
return {
|
|
409
|
+
activeDigest,
|
|
410
|
+
declarationDigest,
|
|
411
|
+
items,
|
|
412
|
+
kind: 'active-configuration-evidence',
|
|
413
|
+
schemaVersion: 1,
|
|
414
|
+
stage,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
export function validateActiveConfigurationEvidence(evidence, expectation = {}) {
|
|
418
|
+
if (evidence.kind !== 'active-configuration-evidence' ||
|
|
419
|
+
evidence.schemaVersion !== 1 ||
|
|
420
|
+
!CONFIGURATION_STAGES.includes(evidence.stage) ||
|
|
421
|
+
!SHA256.test(evidence.activeDigest) ||
|
|
422
|
+
!SHA256.test(evidence.declarationDigest) ||
|
|
423
|
+
!Array.isArray(evidence.items) ||
|
|
424
|
+
Object.keys(evidence).some((key) => ![
|
|
425
|
+
'activeDigest',
|
|
426
|
+
'declarationDigest',
|
|
427
|
+
'items',
|
|
428
|
+
'kind',
|
|
429
|
+
'schemaVersion',
|
|
430
|
+
'stage',
|
|
431
|
+
].includes(key)) ||
|
|
432
|
+
evidence.items.some((item, index) => {
|
|
433
|
+
var _a, _b;
|
|
434
|
+
return Object.keys(item).some((key) => ![
|
|
435
|
+
'class',
|
|
436
|
+
'key',
|
|
437
|
+
'owner',
|
|
438
|
+
'provider',
|
|
439
|
+
'providerVersion',
|
|
440
|
+
'status',
|
|
441
|
+
].includes(key)) ||
|
|
442
|
+
!CONFIGURATION_CLASSES.includes(item.class) ||
|
|
443
|
+
!SAFE_KEY.test(item.key) ||
|
|
444
|
+
!isBoundedSafeReference(item.owner) ||
|
|
445
|
+
!CONFIGURATION_PROVIDERS.includes(item.provider) ||
|
|
446
|
+
!isBoundedSafeReference(item.providerVersion) ||
|
|
447
|
+
!['active', 'defaulted'].includes(item.status) ||
|
|
448
|
+
(index > 0 && ((_b = (_a = evidence.items[index - 1]) === null || _a === void 0 ? void 0 : _a.key) !== null && _b !== void 0 ? _b : '') >= item.key);
|
|
449
|
+
})) {
|
|
450
|
+
throw new ConfigurationContractError('configuration-active-value-invalid', '/evidence', 'does not satisfy the active configuration evidence schema');
|
|
451
|
+
}
|
|
452
|
+
if ((expectation.activeDigest !== undefined &&
|
|
453
|
+
expectation.activeDigest !== evidence.activeDigest) ||
|
|
454
|
+
(expectation.declarationDigest !== undefined &&
|
|
455
|
+
expectation.declarationDigest !== evidence.declarationDigest) ||
|
|
456
|
+
(expectation.stage !== undefined && expectation.stage !== evidence.stage)) {
|
|
457
|
+
throw new ConfigurationContractError('configuration-active-drift', '/evidence', 'does not match the expected protected configuration identity');
|
|
458
|
+
}
|
|
459
|
+
return evidence;
|
|
460
|
+
}
|
|
461
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../packages/runtime/src/configuration/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/runtime/src/configuration/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
|