@cloud-copilot/iam-simulate 0.1.148 → 0.1.149

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 (49) hide show
  1. package/dist/cjs/condition/condition.d.ts.map +1 -1
  2. package/dist/cjs/condition/condition.js +213 -19
  3. package/dist/cjs/condition/condition.js.map +1 -1
  4. package/dist/cjs/context_keys/discoveryContextKeyConstraints.d.ts +103 -0
  5. package/dist/cjs/context_keys/discoveryContextKeyConstraints.d.ts.map +1 -0
  6. package/dist/cjs/context_keys/discoveryContextKeyConstraints.js +153 -0
  7. package/dist/cjs/context_keys/discoveryContextKeyConstraints.js.map +1 -0
  8. package/dist/cjs/core_engine/CoreSimulatorEngine.d.ts +4 -4
  9. package/dist/cjs/core_engine/CoreSimulatorEngine.d.ts.map +1 -1
  10. package/dist/cjs/index.d.ts +1 -0
  11. package/dist/cjs/index.d.ts.map +1 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/simulation_engine/simulationEngine.js +5 -5
  14. package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -1
  15. package/dist/cjs/simulation_engine/simulationOptions.d.ts +16 -1
  16. package/dist/cjs/simulation_engine/simulationOptions.d.ts.map +1 -1
  17. package/dist/cjs/simulation_engine/unsafeSimulationEngine.js +2 -2
  18. package/dist/cjs/simulation_engine/unsafeSimulationEngine.js.map +1 -1
  19. package/dist/esm/condition/condition.d.ts.map +1 -1
  20. package/dist/esm/condition/condition.js +213 -19
  21. package/dist/esm/condition/condition.js.map +1 -1
  22. package/dist/esm/context_keys/discoveryContextKeyConstraints.d.ts +103 -0
  23. package/dist/esm/context_keys/discoveryContextKeyConstraints.d.ts.map +1 -0
  24. package/dist/esm/context_keys/discoveryContextKeyConstraints.js +149 -0
  25. package/dist/esm/context_keys/discoveryContextKeyConstraints.js.map +1 -0
  26. package/dist/esm/core_engine/CoreSimulatorEngine.d.ts +4 -4
  27. package/dist/esm/core_engine/CoreSimulatorEngine.d.ts.map +1 -1
  28. package/dist/esm/core_engine/CoreSimulatorEngine.js +1 -1
  29. package/dist/esm/core_engine/CoreSimulatorEngine.js.map +1 -1
  30. package/dist/esm/index.d.ts +1 -0
  31. package/dist/esm/index.d.ts.map +1 -1
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/simulation_engine/simulationEngine.js +5 -5
  34. package/dist/esm/simulation_engine/simulationEngine.js.map +1 -1
  35. package/dist/esm/simulation_engine/simulationOptions.d.ts +16 -1
  36. package/dist/esm/simulation_engine/simulationOptions.d.ts.map +1 -1
  37. package/dist/esm/simulation_engine/simulationOptions.js +1 -0
  38. package/dist/esm/simulation_engine/simulationOptions.js.map +1 -1
  39. package/dist/esm/simulation_engine/unsafeSimulationEngine.js +2 -2
  40. package/dist/esm/simulation_engine/unsafeSimulationEngine.js.map +1 -1
  41. package/package.json +1 -1
  42. package/dist/cjs/context_keys/strictContextKeys.d.ts +0 -30
  43. package/dist/cjs/context_keys/strictContextKeys.d.ts.map +0 -1
  44. package/dist/cjs/context_keys/strictContextKeys.js +0 -62
  45. package/dist/cjs/context_keys/strictContextKeys.js.map +0 -1
  46. package/dist/esm/context_keys/strictContextKeys.d.ts +0 -30
  47. package/dist/esm/context_keys/strictContextKeys.d.ts.map +0 -1
  48. package/dist/esm/context_keys/strictContextKeys.js +0 -57
  49. package/dist/esm/context_keys/strictContextKeys.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AA8BvD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,CAAA;AAyCtD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,SAAS,EAAE,EACvB,aAAa,EAAE,OAAO,GAAG,MAAM,EAC/B,oBAAoB,EAAE,oBAAoB,GACzC;IACD,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;IAC7C,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAA;CAChC,CA2CA;AAsBD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,oBAAoB,GACzC,gBAAgB,CAyBlB"}
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAA;AA8BvD,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,CAAA;AA8FtD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,SAAS,EAAE,EACvB,aAAa,EAAE,OAAO,GAAG,MAAM,EAC/B,oBAAoB,EAAE,oBAAoB,GACzC;IACD,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;IAC7C,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAA;CAChC,CA2DA;AAsBD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,oBAAoB,GACzC,gBAAgB,CAElB"}
@@ -69,37 +69,47 @@ for (const operator of allOperators) {
69
69
  * @returns Match if all conditions match, NoMatch if any do not. Also returns all the details of the evaluation
70
70
  */
71
71
  function requestMatchesConditions(request, conditions, statementType, simulationParameters) {
72
- const results = conditions.map((condition) => ({
73
- condition,
74
- explain: singleConditionMatchesRequest(request, condition, simulationParameters)
75
- }));
72
+ const normalizedStatementType = statementType.toLowerCase();
73
+ const results = conditions.map((condition) => {
74
+ const evaluation = evaluateSingleCondition(request, condition, simulationParameters);
75
+ return {
76
+ condition,
77
+ explain: evaluation.explain,
78
+ knowledge: evaluation.knowledge
79
+ };
80
+ });
76
81
  const isIgnored = (c) => {
77
82
  if (simulationParameters.simulationMode !== 'Discovery') {
78
83
  return false;
79
84
  }
80
- if (simulationParameters.strictConditionKeys.has(c.condition.conditionKey().toLowerCase())) {
85
+ if (c.knowledge.conditionResult !== 'known') {
86
+ if (normalizedStatementType === 'allow') {
87
+ return !c.explain.matches;
88
+ }
89
+ if (normalizedStatementType === 'deny') {
90
+ return true;
91
+ }
92
+ }
93
+ const constraint = simulationParameters.discoveryContextKeyConstraints.constraintFor(c.condition.conditionKey());
94
+ if (constraint.explicitlyConfigured) {
81
95
  return false;
82
96
  }
83
97
  // In Allows we ignore conditions that do not match
84
- if (statementType.toLowerCase() === 'allow') {
98
+ if (normalizedStatementType === 'allow') {
85
99
  return !c.explain.matches;
86
100
  }
87
101
  // In Denies we ignore conditions that do match
88
- if (statementType.toLowerCase() === 'deny') {
102
+ if (normalizedStatementType === 'deny') {
89
103
  return c.explain.matches;
90
104
  }
91
105
  throw new Error(`Unexpected condition explain result in discovery mode, statementType: ${statementType}`);
92
106
  };
107
+ const ignored = results.filter((r) => isIgnored(r));
93
108
  const nonMatch = results.filter((r) => !isIgnored(r)).some((result) => !result.explain.matches);
94
- const ignoredMatches = results
95
- .filter((r) => isIgnored(r))
96
- .some((result) => result.explain.matches);
109
+ const ignoredPossibleDeny = normalizedStatementType === 'deny' &&
110
+ ignored.some((result) => result.knowledge.conditionResult !== 'known' || result.explain.matches);
97
111
  return {
98
- //If there is a non-match this is not ignored, it's a NoMatch
99
- //If there are matches that are ignored, it is also a NoMatch,
100
- // for instance in a Deny statement it may match a condition that is ignored,
101
- // but we still want a no match so we can show under what conditions it would be allowed
102
- matches: nonMatch || ignoredMatches ? 'NoMatch' : 'Match',
112
+ matches: nonMatch || ignoredPossibleDeny ? 'NoMatch' : 'Match',
103
113
  details: {
104
114
  conditions: results.length == 0 ? undefined : results.map((r) => r.explain)
105
115
  },
@@ -130,27 +140,211 @@ function ignoredConditions(conditions, isIgnored) {
130
140
  * @returns the result of evaluating the condition
131
141
  */
132
142
  function singleConditionMatchesRequest(request, condition, simulationParameters) {
143
+ return evaluateSingleCondition(request, condition, simulationParameters).explain;
144
+ }
145
+ /**
146
+ * Evaluates a single condition and records internal Discovery knowledge.
147
+ *
148
+ * @param request the request to test
149
+ * @param condition the condition to evaluate
150
+ * @param simulationParameters the simulation mode and Discovery constraints
151
+ * @returns the condition explain output plus internal Discovery knowledge
152
+ */
153
+ function evaluateSingleCondition(request, condition, simulationParameters) {
133
154
  const key = condition.conditionKey();
134
155
  const baseOperation = baseOperations[condition.operation().baseOperator().toLowerCase()];
135
156
  const keyExists = request.contextKeyExists(key);
136
157
  const keyValue = keyExists ? request.getContextKeyValue(key) : undefined;
158
+ const contextKeyKnowledge = discoveryKnowledgeForConditionKey(simulationParameters, condition.conditionKey(), keyExists);
137
159
  if (condition.operation().value().toLowerCase() == 'null' ||
138
160
  condition.operation().baseOperator()?.toLowerCase() == 'null') {
139
- return testNull(condition, keyExists);
161
+ return {
162
+ explain: testNull(condition, keyExists),
163
+ knowledge: conditionKnowledgeForPresenceOnly(contextKeyKnowledge)
164
+ };
140
165
  }
141
166
  if (condition.operation().setOperator()) {
142
167
  const setOperator = condition.operation().setOperator();
143
168
  if (setOperator === 'ForAnyValue') {
144
- return forAnyValueMatch(request, condition, keyValue, baseOperation);
169
+ return {
170
+ explain: forAnyValueMatch(request, condition, keyValue, baseOperation),
171
+ knowledge: conditionKnowledgeForValueEvaluation(request, condition, simulationParameters, contextKeyKnowledge)
172
+ };
145
173
  }
146
174
  else if (setOperator === 'ForAllValues') {
147
- return forAllValuesMatch(request, condition, keyValue, baseOperation);
175
+ return {
176
+ explain: forAllValuesMatch(request, condition, keyValue, baseOperation),
177
+ knowledge: conditionKnowledgeForValueEvaluation(request, condition, simulationParameters, contextKeyKnowledge)
178
+ };
148
179
  }
149
180
  else {
150
181
  throw new Error(`Unknown set operator: ${setOperator}`);
151
182
  }
152
183
  }
153
- return singleValueMatch(request, condition, baseOperation, keyValue);
184
+ return {
185
+ explain: singleValueMatch(request, condition, baseOperation, keyValue),
186
+ knowledge: conditionKnowledgeForValueEvaluation(request, condition, simulationParameters, contextKeyKnowledge)
187
+ };
188
+ }
189
+ /**
190
+ * Determines what request context-key facts are known for a condition key.
191
+ *
192
+ * This function intentionally does not know about operators such as `Null`,
193
+ * `IfExists`, `ForAnyValue`, or `ForAllValues`. It only answers whether the
194
+ * request context definitively establishes key presence and value. Operator
195
+ * evaluators decide how those facts affect the condition result.
196
+ *
197
+ * @param simulationParameters the simulation mode and Discovery constraints
198
+ * @param key the condition context key to classify
199
+ * @param keyExists whether the condition key exists in the request context
200
+ * @returns Discovery knowledge about the condition's context key
201
+ */
202
+ function discoveryKnowledgeForConditionKey(simulationParameters, key, keyExists) {
203
+ if (simulationParameters.simulationMode !== 'Discovery') {
204
+ return requestContextKeyKnowledge(keyExists);
205
+ }
206
+ const constraint = simulationParameters.discoveryContextKeyConstraints.constraintFor(key);
207
+ if (!constraint.explicitlyConfigured) {
208
+ return requestContextKeyKnowledge(keyExists);
209
+ }
210
+ const contextKeyPresence = constraint.presenceIsKnown
211
+ ? 'known'
212
+ : 'unknown';
213
+ return {
214
+ contextKeyPresence,
215
+ contextKeyValue: contextValueKnowledge(keyExists, contextKeyPresence, constraint.valueIsKnown)
216
+ };
217
+ }
218
+ /**
219
+ * Derives condition-result knowledge for operators that only depend on key presence.
220
+ *
221
+ * `Null` conditions are evaluated by `testNull`; this helper only records that
222
+ * their result is known exactly when key presence is known.
223
+ *
224
+ * @param contextKeyKnowledge known facts about the condition context key
225
+ * @returns condition knowledge for a presence-only operator
226
+ */
227
+ function conditionKnowledgeForPresenceOnly(contextKeyKnowledge) {
228
+ return {
229
+ conditionResult: contextKeyKnowledge.contextKeyPresence,
230
+ ...contextKeyKnowledge
231
+ };
232
+ }
233
+ /**
234
+ * Derives condition-result knowledge for operators whose result may depend on value.
235
+ *
236
+ * Single-value, `IfExists`, `ForAnyValue`, and `ForAllValues` evaluators handle
237
+ * their own missing-key semantics. Once those evaluators run, the result is
238
+ * known when key presence is known and any required concrete values or policy
239
+ * variable references are known.
240
+ *
241
+ * @param request the request being evaluated
242
+ * @param condition the condition whose policy values may contain variables
243
+ * @param simulationParameters the simulation mode and Discovery constraints
244
+ * @param contextKeyKnowledge known facts about the condition context key
245
+ * @returns condition knowledge for a value-capable operator
246
+ */
247
+ function conditionKnowledgeForValueEvaluation(request, condition, simulationParameters, contextKeyKnowledge) {
248
+ if (contextKeyKnowledge.contextKeyPresence === 'unknown') {
249
+ return { conditionResult: 'unknown', ...contextKeyKnowledge };
250
+ }
251
+ if (contextKeyKnowledge.contextKeyValue === 'unknown') {
252
+ return { conditionResult: 'unknown', ...contextKeyKnowledge };
253
+ }
254
+ if (conditionValuesReferenceUnknownValue(request, condition, simulationParameters)) {
255
+ return { conditionResult: 'unknown', ...contextKeyKnowledge };
256
+ }
257
+ return { conditionResult: 'known', ...contextKeyKnowledge };
258
+ }
259
+ /**
260
+ * Builds context-key knowledge for normal request-context semantics.
261
+ *
262
+ * Outside explicitly configured Discovery constraints, the request context is
263
+ * authoritative: key presence is known, and the value is known when present.
264
+ *
265
+ * @param keyExists whether the condition key exists in the request context
266
+ * @returns context-key knowledge for ordinary request-context evaluation
267
+ */
268
+ function requestContextKeyKnowledge(keyExists) {
269
+ return {
270
+ contextKeyPresence: 'known',
271
+ contextKeyValue: keyExists ? 'known' : 'not-applicable'
272
+ };
273
+ }
274
+ /**
275
+ * Determines the value-knowledge dimension for a condition key.
276
+ *
277
+ * If presence is unknown, the value is also unknown because the key might not be
278
+ * present. If presence is known and the key is absent, the value is not
279
+ * applicable rather than unknown.
280
+ *
281
+ * @param keyExists whether the condition key exists in the request context
282
+ * @param contextKeyPresence whether the condition key's presence is known
283
+ * @param configuredValueIsKnown whether constraints say a present value is authoritative
284
+ * @returns the value-knowledge dimension for the condition key
285
+ */
286
+ function contextValueKnowledge(keyExists, contextKeyPresence, configuredValueIsKnown) {
287
+ // If the presence is unknown, the value must be unknown by definition
288
+ if (contextKeyPresence === 'unknown') {
289
+ return 'unknown';
290
+ }
291
+ // If the presence is known but the key does not exist, the value doesn't matter
292
+ if (!keyExists) {
293
+ return 'not-applicable';
294
+ }
295
+ // If the presence is known and the key exists, use discovery constraint
296
+ return configuredValueIsKnown ? 'known' : 'unknown';
297
+ }
298
+ /**
299
+ * Checks whether any policy condition value references an unknown context value.
300
+ *
301
+ * For example, a known `s3:prefix` condition can still be unknown if the policy
302
+ * value is `${aws:SourceAccount}` and `aws:SourceAccount` has unknown value in
303
+ * Discovery mode.
304
+ *
305
+ * @param request the request being evaluated
306
+ * @param condition the condition whose policy values may contain variables
307
+ * @param simulationParameters the simulation mode and Discovery constraints
308
+ * @returns true if any referenced context variable has unknown presence or value
309
+ */
310
+ function conditionValuesReferenceUnknownValue(request, condition, simulationParameters) {
311
+ for (const value of condition.conditionValues()) {
312
+ for (const variable of contextVariablesInString(value)) {
313
+ const constraint = simulationParameters.discoveryContextKeyConstraints.constraintFor(variable);
314
+ if (!constraint.explicitlyConfigured) {
315
+ continue;
316
+ }
317
+ if (!request.contextKeyExists(variable)) {
318
+ if (!constraint.presenceIsKnown) {
319
+ return true;
320
+ }
321
+ continue;
322
+ }
323
+ if (!constraint.valueIsKnown) {
324
+ return true;
325
+ }
326
+ }
327
+ }
328
+ return false;
329
+ }
330
+ /**
331
+ * Extracts context variable names referenced by `${...}` policy variables.
332
+ *
333
+ * Special IAM escapes such as `${*}`, `${?}`, and `${$}` are ignored because
334
+ * they are literal substitutions rather than request context variables.
335
+ *
336
+ * @param value the raw policy value to inspect
337
+ * @returns context variable names referenced by the policy value
338
+ */
339
+ function contextVariablesInString(value) {
340
+ const variables = [];
341
+ for (const match of value.matchAll(/\$\{(.*?)\}/g)) {
342
+ const variable = match[1]?.split(', ')[0]?.trim();
343
+ if (variable && variable !== '*' && variable !== '?' && variable !== '$') {
344
+ variables.push(variable);
345
+ }
346
+ }
347
+ return variables;
154
348
  }
155
349
  /**
156
350
  * Tests a condition with a null operator
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/condition/condition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /** Shared key or pattern field for Discovery context-key constraints. */
2
+ interface DiscoveryContextKeyConstraintKey {
3
+ /**
4
+ * Context key name or slash-delimited regular expression pattern.
5
+ *
6
+ * Literal names are matched case-insensitively. Regex-style names such as
7
+ * a ResourceTag-prefix pattern are also matched case-insensitively.
8
+ */
9
+ keyName: string;
10
+ }
11
+ /**
12
+ * Discovery knowledge for a key whose presence and concrete value are both known.
13
+ */
14
+ interface KnownPresenceKnownValueConstraint {
15
+ /** Presence/absence in the request context is authoritative. */
16
+ presenceIsKnown: true;
17
+ /** The concrete value in the request context is authoritative when the key is present. */
18
+ valueIsKnown: true;
19
+ }
20
+ /**
21
+ * Discovery knowledge for a key whose presence is known but concrete value is not.
22
+ */
23
+ interface KnownPresenceUnknownValueConstraint {
24
+ /** Presence/absence in the request context is authoritative. */
25
+ presenceIsKnown: true;
26
+ /** The concrete value in the request context is not authoritative. */
27
+ valueIsKnown: false;
28
+ }
29
+ /**
30
+ * Discovery knowledge for a key whose presence is unknown.
31
+ *
32
+ * Value knowledge must also be unknown because a value cannot be authoritative
33
+ * when the key might not exist.
34
+ */
35
+ interface UnknownPresenceConstraint {
36
+ /** Presence/absence in the request context is not authoritative. */
37
+ presenceIsKnown: false;
38
+ /** Must be false because value knowledge requires known presence. */
39
+ valueIsKnown: false;
40
+ }
41
+ /**
42
+ * Caller-provided Discovery-mode knowledge about a single context key or key pattern.
43
+ *
44
+ * These constraints do not add context keys to the request. The request context
45
+ * still determines whether a key is actually present. A constraint only tells
46
+ * Discovery mode whether it can trust that presence and/or the concrete value.
47
+ *
48
+ * The discriminated union intentionally makes `{ presenceIsKnown: false,
49
+ * valueIsKnown: true }` unrepresentable in TypeScript.
50
+ */
51
+ export type DiscoveryContextKeyConstraint = DiscoveryContextKeyConstraintKey & (KnownPresenceKnownValueConstraint | KnownPresenceUnknownValueConstraint | UnknownPresenceConstraint);
52
+ /**
53
+ * Resolved Discovery-mode knowledge for a specific context key lookup.
54
+ *
55
+ * This is the effective result after merging all matching literal, prefix, and
56
+ * regex constraints. If no constraint matches, both booleans are false and
57
+ * `explicitlyConfigured` is false, which tells condition evaluation to preserve
58
+ * the current unconstrained Discovery behavior for that key.
59
+ *
60
+ * The discriminated union intentionally makes `{ presenceIsKnown: false,
61
+ * valueIsKnown: true }` unrepresentable in TypeScript.
62
+ */
63
+ export type EffectiveDiscoveryContextKeyConstraint = (KnownPresenceKnownValueConstraint | KnownPresenceUnknownValueConstraint | UnknownPresenceConstraint) & {
64
+ /** Whether at least one caller-provided constraint matched the looked-up key. */
65
+ explicitlyConfigured: boolean;
66
+ };
67
+ /**
68
+ * Discovery-only context key knowledge constraints.
69
+ *
70
+ * The request context still determines whether a key is present. These constraints
71
+ * describe whether Discovery mode can trust that presence and/or concrete value.
72
+ */
73
+ export declare class DiscoveryContextKeyConstraints {
74
+ private literalConstraints;
75
+ private prefixConstraintsByService;
76
+ private regexConstraints;
77
+ private resolvedCache;
78
+ /**
79
+ * Create Discovery context key constraints.
80
+ *
81
+ * @param constraints the constraint definitions to index
82
+ */
83
+ constructor(constraints?: DiscoveryContextKeyConstraint[]);
84
+ /**
85
+ * Get the effective Discovery constraint for a context key.
86
+ *
87
+ * @param key the context key to look up
88
+ * @returns the merged matching constraint, or an unconstrained result
89
+ */
90
+ constraintFor(key: string): EffectiveDiscoveryContextKeyConstraint;
91
+ /**
92
+ * Adds a caller-provided constraint to the appropriate lookup index.
93
+ *
94
+ * Literal keys are stored in a case-insensitive map. Simple prefix-like regex
95
+ * patterns are stored in prefix buckets, and complex regex patterns fall back
96
+ * to the regex list.
97
+ *
98
+ * @param constraint the caller-provided constraint to index
99
+ */
100
+ private addConstraint;
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=discoveryContextKeyConstraints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discoveryContextKeyConstraints.d.ts","sourceRoot":"","sources":["../../../src/context_keys/discoveryContextKeyConstraints.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,UAAU,gCAAgC;IACxC;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,UAAU,iCAAiC;IACzC,gEAAgE;IAChE,eAAe,EAAE,IAAI,CAAA;IAErB,0FAA0F;IAC1F,YAAY,EAAE,IAAI,CAAA;CACnB;AAED;;GAEG;AACH,UAAU,mCAAmC;IAC3C,gEAAgE;IAChE,eAAe,EAAE,IAAI,CAAA;IAErB,sEAAsE;IACtE,YAAY,EAAE,KAAK,CAAA;CACpB;AAED;;;;;GAKG;AACH,UAAU,yBAAyB;IACjC,oEAAoE;IACpE,eAAe,EAAE,KAAK,CAAA;IAEtB,qEAAqE;IACrE,YAAY,EAAE,KAAK,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,6BAA6B,GAAG,gCAAgC,GAC1E,CACI,iCAAiC,GACjC,mCAAmC,GACnC,yBAAyB,CAC5B,CAAA;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sCAAsC,GAAG,CACjD,iCAAiC,GACjC,mCAAmC,GACnC,yBAAyB,CAC5B,GAAG;IACF,iFAAiF;IACjF,oBAAoB,EAAE,OAAO,CAAA;CAC9B,CAAA;AAuCD;;;;;GAKG;AACH,qBAAa,8BAA8B;IACzC,OAAO,CAAC,kBAAkB,CAA2C;IACrE,OAAO,CAAC,0BAA0B,CAA6C;IAC/E,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,aAAa,CAAiE;IAEtF;;;;OAIG;gBACS,WAAW,GAAE,6BAA6B,EAAO;IAgB7D;;;;;OAKG;IACI,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,sCAAsC;IAuCzE;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAoBtB"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiscoveryContextKeyConstraints = void 0;
4
+ const unconstrained = {
5
+ presenceIsKnown: false,
6
+ valueIsKnown: false,
7
+ explicitlyConfigured: false
8
+ };
9
+ /**
10
+ * Discovery-only context key knowledge constraints.
11
+ *
12
+ * The request context still determines whether a key is present. These constraints
13
+ * describe whether Discovery mode can trust that presence and/or concrete value.
14
+ */
15
+ class DiscoveryContextKeyConstraints {
16
+ literalConstraints = new Map();
17
+ prefixConstraintsByService = new Map();
18
+ regexConstraints = [];
19
+ resolvedCache = new Map();
20
+ /**
21
+ * Create Discovery context key constraints.
22
+ *
23
+ * @param constraints the constraint definitions to index
24
+ */
25
+ constructor(constraints = []) {
26
+ for (const constraint of constraints) {
27
+ const runtimeConstraint = constraint;
28
+ if (!runtimeConstraint.presenceIsKnown && runtimeConstraint.valueIsKnown) {
29
+ throw new Error(`Invalid discovery context key constraint for ${runtimeConstraint.keyName}: valueIsKnown requires presenceIsKnown`);
30
+ }
31
+ this.addConstraint(constraint);
32
+ }
33
+ }
34
+ /**
35
+ * Get the effective Discovery constraint for a context key.
36
+ *
37
+ * @param key the context key to look up
38
+ * @returns the merged matching constraint, or an unconstrained result
39
+ */
40
+ constraintFor(key) {
41
+ const lowerKey = key.toLowerCase();
42
+ const cached = this.resolvedCache.get(lowerKey);
43
+ if (cached) {
44
+ return cached;
45
+ }
46
+ let result = { ...unconstrained };
47
+ const merge = (constraint) => {
48
+ result = effectiveConstraint(result.presenceIsKnown || constraint.presenceIsKnown, result.valueIsKnown || constraint.valueIsKnown, true);
49
+ };
50
+ const literal = this.literalConstraints.get(lowerKey);
51
+ if (literal) {
52
+ merge(literal);
53
+ }
54
+ const service = lowerKey.split(':')[0];
55
+ const prefixConstraints = this.prefixConstraintsByService.get(service) ?? [];
56
+ for (const constraint of prefixConstraints) {
57
+ if (lowerKey.startsWith(constraint.prefixLower)) {
58
+ merge(constraint);
59
+ }
60
+ }
61
+ for (const constraint of this.regexConstraints) {
62
+ if (constraint.pattern.test(key)) {
63
+ merge(constraint);
64
+ }
65
+ }
66
+ this.resolvedCache.set(lowerKey, result);
67
+ return result;
68
+ }
69
+ /**
70
+ * Adds a caller-provided constraint to the appropriate lookup index.
71
+ *
72
+ * Literal keys are stored in a case-insensitive map. Simple prefix-like regex
73
+ * patterns are stored in prefix buckets, and complex regex patterns fall back
74
+ * to the regex list.
75
+ *
76
+ * @param constraint the caller-provided constraint to index
77
+ */
78
+ addConstraint(constraint) {
79
+ const stored = storedConstraint(constraint.presenceIsKnown, constraint.valueIsKnown);
80
+ if (constraint.keyName.startsWith('/') && constraint.keyName.endsWith('/')) {
81
+ const patternText = constraint.keyName.slice(1, -1);
82
+ const prefix = regexPrefix(patternText);
83
+ if (prefix) {
84
+ const service = prefix.split(':')[0];
85
+ const constraints = this.prefixConstraintsByService.get(service) ?? [];
86
+ constraints.push({ ...stored, prefixLower: prefix });
87
+ this.prefixConstraintsByService.set(service, constraints);
88
+ }
89
+ else {
90
+ this.regexConstraints.push({ ...stored, pattern: new RegExp(patternText, 'i') });
91
+ }
92
+ }
93
+ else {
94
+ const key = constraint.keyName.toLowerCase();
95
+ const existing = this.literalConstraints.get(key);
96
+ this.literalConstraints.set(key, existing ? mergeStored(existing, stored) : stored);
97
+ }
98
+ }
99
+ }
100
+ exports.DiscoveryContextKeyConstraints = DiscoveryContextKeyConstraints;
101
+ /**
102
+ * Merges two stored constraints with true-winning OR semantics.
103
+ *
104
+ * @param a the first stored constraint
105
+ * @param b the second stored constraint
106
+ * @returns the merged constraint
107
+ */
108
+ function mergeStored(a, b) {
109
+ return storedConstraint(a.presenceIsKnown || b.presenceIsKnown, a.valueIsKnown || b.valueIsKnown);
110
+ }
111
+ /**
112
+ * Builds a stored constraint while preserving the valid-state union.
113
+ *
114
+ * @param presenceIsKnown whether presence/absence is authoritative
115
+ * @param valueIsKnown whether the concrete value is authoritative
116
+ * @returns a stored constraint in one of the valid knowledge states
117
+ */
118
+ function storedConstraint(presenceIsKnown, valueIsKnown) {
119
+ if (valueIsKnown) {
120
+ return { presenceIsKnown: true, valueIsKnown: true };
121
+ }
122
+ return presenceIsKnown
123
+ ? { presenceIsKnown: true, valueIsKnown: false }
124
+ : { presenceIsKnown: false, valueIsKnown: false };
125
+ }
126
+ /**
127
+ * Builds an effective constraint while preserving the valid-state union.
128
+ *
129
+ * @param presenceIsKnown whether presence/absence is authoritative
130
+ * @param valueIsKnown whether the concrete value is authoritative
131
+ * @param explicitlyConfigured whether any configured constraint matched
132
+ * @returns an effective constraint in one of the valid knowledge states
133
+ */
134
+ function effectiveConstraint(presenceIsKnown, valueIsKnown, explicitlyConfigured) {
135
+ return { ...storedConstraint(presenceIsKnown, valueIsKnown), explicitlyConfigured };
136
+ }
137
+ /**
138
+ * Extracts a lower-case literal prefix from simple anchored regex patterns.
139
+ *
140
+ * Only simple patterns such as `^aws:ResourceTag/.*` are converted. More
141
+ * complex patterns return undefined and are evaluated with RegExp directly.
142
+ *
143
+ * @param patternText the regex source without surrounding slashes
144
+ * @returns a lower-case prefix if the pattern is reducible to startsWith
145
+ */
146
+ function regexPrefix(patternText) {
147
+ const match = patternText.match(/^\^([A-Za-z0-9:_/-]+)(?:\.\*|\.\*\?)?\/?$/);
148
+ if (!match) {
149
+ return undefined;
150
+ }
151
+ return match[1].toLowerCase();
152
+ }
153
+ //# sourceMappingURL=discoveryContextKeyConstraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discoveryContextKeyConstraints.js","sourceRoot":"","sources":["../../../src/context_keys/discoveryContextKeyConstraints.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Policy } from '@cloud-copilot/iam-policy';
2
- import { StrictContextKeys } from '../context_keys/strictContextKeys.js';
2
+ import { DiscoveryContextKeyConstraints } from '../context_keys/discoveryContextKeyConstraints.js';
3
3
  import { type IdentityAnalysis, type RcpAnalysis, type RequestAnalysis, type ResourceAnalysis, type ScpAnalysis } from '../evaluate.js';
4
4
  import { type PolicyType } from '../policyType.js';
5
5
  import { type AwsRequest } from '../request/request.js';
@@ -23,10 +23,10 @@ export interface SimulationParameters {
23
23
  */
24
24
  simulationMode: SimulationMode;
25
25
  /**
26
- * Condition keys that should be evaluated strictly in the simulation. Used only in Discovery mode.
27
- * In Strict mode, all condition keys are evaluated strictly
26
+ * Discovery-only knowledge constraints for context keys. In Strict mode,
27
+ * all condition keys are evaluated against the concrete request context.
28
28
  */
29
- strictConditionKeys: StrictContextKeys;
29
+ discoveryContextKeyConstraints: DiscoveryContextKeyConstraints;
30
30
  }
31
31
  /**
32
32
  * A set of service or resource control policies for each level of an organization tree
@@ -1 +1 @@
1
- {"version":3,"file":"CoreSimulatorEngine.d.ts","sourceRoot":"","sources":["../../../src/core_engine/CoreSimulatorEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreSimulatorEngine.d.ts","sourceRoot":"","sources":["../../../src/core_engine/CoreSimulatorEngine.ts"],"names":[],"mappings":"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"}