@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.
Files changed (218) hide show
  1. package/NOTICE +6 -0
  2. package/package.json +93 -3
  3. package/src/api-contract/artifacts.d.ts +67 -0
  4. package/src/api-contract/artifacts.js +349 -0
  5. package/src/api-contract/artifacts.js.map +1 -0
  6. package/src/api-contract/client.d.ts +79 -0
  7. package/src/api-contract/client.js +561 -0
  8. package/src/api-contract/client.js.map +1 -0
  9. package/src/api-contract/errors.d.ts +7 -0
  10. package/src/api-contract/errors.js +11 -0
  11. package/src/api-contract/errors.js.map +1 -0
  12. package/src/api-contract/index.d.ts +9 -0
  13. package/src/api-contract/index.js +10 -0
  14. package/src/api-contract/index.js.map +1 -0
  15. package/src/api-contract/operation.d.ts +118 -0
  16. package/src/api-contract/operation.js +609 -0
  17. package/src/api-contract/operation.js.map +1 -0
  18. package/src/api-contract/schema.d.ts +81 -0
  19. package/src/api-contract/schema.js +313 -0
  20. package/src/api-contract/schema.js.map +1 -0
  21. package/src/api-contract/server.d.ts +77 -0
  22. package/src/api-contract/server.js +466 -0
  23. package/src/api-contract/server.js.map +1 -0
  24. package/src/async-work/contract.d.ts +17 -0
  25. package/src/async-work/contract.js +105 -0
  26. package/src/async-work/contract.js.map +1 -0
  27. package/src/async-work/idempotency.d.ts +123 -0
  28. package/src/async-work/idempotency.js +167 -0
  29. package/src/async-work/idempotency.js.map +1 -0
  30. package/src/async-work/index.d.ts +8 -0
  31. package/src/async-work/index.js +9 -0
  32. package/src/async-work/index.js.map +1 -0
  33. package/src/async-work/provider.d.ts +90 -0
  34. package/src/async-work/provider.js +155 -0
  35. package/src/async-work/provider.js.map +1 -0
  36. package/src/async-work/recovery.d.ts +103 -0
  37. package/src/async-work/recovery.js +291 -0
  38. package/src/async-work/recovery.js.map +1 -0
  39. package/src/async-work/schedule.d.ts +117 -0
  40. package/src/async-work/schedule.js +279 -0
  41. package/src/async-work/schedule.js.map +1 -0
  42. package/src/async-work/sqs.d.ts +133 -0
  43. package/src/async-work/sqs.js +280 -0
  44. package/src/async-work/sqs.js.map +1 -0
  45. package/src/async-work/webhook.d.ts +60 -0
  46. package/src/async-work/webhook.js +178 -0
  47. package/src/async-work/webhook.js.map +1 -0
  48. package/src/async-work/workflow.d.ts +98 -0
  49. package/src/async-work/workflow.js +225 -0
  50. package/src/async-work/workflow.js.map +1 -0
  51. package/src/auth-backend.d.ts +12 -2
  52. package/src/auth-backend.js +30 -18
  53. package/src/auth-backend.js.map +1 -1
  54. package/src/authorization/admission.d.ts +30 -0
  55. package/src/authorization/admission.js +87 -0
  56. package/src/authorization/admission.js.map +1 -0
  57. package/src/authorization/approval.d.ts +99 -0
  58. package/src/authorization/approval.js +249 -0
  59. package/src/authorization/approval.js.map +1 -0
  60. package/src/authorization/audit.d.ts +35 -0
  61. package/src/authorization/audit.js +35 -0
  62. package/src/authorization/audit.js.map +1 -0
  63. package/src/authorization/delegation.d.ts +149 -0
  64. package/src/authorization/delegation.js +401 -0
  65. package/src/authorization/delegation.js.map +1 -0
  66. package/src/authorization/errors.d.ts +32 -0
  67. package/src/authorization/errors.js +153 -0
  68. package/src/authorization/errors.js.map +1 -0
  69. package/src/authorization/evaluator.d.ts +39 -0
  70. package/src/authorization/evaluator.js +199 -0
  71. package/src/authorization/evaluator.js.map +1 -0
  72. package/src/authorization/index.d.ts +14 -0
  73. package/src/authorization/index.js +15 -0
  74. package/src/authorization/index.js.map +1 -0
  75. package/src/authorization/machine-token.d.ts +87 -0
  76. package/src/authorization/machine-token.js +201 -0
  77. package/src/authorization/machine-token.js.map +1 -0
  78. package/src/authorization/machine.d.ts +32 -0
  79. package/src/authorization/machine.js +41 -0
  80. package/src/authorization/machine.js.map +1 -0
  81. package/src/authorization/model.d.ts +112 -0
  82. package/src/authorization/model.js +112 -0
  83. package/src/authorization/model.js.map +1 -0
  84. package/src/canonical-json.cjs +157 -0
  85. package/src/canonical-json.d.cts +26 -0
  86. package/src/canonical-json.d.ts +18 -0
  87. package/src/canonical-json.js +125 -0
  88. package/src/canonical-json.js.map +1 -0
  89. package/src/configuration/contract.d.ts +107 -0
  90. package/src/configuration/contract.js +461 -0
  91. package/src/configuration/contract.js.map +1 -0
  92. package/src/configuration/index.d.ts +3 -0
  93. package/src/configuration/index.js +4 -0
  94. package/src/configuration/index.js.map +1 -0
  95. package/src/configuration/provider.d.ts +59 -0
  96. package/src/configuration/provider.js +198 -0
  97. package/src/configuration/provider.js.map +1 -0
  98. package/src/configuration/rollout-evaluator.cjs +54 -0
  99. package/src/configuration/rollout-evaluator.d.cts +26 -0
  100. package/src/configuration/rollout-evaluator.d.ts +18 -0
  101. package/src/configuration/rollout-evaluator.js +38 -0
  102. package/src/configuration/rollout-evaluator.js.map +1 -0
  103. package/src/configuration/rollout-key.cjs +38 -0
  104. package/src/configuration/rollout-key.d.cts +14 -0
  105. package/src/configuration/rollout-key.d.ts +10 -0
  106. package/src/configuration/rollout-key.js +26 -0
  107. package/src/configuration/rollout-key.js.map +1 -0
  108. package/src/configuration/rollout.d.ts +60 -0
  109. package/src/configuration/rollout.js +42 -0
  110. package/src/configuration/rollout.js.map +1 -0
  111. package/src/data-lifecycle/contract.d.ts +33 -0
  112. package/src/data-lifecycle/contract.js +118 -0
  113. package/src/data-lifecycle/contract.js.map +1 -0
  114. package/src/data-lifecycle/event.d.ts +28 -0
  115. package/src/data-lifecycle/event.js +76 -0
  116. package/src/data-lifecycle/event.js.map +1 -0
  117. package/src/data-lifecycle/evidence.d.ts +65 -0
  118. package/src/data-lifecycle/evidence.js +162 -0
  119. package/src/data-lifecycle/evidence.js.map +1 -0
  120. package/src/data-lifecycle/holds.d.ts +29 -0
  121. package/src/data-lifecycle/holds.js +124 -0
  122. package/src/data-lifecycle/holds.js.map +1 -0
  123. package/src/data-lifecycle/index.d.ts +8 -0
  124. package/src/data-lifecycle/index.js +9 -0
  125. package/src/data-lifecycle/index.js.map +1 -0
  126. package/src/data-lifecycle/policy.d.ts +16 -0
  127. package/src/data-lifecycle/policy.js +79 -0
  128. package/src/data-lifecycle/policy.js.map +1 -0
  129. package/src/data-lifecycle/restore.d.ts +90 -0
  130. package/src/data-lifecycle/restore.js +336 -0
  131. package/src/data-lifecycle/restore.js.map +1 -0
  132. package/src/data-lifecycle/retention.d.ts +57 -0
  133. package/src/data-lifecycle/retention.js +232 -0
  134. package/src/data-lifecycle/retention.js.map +1 -0
  135. package/src/data-lifecycle/rights.d.ts +171 -0
  136. package/src/data-lifecycle/rights.js +533 -0
  137. package/src/data-lifecycle/rights.js.map +1 -0
  138. package/src/database.d.ts +36 -0
  139. package/src/database.js +119 -0
  140. package/src/database.js.map +1 -0
  141. package/src/deterministic-order.cjs +16 -0
  142. package/src/deterministic-order.d.cts +9 -0
  143. package/src/deterministic-order.d.ts +7 -0
  144. package/src/deterministic-order.js +10 -0
  145. package/src/deterministic-order.js.map +1 -0
  146. package/src/events.d.ts +28 -19
  147. package/src/events.js +171 -66
  148. package/src/events.js.map +1 -1
  149. package/src/index.d.ts +7 -1
  150. package/src/index.js +24 -0
  151. package/src/index.js.map +1 -1
  152. package/src/lambda.d.ts +8 -2
  153. package/src/lambda.js +100 -39
  154. package/src/lambda.js.map +1 -1
  155. package/src/logging.d.ts +95 -36
  156. package/src/logging.js +460 -62
  157. package/src/logging.js.map +1 -1
  158. package/src/observability.d.ts +80 -18
  159. package/src/observability.js +252 -61
  160. package/src/observability.js.map +1 -1
  161. package/src/performance/index.d.ts +1 -0
  162. package/src/performance/index.js +2 -0
  163. package/src/performance/index.js.map +1 -0
  164. package/src/performance/protected-load-endpoint.d.ts +140 -0
  165. package/src/performance/protected-load-endpoint.js +462 -0
  166. package/src/performance/protected-load-endpoint.js.map +1 -0
  167. package/src/rds-global-ca-bundle.d.ts +1 -0
  168. package/src/rds-global-ca-bundle.js +2742 -0
  169. package/src/rds-global-ca-bundle.js.map +1 -0
  170. package/src/reliability/burn.d.ts +39 -0
  171. package/src/reliability/burn.js +102 -0
  172. package/src/reliability/burn.js.map +1 -0
  173. package/src/reliability/contract.d.ts +5 -0
  174. package/src/reliability/contract.js +317 -0
  175. package/src/reliability/contract.js.map +1 -0
  176. package/src/reliability/incident.d.ts +16 -0
  177. package/src/reliability/incident.js +562 -0
  178. package/src/reliability/incident.js.map +1 -0
  179. package/src/reliability/index.d.ts +5 -0
  180. package/src/reliability/index.js +6 -0
  181. package/src/reliability/index.js.map +1 -0
  182. package/src/reliability/model.d.ts +191 -0
  183. package/src/reliability/model.fixtures.d.ts +2 -0
  184. package/src/reliability/model.fixtures.js +57 -0
  185. package/src/reliability/model.fixtures.js.map +1 -0
  186. package/src/reliability/model.js +2 -0
  187. package/src/reliability/model.js.map +1 -0
  188. package/src/reliability/slo.d.ts +9 -0
  189. package/src/reliability/slo.js +74 -0
  190. package/src/reliability/slo.js.map +1 -0
  191. package/src/request-context.d.ts +57 -15
  192. package/src/request-context.js +116 -36
  193. package/src/request-context.js.map +1 -1
  194. package/src/safe-reference.cjs +57 -0
  195. package/src/safe-reference.d.cts +25 -0
  196. package/src/safe-reference.d.ts +11 -0
  197. package/src/safe-reference.js +46 -0
  198. package/src/safe-reference.js.map +1 -0
  199. package/src/secrets/contract.d.ts +99 -0
  200. package/src/secrets/contract.js +238 -0
  201. package/src/secrets/contract.js.map +1 -0
  202. package/src/secrets/index.d.ts +4 -0
  203. package/src/secrets/index.js +5 -0
  204. package/src/secrets/index.js.map +1 -0
  205. package/src/secrets/observability.d.ts +14 -0
  206. package/src/secrets/observability.js +100 -0
  207. package/src/secrets/observability.js.map +1 -0
  208. package/src/secrets/personal.d.ts +48 -0
  209. package/src/secrets/personal.js +332 -0
  210. package/src/secrets/personal.js.map +1 -0
  211. package/src/secrets/resolver.d.ts +125 -0
  212. package/src/secrets/resolver.js +602 -0
  213. package/src/secrets/resolver.js.map +1 -0
  214. package/src/secrets/sensitive-patterns.cjs +84 -0
  215. package/src/secrets/sensitive-patterns.d.cts +62 -0
  216. package/src/secrets/sensitive-patterns.d.ts +40 -0
  217. package/src/secrets/sensitive-patterns.js +60 -0
  218. 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,3 @@
1
+ export * from './contract.js';
2
+ export * from './provider.js';
3
+ export * from './rollout.js';
@@ -0,0 +1,4 @@
1
+ export * from './contract.js';
2
+ export * from './provider.js';
3
+ export * from './rollout.js';
4
+ //# sourceMappingURL=index.js.map
@@ -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"}