@cloud-copilot/iam-simulate 0.1.5 → 0.1.7

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 (113) hide show
  1. package/dist/cjs/ConditionKeys.d.ts +19 -0
  2. package/dist/cjs/ConditionKeys.d.ts.map +1 -0
  3. package/dist/cjs/ConditionKeys.js +27 -0
  4. package/dist/cjs/ConditionKeys.js.map +1 -0
  5. package/dist/cjs/SCPAnalysis.d.ts +6 -0
  6. package/dist/cjs/SCPAnalysis.d.ts.map +1 -0
  7. package/dist/cjs/SCPAnalysis.js +3 -0
  8. package/dist/cjs/SCPAnalysis.js.map +1 -0
  9. package/dist/cjs/context_keys/findContextKeys.d.ts +19 -0
  10. package/dist/cjs/context_keys/findContextKeys.d.ts.map +1 -0
  11. package/dist/cjs/context_keys/findContextKeys.js +57 -0
  12. package/dist/cjs/context_keys/findContextKeys.js.map +1 -0
  13. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts +39 -0
  14. package/dist/cjs/core_engine/coreSimulatorEngine.d.ts.map +1 -1
  15. package/dist/cjs/core_engine/coreSimulatorEngine.js +56 -0
  16. package/dist/cjs/core_engine/coreSimulatorEngine.js.map +1 -1
  17. package/dist/cjs/evaluate.d.ts +1 -0
  18. package/dist/cjs/evaluate.d.ts.map +1 -1
  19. package/dist/cjs/global_conditions/globalConditionKeys.d.ts +9 -1
  20. package/dist/cjs/global_conditions/globalConditionKeys.d.ts.map +1 -1
  21. package/dist/cjs/global_conditions/globalConditionKeys.js +78 -50
  22. package/dist/cjs/global_conditions/globalConditionKeys.js.map +1 -1
  23. package/dist/cjs/index.d.ts +4 -0
  24. package/dist/cjs/index.d.ts.map +1 -1
  25. package/dist/cjs/index.js +10 -1
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/principal/principal.d.ts +9 -1
  28. package/dist/cjs/principal/principal.d.ts.map +1 -1
  29. package/dist/cjs/principal/principal.js +17 -0
  30. package/dist/cjs/principal/principal.js.map +1 -1
  31. package/dist/cjs/request/requestPrincipal.d.ts.map +1 -1
  32. package/dist/cjs/request/requestPrincipal.js.map +1 -1
  33. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts +30 -1
  34. package/dist/cjs/services/DefaultServiceAuthorizer.d.ts.map +1 -1
  35. package/dist/cjs/services/DefaultServiceAuthorizer.js +93 -7
  36. package/dist/cjs/services/DefaultServiceAuthorizer.js.map +1 -1
  37. package/dist/cjs/services/ServiceAuthorizer.d.ts +3 -0
  38. package/dist/cjs/services/ServiceAuthorizer.d.ts.map +1 -1
  39. package/dist/cjs/simulation_engine/contextKeys.d.ts +9 -1
  40. package/dist/cjs/simulation_engine/contextKeys.d.ts.map +1 -1
  41. package/dist/cjs/simulation_engine/contextKeys.js +27 -40
  42. package/dist/cjs/simulation_engine/contextKeys.js.map +1 -1
  43. package/dist/cjs/simulation_engine/simulation.d.ts +12 -1
  44. package/dist/cjs/simulation_engine/simulation.d.ts.map +1 -1
  45. package/dist/cjs/simulation_engine/simulationEngine.d.ts +15 -0
  46. package/dist/cjs/simulation_engine/simulationEngine.d.ts.map +1 -1
  47. package/dist/cjs/simulation_engine/simulationEngine.js +126 -15
  48. package/dist/cjs/simulation_engine/simulationEngine.js.map +1 -1
  49. package/dist/cjs/simulation_engine/unsafeSimulationEngine.d.ts +1 -1
  50. package/dist/cjs/simulation_engine/unsafeSimulationEngine.d.ts.map +1 -1
  51. package/dist/cjs/simulation_engine/unsafeSimulationEngine.js +13 -4
  52. package/dist/cjs/simulation_engine/unsafeSimulationEngine.js.map +1 -1
  53. package/dist/cjs/util.d.ts +69 -0
  54. package/dist/cjs/util.d.ts.map +1 -1
  55. package/dist/cjs/util.js +166 -0
  56. package/dist/cjs/util.js.map +1 -1
  57. package/dist/esm/ConditionKeys.d.ts +19 -0
  58. package/dist/esm/ConditionKeys.d.ts.map +1 -0
  59. package/dist/esm/ConditionKeys.js +23 -0
  60. package/dist/esm/ConditionKeys.js.map +1 -0
  61. package/dist/esm/SCPAnalysis.d.ts +6 -0
  62. package/dist/esm/SCPAnalysis.d.ts.map +1 -0
  63. package/dist/esm/SCPAnalysis.js +2 -0
  64. package/dist/esm/SCPAnalysis.js.map +1 -0
  65. package/dist/esm/context_keys/findContextKeys.d.ts +19 -0
  66. package/dist/esm/context_keys/findContextKeys.d.ts.map +1 -0
  67. package/dist/esm/context_keys/findContextKeys.js +53 -0
  68. package/dist/esm/context_keys/findContextKeys.js.map +1 -0
  69. package/dist/esm/core_engine/coreSimulatorEngine.d.ts +39 -0
  70. package/dist/esm/core_engine/coreSimulatorEngine.d.ts.map +1 -1
  71. package/dist/esm/core_engine/coreSimulatorEngine.js +54 -0
  72. package/dist/esm/core_engine/coreSimulatorEngine.js.map +1 -1
  73. package/dist/esm/evaluate.d.ts +1 -0
  74. package/dist/esm/evaluate.d.ts.map +1 -1
  75. package/dist/esm/global_conditions/globalConditionKeys.d.ts +9 -1
  76. package/dist/esm/global_conditions/globalConditionKeys.d.ts.map +1 -1
  77. package/dist/esm/global_conditions/globalConditionKeys.js +76 -50
  78. package/dist/esm/global_conditions/globalConditionKeys.js.map +1 -1
  79. package/dist/esm/index.d.ts +4 -0
  80. package/dist/esm/index.d.ts.map +1 -1
  81. package/dist/esm/index.js +4 -0
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/principal/principal.d.ts +9 -1
  84. package/dist/esm/principal/principal.d.ts.map +1 -1
  85. package/dist/esm/principal/principal.js +16 -0
  86. package/dist/esm/principal/principal.js.map +1 -1
  87. package/dist/esm/request/requestPrincipal.d.ts.map +1 -1
  88. package/dist/esm/request/requestPrincipal.js.map +1 -1
  89. package/dist/esm/services/DefaultServiceAuthorizer.d.ts +30 -1
  90. package/dist/esm/services/DefaultServiceAuthorizer.d.ts.map +1 -1
  91. package/dist/esm/services/DefaultServiceAuthorizer.js +93 -7
  92. package/dist/esm/services/DefaultServiceAuthorizer.js.map +1 -1
  93. package/dist/esm/services/ServiceAuthorizer.d.ts +3 -0
  94. package/dist/esm/services/ServiceAuthorizer.d.ts.map +1 -1
  95. package/dist/esm/simulation_engine/contextKeys.d.ts +9 -1
  96. package/dist/esm/simulation_engine/contextKeys.d.ts.map +1 -1
  97. package/dist/esm/simulation_engine/contextKeys.js +28 -40
  98. package/dist/esm/simulation_engine/contextKeys.js.map +1 -1
  99. package/dist/esm/simulation_engine/simulation.d.ts +12 -1
  100. package/dist/esm/simulation_engine/simulation.d.ts.map +1 -1
  101. package/dist/esm/simulation_engine/simulationEngine.d.ts +15 -0
  102. package/dist/esm/simulation_engine/simulationEngine.d.ts.map +1 -1
  103. package/dist/esm/simulation_engine/simulationEngine.js +126 -16
  104. package/dist/esm/simulation_engine/simulationEngine.js.map +1 -1
  105. package/dist/esm/simulation_engine/unsafeSimulationEngine.d.ts +1 -1
  106. package/dist/esm/simulation_engine/unsafeSimulationEngine.d.ts.map +1 -1
  107. package/dist/esm/simulation_engine/unsafeSimulationEngine.js +13 -4
  108. package/dist/esm/simulation_engine/unsafeSimulationEngine.js.map +1 -1
  109. package/dist/esm/util.d.ts +69 -0
  110. package/dist/esm/util.d.ts.map +1 -1
  111. package/dist/esm/util.js +158 -0
  112. package/dist/esm/util.js.map +1 -1
  113. package/package.json +1 -1
