@cloud-copilot/iam-lens 0.1.108 → 0.1.109

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 (63) hide show
  1. package/dist/cjs/index.d.ts +2 -0
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +3 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/utils/bitset.js +3 -3
  6. package/dist/cjs/utils/bitset.js.map +1 -1
  7. package/dist/cjs/whoCan/WhoCanMainThreadWorker.d.ts +65 -3
  8. package/dist/cjs/whoCan/WhoCanMainThreadWorker.d.ts.map +1 -1
  9. package/dist/cjs/whoCan/WhoCanMainThreadWorker.js +52 -31
  10. package/dist/cjs/whoCan/WhoCanMainThreadWorker.js.map +1 -1
  11. package/dist/cjs/whoCan/WhoCanProcessor.d.ts +371 -0
  12. package/dist/cjs/whoCan/WhoCanProcessor.d.ts.map +1 -0
  13. package/dist/cjs/whoCan/WhoCanProcessor.js +980 -0
  14. package/dist/cjs/whoCan/WhoCanProcessor.js.map +1 -0
  15. package/dist/cjs/whoCan/WhoCanWorker.d.ts +2 -0
  16. package/dist/cjs/whoCan/WhoCanWorker.d.ts.map +1 -1
  17. package/dist/cjs/whoCan/WhoCanWorker.js.map +1 -1
  18. package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.js +99 -80
  19. package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.js.map +1 -1
  20. package/dist/cjs/whoCan/principalArnFilter.d.ts +84 -0
  21. package/dist/cjs/whoCan/principalArnFilter.d.ts.map +1 -0
  22. package/dist/cjs/whoCan/principalArnFilter.js +256 -0
  23. package/dist/cjs/whoCan/principalArnFilter.js.map +1 -0
  24. package/dist/cjs/whoCan/untrustingActions.d.ts +7 -0
  25. package/dist/cjs/whoCan/untrustingActions.d.ts.map +1 -0
  26. package/dist/cjs/whoCan/untrustingActions.js +30 -0
  27. package/dist/cjs/whoCan/untrustingActions.js.map +1 -0
  28. package/dist/cjs/whoCan/whoCan.d.ts +35 -2
  29. package/dist/cjs/whoCan/whoCan.d.ts.map +1 -1
  30. package/dist/cjs/whoCan/whoCan.js +277 -233
  31. package/dist/cjs/whoCan/whoCan.js.map +1 -1
  32. package/dist/esm/index.d.ts +2 -0
  33. package/dist/esm/index.d.ts.map +1 -1
  34. package/dist/esm/index.js +2 -0
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/utils/bitset.js +3 -3
  37. package/dist/esm/utils/bitset.js.map +1 -1
  38. package/dist/esm/whoCan/WhoCanMainThreadWorker.d.ts +65 -3
  39. package/dist/esm/whoCan/WhoCanMainThreadWorker.d.ts.map +1 -1
  40. package/dist/esm/whoCan/WhoCanMainThreadWorker.js +53 -34
  41. package/dist/esm/whoCan/WhoCanMainThreadWorker.js.map +1 -1
  42. package/dist/esm/whoCan/WhoCanProcessor.d.ts +371 -0
  43. package/dist/esm/whoCan/WhoCanProcessor.d.ts.map +1 -0
  44. package/dist/esm/whoCan/WhoCanProcessor.js +970 -0
  45. package/dist/esm/whoCan/WhoCanProcessor.js.map +1 -0
  46. package/dist/esm/whoCan/WhoCanWorker.d.ts +2 -0
  47. package/dist/esm/whoCan/WhoCanWorker.d.ts.map +1 -1
  48. package/dist/esm/whoCan/WhoCanWorker.js.map +1 -1
  49. package/dist/esm/whoCan/WhoCanWorkerThreadWorker.js +102 -81
  50. package/dist/esm/whoCan/WhoCanWorkerThreadWorker.js.map +1 -1
  51. package/dist/esm/whoCan/principalArnFilter.d.ts +84 -0
  52. package/dist/esm/whoCan/principalArnFilter.d.ts.map +1 -0
  53. package/dist/esm/whoCan/principalArnFilter.js +251 -0
  54. package/dist/esm/whoCan/principalArnFilter.js.map +1 -0
  55. package/dist/esm/whoCan/untrustingActions.d.ts +7 -0
  56. package/dist/esm/whoCan/untrustingActions.d.ts.map +1 -0
  57. package/dist/esm/whoCan/untrustingActions.js +27 -0
  58. package/dist/esm/whoCan/untrustingActions.js.map +1 -0
  59. package/dist/esm/whoCan/whoCan.d.ts +35 -2
  60. package/dist/esm/whoCan/whoCan.d.ts.map +1 -1
  61. package/dist/esm/whoCan/whoCan.js +278 -237
  62. package/dist/esm/whoCan/whoCan.js.map +1 -1
  63. package/package.json +3 -3
@@ -6,4 +6,6 @@ export { makePrincipalIndex } from './principalIndex/makePrincipalIndex.js';
6
6
  export type { ContextKeys } from './simulate/contextKeys.js';
7
7
  export { simulateRequest, type SimulationRequest } from './simulate/simulate.js';
8
8
  export { whoCan, type WhoCanPrincipalScope, type ResourceAccessRequest, type WhoCanAllowed, type WhoCanResponse } from './whoCan/whoCan.js';
9
+ export { WhoCanProcessor, type WhoCanProcessorConfig, type WhoCanProcessorRequest, type WhoCanSettledEvent, type WhoCanSettledSuccess, type WhoCanSettledError } from './whoCan/WhoCanProcessor.js';
10
+ export { type LightRequestAnalysis, type LightResourceAnalysis, type LightResourceAnalysisWithPattern, type SingleResourceLightRequestAnalysis, type WildcardResourceLightRequestAnalysis } from './whoCan/requestAnalysis.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACL,MAAM,EACN,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EAC1C,MAAM,6BAA6B,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.whoCan = exports.simulateRequest = exports.makePrincipalIndex = exports.principalCan = exports.loadCollectConfigs = exports.getCollectClient = exports.NoCacheProvider = exports.InMemoryCacheProvider = exports.IamCollectClient = void 0;
3
+ exports.WhoCanProcessor = exports.whoCan = exports.simulateRequest = exports.makePrincipalIndex = exports.principalCan = exports.loadCollectConfigs = exports.getCollectClient = exports.NoCacheProvider = exports.InMemoryCacheProvider = exports.IamCollectClient = void 0;
4
4
  var client_js_1 = require("./collect/client.js");
5
5
  Object.defineProperty(exports, "IamCollectClient", { enumerable: true, get: function () { return client_js_1.IamCollectClient; } });
6
6
  Object.defineProperty(exports, "InMemoryCacheProvider", { enumerable: true, get: function () { return client_js_1.InMemoryCacheProvider; } });
@@ -16,4 +16,6 @@ var simulate_js_1 = require("./simulate/simulate.js");
16
16
  Object.defineProperty(exports, "simulateRequest", { enumerable: true, get: function () { return simulate_js_1.simulateRequest; } });
17
17
  var whoCan_js_1 = require("./whoCan/whoCan.js");
18
18
  Object.defineProperty(exports, "whoCan", { enumerable: true, get: function () { return whoCan_js_1.whoCan; } });