package/dist/esm/util.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { iamActionDetails, iamConditionKeyDetails, iamConditionKeyExists, iamResourceTypeDetails, iamServiceExists } from '@cloud-copilot/iam-data';
2
+ import { getGlobalConditionKey, globalConditionKeyExists } from './global_conditions/globalConditionKeys.js';
1
3
  const matchesNothing = new RegExp('a^');
2
4
  const defaultStringReplaceOptions = {
3
5
  replaceWildcards: true
@@ -97,12 +99,26 @@ function getContextSingleValue(request, contextKeyName) {
97
99
  }
98
100
  return undefined;
99
101
  }
102
+ /**
103
+ * Get the replacement value for a string
104
+ *
105
+ * @param rawString the string to replace the value in
106
+ * @param wildcard the value to replace the wildcard with
107
+ * @param replaceWildcards if the wildcard or raw string should be used
108
+ * @returns
109
+ */
100
110
  function replacementValue(rawString, wildcard, replaceWildcards) {
101
111
  if (replaceWildcards) {
102
112
  return wildcard;
103
113
  }
104
114
  return rawString;
105
115
  }
116
+ /**
117
+ * Split an ARN into its parts
118
+ *
119
+ * @param arn the arn to split
120
+ * @returns the parts of the ARN
121
+ */
106
122
  export function splitArnParts(arn) {
107
123
  const parts = arn.split(':');
108
124
  const partition = parts.at(1);
@@ -170,4 +186,146 @@ export function isDefined(value) {
170
186
  export function isNotDefined(value) {
171
187
  return !isDefined(value);
172
188
  }
189
+ /**
190
+ * Checks if an action is a wildcard only action
191
+ *
192
+ * @param service the service the action belongs to
193
+ * @param action the action to check if it is a wildcard only action
194
+ * @returns if the action is a wildcard only action
195
+ * @throws an error if the service or action does not exist
196
+ */
197
+ export async function isWildcardOnlyAction(service, action) {
198
+ const actionDetails = await iamActionDetails(service, action);
199
+ return actionDetails.resourceTypes.length === 0;
200
+ }
201
+ /**
202
+ * Get the the possible reource types for an action and resource
203
+ *
204
+ * @param service the service the action belongs to
205
+ * @param action the action to get the resource type for
206
+ * @param resource the resource type matching the action, if any
207
+ * @throws an error if the service or action does not exist, or if the action is a wildcard only action
208
+ */
209
+ export async function getResourceTypesForAction(service, action, resource) {
210
+ const actionDetails = await iamActionDetails(service, action);
211
+ if (actionDetails.resourceTypes.length === 0) {
212
+ throw new Error(`${service}:${action} does not have any resource types`);
213
+ }
214
+ const matchingResourceTypes = [];
215
+ for (const rt of actionDetails.resourceTypes) {
216
+ const resourceType = await iamResourceTypeDetails(service, rt.name);
217
+ const pattern = convertResourcePatternToRegex(resourceType.arn);
218
+ const match = resource.match(new RegExp(pattern));
219
+ if (match) {
220
+ matchingResourceTypes.push(resourceType);
221
+ }
222
+ }
223
+ return matchingResourceTypes;
224
+ }
225
+ /**
226
+ * Convert a resource pattern from iam-data to a regex pattern
227
+ *
228
+ * @param pattern the pattern to convert to a regex
229
+ * @returns the regex pattern
230
+ */
231
+ export function convertResourcePatternToRegex(pattern) {
232
+ const regex = pattern.replace(/\$\{.*?\}/g, (match) => {
233
+ const name = match.substring(2, match.length - 1);
234
+ const camelName = name.at(0)?.toLowerCase() + name.substring(1);
235
+ return `(?<${camelName}>(.*?))`;
236
+ });
237
+ return `^${regex}$`;
238
+ }
239
+ /**
240
+ * Lowercase all strings in an array
241
+ *
242
+ * @param strings the strings to lowercase
243
+ * @returns the lowercased strings
244
+ */
245
+ export function lowerCaseAll(strings) {
246
+ return strings.map(s => s.toLowerCase());
247
+ }
248
+ /**
249
+ * Check the capitalization of a context key and return the correct capitalization
250
+ *
251
+ * @param contextKey the condition key to check
252
+ * @returns if the condition key is an array type
253
+ */
254
+ export async function normalizeContextKeyCase(contextKey) {
255
+ const [service, key] = contextKey.split(":");
256
+ const serviceExists = await iamServiceExists(service);
257
+ if (serviceExists) {
258
+ const serviceKeyExists = await iamConditionKeyExists(service, contextKey);
259
+ if (serviceKeyExists) {
260
+ const keyDetails = await iamConditionKeyDetails(service, contextKey);
261
+ return keyDetails.key;
262
+ }
263
+ }
264
+ const globalConditionKey = getGlobalConditionKey(contextKey);
265
+ if (globalConditionKey) {
266
+ return globalConditionKey.key;
267
+ }
268
+ throw new Error(`Context key ${contextKey} not found`);
269
+ }
270
+ /**
271
+ * Get the type of a context key
272
+ *
273
+ * @param contextKey - The string condition key to get the type for
274
+ * @returns The type of the condition key
275
+ * @throws an error if the condition key is not found
276
+ */
277
+ export async function typeForContextKey(contextKey) {
278
+ const [service, key] = contextKey.split(":");
279
+ const serviceKeyExists = await iamConditionKeyExists(service, contextKey);
280
+ if (serviceKeyExists) {
281
+ const keyDetails = await iamConditionKeyDetails(service, contextKey);
282
+ return keyDetails.type;
283
+ }
284
+ const globalConditionKey = getGlobalConditionKey(contextKey);
285
+ if (globalConditionKey) {
286
+ return globalConditionKey.dataType;
287
+ }
288
+ throw new Error(`Condition key ${contextKey} not found`);
289
+ }
290
+ /**
291
+ * Gets the IAM variables from a string
292
+ *
293
+ * @param value the string to get the variables from
294
+ * @returns the variables in the string, if any
295
+ */
296
+ export function getVariablesFromString(value) {
297
+ const matches = value.match(/\$\{.*?\}/g);
298
+ if (matches) {
299
+ return matches.map((m) => {
300
+ const inBrackets = m.slice(2, -1);
301
+ if (inBrackets.includes(',')) {
302
+ return inBrackets.split(',')[0].trim();
303
+ }
304
+ return inBrackets;
305
+ });
306
+ }
307
+ return [];
308
+ }
309
+ /**
310
+ * Check if a context key actually exists
311
+ *
312
+ * @param key The context key to check
313
+ * @returns true if the context key is valid, false otherwise
314
+ */
315
+ export async function isActualContextKey(key) {
316
+ if (globalConditionKeyExists(key)) {
317
+ return true;
318
+ }
319
+ const parts = key.split(":");
320
+ if (parts.length !== 2) {
321
+ return false;
322
+ }
323
+ const [service, action] = parts;
324
+ const serviceExists = await iamServiceExists(service);
325
+ if (!serviceExists) {
326
+ return false;
327
+ }
328
+ const actionExists = await iamConditionKeyExists(service, key);
329
+ return actionExists;
330
+ }
173
331
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud-copilot/iam-simulate",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Simulate evaluation of AWS IAM policies",
5
5
  "repository": {
6
6
  "type": "git",