19
+ var WhoCanProcessor_js_1 = require("./whoCan/WhoCanProcessor.js");
20
+ Object.defineProperty(exports, "WhoCanProcessor", { enumerable: true, get: function () { return WhoCanProcessor_js_1.WhoCanProcessor; } });
19
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAL1B,6GAAA,gBAAgB,OAAA;AAChB,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AAYjB,mDAK6B;AAJ3B,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAIpB,kEAAqF;AAA5E,+GAAA,YAAY,OAAA;AACrB,gFAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,sDAAgF;AAAvE,8GAAA,eAAe,OAAA;AACxB,gDAM2B;AALzB,mGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAM4B;AAL1B,6GAAA,gBAAgB,OAAA;AAChB,kHAAA,qBAAqB,OAAA;AACrB,4GAAA,eAAe,OAAA;AAYjB,mDAK6B;AAJ3B,8GAAA,gBAAgB,OAAA;AAChB,gHAAA,kBAAkB,OAAA;AAIpB,kEAAqF;AAA5E,+GAAA,YAAY,OAAA;AACrB,gFAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,sDAAgF;AAAvE,8GAAA,eAAe,OAAA;AACxB,gDAM2B;AALzB,mGAAA,MAAM,OAAA;AAMR,kEAOoC;AANlC,qHAAA,eAAe,OAAA"}
@@ -16,7 +16,7 @@ const bitset_1 = require("bitset");
16
16
  function encodeBitSet(bitset) {
17
17
  const rawHex = bitset.toString(16);
18
18
  const compressedHex = compressHex(rawHex);
19
- const sparseString = bitset.toArray().join(',');
19
+ const sparseString = ',' + bitset.toArray().join(',');
20
20
  if (sparseString.length < compressedHex.length && sparseString.length < rawHex.length) {
21
21
  return sparseString;
22
22
  }
@@ -39,9 +39,9 @@ function decodeBitSet(encoded) {
39
39
  }
40
40
  else if (typeof encoded === 'string') {
41
41
  // Check if it's a sparse array (comma-separated numbers)
42
- if (encoded.includes(',')) {
42
+ if (encoded.startsWith(',')) {
43
43
  // It's a sparse array - convert to BitSet
44
- const positions = encoded.split(',').map(Number);
44
+ const positions = encoded.slice(1).split(',').map(Number);
45
45
  const bitset = new bitset_1.default();
46
46
  positions.forEach((pos) => bitset.set(pos, 1));
47
47
  return bitset;
@@ -1 +1 @@
1
- {"version":3,"file":"bitset.js","sourceRoot":"","sources":["../../../src/utils/bitset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bitset.js","sourceRoot":"","sources":["../../../src/utils/bitset.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,73 @@
1
1
  import { type JobResult } from '@cloud-copilot/job';
2
2
  import { IamCollectClient } from '../collect/client.js';
3
3
  import { type S3AbacOverride } from '../utils/s3Abac.js';
4
- import { ArrayStreamingWorkQueue } from '../workers/ArrayStreamingWorkQueue.js';
5
4
  import { PullBasedJobRunner } from '../workers/JobRunner.js';
6
- import { StreamingWorkQueue } from '../workers/StreamingWorkQueue.js';
7
5
  import { type LightRequestAnalysis } from './requestAnalysis.js';
8
6
  import { type WhoCanAllowed, type WhoCanDenyDetail } from './whoCan.js';
9
7
  import { type WhoCanExecutionResult, type WhoCanWorkItem } from './WhoCanWorker.js';
10
- export declare function createMainThreadStreamingWorkQueue(queue: StreamingWorkQueue<WhoCanWorkItem> | ArrayStreamingWorkQueue<WhoCanWorkItem>, collectClient: IamCollectClient, s3AbacOverride: S3AbacOverride | undefined, onComplete: (result: JobResult<WhoCanAllowed | undefined, Record<string, unknown>>) => void, denyDetailsCallback?: (details: LightRequestAnalysis) => boolean, onDenyDetail?: (detail: WhoCanDenyDetail) => void, collectGrantDetails?: boolean, strictContextKeys?: string[]): PullBasedJobRunner<WhoCanExecutionResult, Record<string, unknown>, WhoCanWorkItem>;
8
+ /**
9
+ * A work item tagged with its owning request ID, used by the main-thread
10
+ * runner so that simulation results can be routed back to the correct request.
11
+ */
12
+ export interface TaggedWhoCanWorkItem extends WhoCanWorkItem {
13
+ /** The request ID this work item belongs to. */
14
+ requestId: string;
15
+ }
16
+ /**
17
+ * Properties attached to each job so the requestId survives through to onComplete.
18
+ */
19
+ interface MainThreadJobProperties {
20
+ /** The request ID this job belongs to. */
21
+ requestId: string;
22
+ /** Whether deny details should be collected for this work item's request. */
23
+ collectDenyDetails: boolean;
24
+ }
25
+ /**
26
+ * Dequeues the next tagged work item from the processor's FIFO scheduler.
27
+ *
28
+ * @returns the next tagged work item, or undefined if none are ready.
29
+ */
30
+ export type DequeueWork = () => TaggedWhoCanWorkItem | undefined;
31
+ /**
32
+ * Called when a simulation completes (allowed, denied, or error). Routes
33
+ * the result back to the processor by requestId.
34
+ *
35
+ * @param requestId - The request this result belongs to.
36
+ * @param result - The simulation result (fulfilled with WhoCanAllowed or undefined, or rejected).
37
+ */
38
+ export type OnSimulationResult = (requestId: string, result: JobResult<WhoCanAllowed | undefined, Record<string, unknown>>) => void;
39
+ /**
40
+ * Checks whether deny details should be included for a denied simulation.
41
+ *
42
+ * @param requestId - The request this check belongs to.
43
+ * @param lightAnalysis - The light analysis for the denied simulation.
44
+ * @returns true if deny details should be collected and delivered.
45
+ */
46
+ export type OnCheckDenyDetails = (requestId: string, lightAnalysis: LightRequestAnalysis) => boolean;
47
+ /**
48
+ * Called when deny details are ready to be delivered.
49
+ *
50
+ * @param requestId - The request this detail belongs to.
51
+ * @param detail - The deny detail record.
52
+ */
53
+ export type OnDenyDetail = (requestId: string, detail: WhoCanDenyDetail) => void;
54
+ /**
55
+ * Creates a main-thread simulation runner that pulls tagged work items from
56
+ * the processor's FIFO scheduler and routes results back by requestId.
57
+ *
58
+ * The requestId is threaded through the job's properties so it is available
59
+ * in onComplete without needing the workerId.
60
+ *
61
+ * @param dequeueWork - Function to dequeue the next tagged work item.
62
+ * @param onSimulationResult - Callback for simulation results.
63
+ * @param onCheckDenyDetails - Callback to check whether to collect deny details.
64
+ * @param onDenyDetail - Callback for deny detail delivery.
65
+ * @param collectClient - The IAM collect client for fetching policy data.
66
+ * @param s3AbacOverride - Optional override for S3 ABAC when checking S3 Bucket access.
67
+ * @param collectGrantDetails - Whether to collect grant details for allowed simulations.
68
+ * @param concurrency - The number of concurrent simulations to run on the main thread. Defaults to 50.
69
+ * @returns a PullBasedJobRunner that processes tagged whoCan work items.
70
+ */
71
+ export declare function createMainThreadStreamingWorkQueue(dequeueWork: DequeueWork, onSimulationResult: OnSimulationResult, onCheckDenyDetails: OnCheckDenyDetails, onDenyDetail: OnDenyDetail, collectClient: IamCollectClient, s3AbacOverride: S3AbacOverride | undefined, collectGrantDetails: boolean, concurrency?: number): PullBasedJobRunner<WhoCanExecutionResult, MainThreadJobProperties, TaggedWhoCanWorkItem>;
72
+ export {};
11
73
  //# sourceMappingURL=WhoCanMainThreadWorker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhoCanMainThreadWorker.d.ts","sourceRoot":"","sources":["../../../src/whoCan/WhoCanMainThreadWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAE1B,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,kBAAkB,CAAC,cAAc,CAAC,GAAG,uBAAuB,CAAC,cAAc,CAAC,EACnF,aAAa,EAAE,gBAAgB,EAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,EAC3F,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,EAChE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,EACjD,mBAAmB,CAAC,EAAE,OAAO,EAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,sFA4D7B"}
1
+ {"version":3,"file":"WhoCanMainThreadWorker.d.ts","sourceRoot":"","sources":["../../../src/whoCan/WhoCanMainThreadWorker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAiB,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElG;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IAEjB,6EAA6E;IAC7E,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,CAAC,aAAa,GAAG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAClE,IAAI,CAAA;AAET;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,oBAAoB,KAAK,OAAO,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,WAAW,EACxB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,gBAAgB,EAC/B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,mBAAmB,EAAE,OAAO,EAC5B,WAAW,GAAE,MAAW,4FAoEzB"}
@@ -4,54 +4,75 @@ exports.createMainThreadStreamingWorkQueue = createMainThreadStreamingWorkQueue;
4
4
  const JobRunner_js_1 = require("../workers/JobRunner.js");
5
5
  const requestAnalysis_js_1 = require("./requestAnalysis.js");
6
6
  const WhoCanWorker_js_1 = require("./WhoCanWorker.js");
7
- function createMainThreadStreamingWorkQueue(queue, collectClient, s3AbacOverride, onComplete, denyDetailsCallback, onDenyDetail, collectGrantDetails, strictContextKeys) {
8
- const collectDenyDetails = !!denyDetailsCallback;
9
- return new JobRunner_js_1.PullBasedJobRunner(50, async () => {
10
- return queue.dequeue();
11
- }, (workItem) => {
12
- return (0, WhoCanWorker_js_1.createJobForWhoCanWorkItem)(workItem, collectClient, {
13
- s3AbacOverride,
14
- collectDenyDetails,
15
- collectGrantDetails,
16
- strictContextKeys
17
- });
7
+ /**
8
+ * Creates a main-thread simulation runner that pulls tagged work items from
9
+ * the processor's FIFO scheduler and routes results back by requestId.
10
+ *
11
+ * The requestId is threaded through the job's properties so it is available
12
+ * in onComplete without needing the workerId.
13
+ *
14
+ * @param dequeueWork - Function to dequeue the next tagged work item.
15
+ * @param onSimulationResult - Callback for simulation results.
16
+ * @param onCheckDenyDetails - Callback to check whether to collect deny details.
17
+ * @param onDenyDetail - Callback for deny detail delivery.
18
+ * @param collectClient - The IAM collect client for fetching policy data.
19
+ * @param s3AbacOverride - Optional override for S3 ABAC when checking S3 Bucket access.
20
+ * @param collectGrantDetails - Whether to collect grant details for allowed simulations.
21
+ * @param concurrency - The number of concurrent simulations to run on the main thread. Defaults to 50.
22
+ * @returns a PullBasedJobRunner that processes tagged whoCan work items.
23
+ */
24
+ function createMainThreadStreamingWorkQueue(dequeueWork, onSimulationResult, onCheckDenyDetails, onDenyDetail, collectClient, s3AbacOverride, collectGrantDetails, concurrency = 50) {
25
+ return new JobRunner_js_1.PullBasedJobRunner(concurrency, async () => {
26
+ return dequeueWork();
27
+ }, (taggedItem) => {
28
+ const { requestId, ...workItem } = taggedItem;
29
+ return {
30
+ properties: { requestId, collectDenyDetails: workItem.collectDenyDetails },
31
+ execute: async (context) => {
32
+ return (0, WhoCanWorker_js_1.executeWhoCan)(workItem, collectClient, {
33
+ s3AbacOverride,
34
+ collectDenyDetails: workItem.collectDenyDetails,
35
+ collectGrantDetails,
36
+ strictContextKeys: workItem.strictContextKeys
37
+ });
38
+ }
39
+ };
18
40
  }, async (result) => {
41
+ const { requestId, collectDenyDetails } = result.properties;
19
42
  if (result.status === 'fulfilled') {
20
43
  const executionResult = result.value;
21
44
  if (executionResult.type === 'allowed') {
22
- // Simulation was allowed - pass through to onComplete
23
- onComplete({
45
+ onSimulationResult(requestId, {
24
46
  status: 'fulfilled',
25
47
  value: executionResult.allowed,
26
- properties: result.properties
48
+ properties: {}
27
49
  });
28
50
  }
29
51
  else {
30
- // Simulation was denied
31
- onComplete({
52
+ // Denied handle deny details BEFORE reporting the simulation result,
53
+ // because onSimulationResult may trigger request completion checks.
54
+ const hasDetails = executionResult.type === 'denied_single' || executionResult.type === 'denied_wildcard';
55
+ if (collectDenyDetails && hasDetails) {
56
+ const lightAnalysis = (0, requestAnalysis_js_1.toLightRequestAnalysis)(executionResult);
57
+ const shouldInclude = onCheckDenyDetails(requestId, lightAnalysis);
58
+ if (shouldInclude) {
59
+ onDenyDetail(requestId, (0, requestAnalysis_js_1.convertToDenialDetails)(executionResult));
60
+ }
61
+ }
62
+ // Now report the denied simulation result (may trigger completion check)
63
+ onSimulationResult(requestId, {
32
64
  status: 'fulfilled',
33
65
  value: undefined,
34
- properties: result.properties
66
+ properties: {}
35
67
  });
36
- // Check if we should include deny details
37
- if (denyDetailsCallback && onDenyDetail) {
38
- const hasDetails = executionResult.type === 'denied_single' || executionResult.type === 'denied_wildcard';
39
- if (hasDetails) {
40
- const lightAnalysis = (0, requestAnalysis_js_1.toLightRequestAnalysis)(executionResult);
41
- const shouldInclude = denyDetailsCallback(lightAnalysis);
42
- if (shouldInclude) {
43
- onDenyDetail((0, requestAnalysis_js_1.convertToDenialDetails)(executionResult));
44
- }
45
- }
46
- }
47
68
  }
48
69
  }
49
70
  else {
50
- // Error case - pass through as rejected
51
- onComplete({
71
+ // Error case
72
+ onSimulationResult(requestId, {
52
73
  status: 'rejected',
53
74
  reason: result.reason,
54
- properties: result.properties
75
+ properties: {}
55
76
  });
56
77
  }
57
78
  });
@@ -1 +1 @@
1
- {"version":3,"file":"WhoCanMainThreadWorker.js","sourceRoot":"","sources":["../../../src/whoCan/WhoCanMainThreadWorker.ts"],"names":[],"mappings":";;AAkBA,gFAoEC;AAlFD,0DAA4D;AAE5D,6DAI6B;AAE7B,uDAI0B;AAE1B,SAAgB,kCAAkC,CAChD,KAAmF,EACnF,aAA+B,EAC/B,cAA0C,EAC1C,UAA2F,EAC3F,mBAAgE,EAChE,YAAiD,EACjD,mBAA6B,EAC7B,iBAA4B;IAE5B,MAAM,kBAAkB,GAAG,CAAC,CAAC,mBAAmB,CAAA;IAEhD,OAAO,IAAI,iCAAkB,CAC3B,EAAE,EACF,KAAK,IAAI,EAAE;QACT,OAAO,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC,EACD,CAAC,QAAQ,EAAE,EAAE;QACX,OAAO,IAAA,4CAA0B,EAAC,QAAQ,EAAE,aAAa,EAAE;YACzD,cAAc;YACd,kBAAkB;YAClB,mBAAmB;YACnB,iBAAiB;SAClB,CAAC,CAAA;IACJ,CAAC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAA;YACpC,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvC,sDAAsD;gBACtD,UAAU,CAAC;oBACT,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,eAAe,CAAC,OAAO;oBAC9B,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,wBAAwB;gBACxB,UAAU,CAAC;oBACT,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,MAAM,CAAC,UAAU;iBAC9B,CAAC,CAAA;gBAEF,0CAA0C;gBAC1C,IAAI,mBAAmB,IAAI,YAAY,EAAE,CAAC;oBACxC,MAAM,UAAU,GACd,eAAe,CAAC,IAAI,KAAK,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,iBAAiB,CAAA;oBAExF,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,aAAa,GAAG,IAAA,2CAAsB,EAAC,eAAe,CAAC,CAAA;wBAC7D,MAAM,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAA;wBAExD,IAAI,aAAa,EAAE,CAAC;4BAClB,YAAY,CAAC,IAAA,2CAAsB,EAAC,eAAe,CAAC,CAAC,CAAA;wBACvD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,UAAU,CAAC;gBACT,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"WhoCanMainThreadWorker.js","sourceRoot":"","sources":["../../../src/whoCan/WhoCanMainThreadWorker.ts"],"names":[],"mappings":";;AAqFA,gFA4EC;AA9JD,0DAA4D;AAC5D,6DAI6B;AAE7B,uDAAkG;AA0DlG;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,kCAAkC,CAChD,WAAwB,EACxB,kBAAsC,EACtC,kBAAsC,EACtC,YAA0B,EAC1B,aAA+B,EAC/B,cAA0C,EAC1C,mBAA4B,EAC5B,cAAsB,EAAE;IAExB,OAAO,IAAI,iCAAkB,CAK3B,WAAW,EACX,KAAK,IAAI,EAAE;QACT,OAAO,WAAW,EAAE,CAAA;IACtB,CAAC,EACD,CAAC,UAAU,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAA;QAC7C,OAAO;YACL,UAAU,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,EAAE;YAC1E,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBACzB,OAAO,IAAA,+BAAa,EAAC,QAAQ,EAAE,aAAa,EAAE;oBAC5C,cAAc;oBACd,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;oBAC/C,mBAAmB;oBACnB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;iBAC9C,CAAC,CAAA;YACJ,CAAC;SACF,CAAA;IACH,CAAC,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,UAAU,CAAA;QAE3D,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAA;YACpC,IAAI,eAAe,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvC,kBAAkB,CAAC,SAAS,EAAE;oBAC5B,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,eAAe,CAAC,OAAO;oBAC9B,UAAU,EAAE,EAAE;iBACf,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,oEAAoE;gBACpE,MAAM,UAAU,GACd,eAAe,CAAC,IAAI,KAAK,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,iBAAiB,CAAA;gBAExF,IAAI,kBAAkB,IAAI,UAAU,EAAE,CAAC;oBACrC,MAAM,aAAa,GAAG,IAAA,2CAAsB,EAAC,eAAe,CAAC,CAAA;oBAC7D,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAElE,IAAI,aAAa,EAAE,CAAC;wBAClB,YAAY,CAAC,SAAS,EAAE,IAAA,2CAAsB,EAAC,eAAe,CAAC,CAAC,CAAA;oBAClE,CAAC;gBACH,CAAC;gBAED,yEAAyE;gBACzE,kBAAkB,CAAC,SAAS,EAAE;oBAC5B,MAAM,EAAE,WAAW;oBACnB,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,EAAE;iBACf,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa;YACb,kBAAkB,CAAC,SAAS,EAAE;gBAC5B,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,EAAE;aACf,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC"}