@cloud-copilot/iam-lens 0.1.110 → 0.1.111

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 (59) hide show
  1. package/dist/cjs/collect/collect.d.ts +1 -1
  2. package/dist/cjs/collect/collect.d.ts.map +1 -1
  3. package/dist/cjs/collect/collect.js +2 -59
  4. package/dist/cjs/collect/collect.js.map +1 -1
  5. package/dist/cjs/index.d.ts +1 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/test-datasets/testClient.d.ts +6 -0
  9. package/dist/cjs/test-datasets/testClient.d.ts.map +1 -1
  10. package/dist/cjs/test-datasets/testClient.js +21 -3
  11. package/dist/cjs/test-datasets/testClient.js.map +1 -1
  12. package/dist/cjs/utils/dynamicImport.d.ts +31 -0
  13. package/dist/cjs/utils/dynamicImport.d.ts.map +1 -0
  14. package/dist/cjs/utils/dynamicImport.js +64 -0
  15. package/dist/cjs/utils/dynamicImport.js.map +1 -0
  16. package/dist/cjs/whoCan/WhoCanProcessor.d.ts +37 -8
  17. package/dist/cjs/whoCan/WhoCanProcessor.d.ts.map +1 -1
  18. package/dist/cjs/whoCan/WhoCanProcessor.js +116 -34
  19. package/dist/cjs/whoCan/WhoCanProcessor.js.map +1 -1
  20. package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.js +82 -30
  21. package/dist/cjs/whoCan/WhoCanWorkerThreadWorker.js.map +1 -1
  22. package/dist/cjs/whoCan/whoCan.d.ts +7 -0
  23. package/dist/cjs/whoCan/whoCan.d.ts.map +1 -1
  24. package/dist/cjs/whoCan/whoCan.js +1 -0
  25. package/dist/cjs/whoCan/whoCan.js.map +1 -1
  26. package/dist/cjs/whoCan/workerBootstrapPlugin.d.ts +17 -0
  27. package/dist/cjs/whoCan/workerBootstrapPlugin.d.ts.map +1 -0
  28. package/dist/cjs/whoCan/workerBootstrapPlugin.js +3 -0
  29. package/dist/cjs/whoCan/workerBootstrapPlugin.js.map +1 -0
  30. package/dist/esm/collect/collect.d.ts +1 -1
  31. package/dist/esm/collect/collect.d.ts.map +1 -1
  32. package/dist/esm/collect/collect.js +1 -58
  33. package/dist/esm/collect/collect.js.map +1 -1
  34. package/dist/esm/index.d.ts +1 -1
  35. package/dist/esm/index.d.ts.map +1 -1
  36. package/dist/esm/index.js.map +1 -1
  37. package/dist/esm/test-datasets/testClient.d.ts +6 -0
  38. package/dist/esm/test-datasets/testClient.d.ts.map +1 -1
  39. package/dist/esm/test-datasets/testClient.js +22 -4
  40. package/dist/esm/test-datasets/testClient.js.map +1 -1
  41. package/dist/esm/utils/dynamicImport.d.ts +31 -0
  42. package/dist/esm/utils/dynamicImport.d.ts.map +1 -0
  43. package/dist/esm/utils/dynamicImport.js +60 -0
  44. package/dist/esm/utils/dynamicImport.js.map +1 -0
  45. package/dist/esm/whoCan/WhoCanProcessor.d.ts +37 -8
  46. package/dist/esm/whoCan/WhoCanProcessor.d.ts.map +1 -1
  47. package/dist/esm/whoCan/WhoCanProcessor.js +117 -34
  48. package/dist/esm/whoCan/WhoCanProcessor.js.map +1 -1
  49. package/dist/esm/whoCan/WhoCanWorkerThreadWorker.js +84 -31
  50. package/dist/esm/whoCan/WhoCanWorkerThreadWorker.js.map +1 -1
  51. package/dist/esm/whoCan/whoCan.d.ts +7 -0
  52. package/dist/esm/whoCan/whoCan.d.ts.map +1 -1
  53. package/dist/esm/whoCan/whoCan.js +1 -0
  54. package/dist/esm/whoCan/whoCan.js.map +1 -1
  55. package/dist/esm/whoCan/workerBootstrapPlugin.d.ts +17 -0
  56. package/dist/esm/whoCan/workerBootstrapPlugin.d.ts.map +1 -0
  57. package/dist/esm/whoCan/workerBootstrapPlugin.js +2 -0
  58. package/dist/esm/whoCan/workerBootstrapPlugin.js.map +1 -0
  59. package/package.json +1 -1
@@ -16,6 +16,8 @@ import {} from './requestAnalysis.js';
16
16
  import { actionsForWhoCan, accountsToCheckBasedOnResourcePolicy, uniqueAccountsToCheck, sortWhoCanResults } from './whoCan.js';
17
17
  import { isAssumedRoleArn, isIamRoleArn, isIamUserArn, isServicePrincipal } from '@cloud-copilot/iam-utils';
18
18
  import { buildPrincipalArnFilter, principalMatchesFilter } from './principalArnFilter.js';
19
+ import {} from './workerBootstrapPlugin.js';
20
+ import { log } from '@cloud-copilot/log';
19
21
  // ──────────────────────────────────────────────────────────────────────────────
20
22
  // Helpers
21
23
  // ──────────────────────────────────────────────────────────────────────────────
@@ -40,9 +42,6 @@ function getNumberOfWorkers(overrideValue) {
40
42
  }
41
43
  return Math.max(0, numberOfCpus() - 1);
42
44
  }
43
- // ──────────────────────────────────────────────────────────────────────────────
44
- // Processor
45
- // ──────────────────────────────────────────────────────────────────────────────
46
45
  /**
47
46
  * A queue-first bulk processor that accepts many whoCan requests, expands
48
47
  * scenarios on the main thread, and feeds a shared simulation scheduler used
@@ -67,12 +66,60 @@ export class WhoCanProcessor {
67
66
  this.draining = false;
68
67
  // Idle / drain tracking
69
68
  this.idleWaiters = [];
70
- this.settledCallbackErrors = [];
71
69
  this.workers = workers;
72
70
  this.collectClient = collectClient;
73
71
  this.config = config;
74
72
  this.preparationQueue = preparationQueue;
75
73
  }
74
+ /**
75
+ * Waits for every worker to post a `{ type: 'ready' }` message. If any
76
+ * worker fails (error, non-zero exit, or explicit `startupError` message)
77
+ * the remaining workers are terminated and the returned promise rejects.
78
+ *
79
+ * @param workers - The worker instances to wait on.
80
+ */
81
+ static async awaitWorkersReady(workers) {
82
+ // Each entry resolves on 'ready' or rejects on failure.
83
+ const perWorker = workers.map((worker) => new Promise((resolve, reject) => {
84
+ const onMessage = (msg) => {
85
+ if (msg.type === 'ready') {
86
+ cleanup();
87
+ resolve();
88
+ }
89
+ else if (msg.type === 'startupError') {
90
+ cleanup();
91
+ reject(new Error(`Worker startup failed: ${msg.error}`));
92
+ }
93
+ };
94
+ const onError = (err) => {
95
+ cleanup();
96
+ reject(new Error(`Worker error during startup: ${err.message}`));
97
+ };
98
+ const onExit = (code) => {
99
+ cleanup();
100
+ if (code !== 0) {
101
+ reject(new Error(`Worker exited with code ${code} during startup`));
102
+ }
103
+ };
104
+ const cleanup = () => {
105
+ worker.off('message', onMessage);
106
+ worker.off('error', onError);
107
+ worker.off('exit', onExit);
108
+ };
109
+ worker.on('message', onMessage);
110
+ worker.on('error', onError);
111
+ worker.on('exit', onExit);
112
+ }));
113
+ try {
114
+ await Promise.all(perWorker);
115
+ }
116
+ catch (err) {
117
+ // At least one worker failed — terminate all workers so none are
118
+ // left orphaned (no processor instance will be returned to the caller).
119
+ await Promise.allSettled(workers.map((w) => w.terminate()));
120
+ throw err;
121
+ }
122
+ }
76
123
  /**
77
124
  * Creates a new WhoCanProcessor with worker threads, a shared cache, and
78
125
  * lifetime-scoped message routing. The processor is ready to accept requests
@@ -85,7 +132,11 @@ export class WhoCanProcessor {
85
132
  static async create(config) {
86
133
  const numWorkers = getNumberOfWorkers(config.tuning?.workerThreads);
87
134
  const perWorkerConcurrency = config.tuning?.perWorkerConcurrency ?? 50;
135
+ const mainThreadConcurrency = config.tuning?.mainThreadConcurrency ?? 50;
88
136
  const workerPath = getWorkerScriptPath('whoCan/WhoCanWorkerThreadWorker.js');
137
+ if ((!workerPath || numWorkers === 0) && mainThreadConcurrency <= 0) {
138
+ throw new Error('WhoCanProcessor: no worker script found and mainThreadConcurrency is 0 — no work can be processed');
139
+ }
89
140
  const workers = !workerPath
90
141
  ? []
91
142
  : new Array(numWorkers).fill(undefined).map(() => {
@@ -96,18 +147,38 @@ export class WhoCanProcessor {
96
147
  concurrency: perWorkerConcurrency,
97
148
  s3AbacOverride: config.s3AbacOverride,
98
149
  collectGrantDetails: config.collectGrantDetails,
99
- clientFactoryPlugin: config.clientFactoryPlugin
150
+ clientFactoryPlugin: config.clientFactoryPlugin,
151
+ workerBootstrapPlugin: config.workerBootstrapPlugin
100
152
  }
101
153
  });
102
154
  });
155
+ // Install the shared-cache bridge before waiting for workers to become
156
+ // ready. Workers may issue getCache messages during their getCollectClient()
157
+ // call, which runs concurrently with the ready handshake. If the cache
158
+ // listeners are not installed yet those messages are dropped and the worker
159
+ // deadlocks waiting for a cache response.
160
+ const sharedCache = new SharedArrayBufferMainCache(workers);
161
+ // Wait for all workers to complete bootstrap and signal ready before
162
+ // proceeding. This ensures bootstrap failures are caught reliably and
163
+ // all workers are fully initialized before work is dispatched.
164
+ if (workers.length > 0) {
165
+ await WhoCanProcessor.awaitWorkersReady(workers);
166
+ }
103
167
  const collectClient = await getCollectClient(config.collectConfigs, config.partition, {
104
- cacheProvider: new SharedArrayBufferMainCache(workers),
168
+ cacheProvider: sharedCache,
105
169
  clientFactoryPlugin: config.clientFactoryPlugin
106
170
  });
107
171
  const preparationConcurrency = config.tuning?.preparationConcurrency ?? Math.min(50, Math.max(1, numberOfCpus() * 2));
108
172
  const preparationQueue = new StreamingJobQueue(preparationConcurrency, console, async () => { });
109
173
  const processor = new WhoCanProcessor(workers, collectClient, config, preparationQueue);
110
174
  processor.installLifetimeWorkerListeners();
175
+ // Signal workers to start pulling tasks. This must happen after
176
+ // installLifetimeWorkerListeners() so the main thread's requestTask
177
+ // handler is installed before the workers begin emitting requestTask
178
+ // messages.
179
+ for (const worker of workers) {
180
+ worker.postMessage({ type: 'start' });
181
+ }
111
182
  processor.createMainThreadRunner();
112
183
  return processor;
113
184
  }
@@ -141,8 +212,7 @@ export class WhoCanProcessor {
141
212
  * While draining, new calls to {@link enqueueWhoCan} will throw. Once
142
213
  * the drain completes, the processor re-opens for new enqueues.
143
214
  *
144
- * @returns a promise that resolves when idle, or rejects if a worker crashes
145
- * or an onRequestSettled callback throws/rejects.
215
+ * @returns a promise that resolves when idle, or rejects if a worker crashes.
146
216
  */
147
217
  async waitForIdle() {
148
218
  if (this.isShutdown) {
@@ -150,7 +220,6 @@ export class WhoCanProcessor {
150
220
  }
151
221
  // If already idle, return immediately
152
222
  if (this.isIdle()) {
153
- this.rejectIfSettledCallbackErrors();
154
223
  return;
155
224
  }
156
225
  this.draining = true;
@@ -158,7 +227,6 @@ export class WhoCanProcessor {
158
227
  await new Promise((resolve, reject) => {
159
228
  this.idleWaiters.push({ resolve, reject });
160
229
  });
161
- this.rejectIfSettledCallbackErrors();
162
230
  }
163
231
  finally {
164
232
  // Only clear draining when the last waiter has been notified
@@ -190,16 +258,17 @@ export class WhoCanProcessor {
190
258
  // Reject all pending requests that haven't been admitted
191
259
  while (this.pendingRequests.length > 0) {
192
260
  const submitted = this.pendingRequests.shift();
261
+ const event = {
262
+ status: 'rejected',
263
+ requestId: submitted.requestId,
264
+ request: submitted.request,
265
+ error: new Error('WhoCanProcessor was shut down before this request was processed')
266
+ };
193
267
  try {
194
- await this.config.onRequestSettled({
195
- status: 'rejected',
196
- requestId: submitted.requestId,
197
- request: submitted.request,
198
- error: new Error('WhoCanProcessor was shut down before this request was processed')
199
- });
268
+ await this.config.onRequestSettled(event);
200
269
  }
201
270
  catch (err) {
202
- this.settledCallbackErrors.push(err instanceof Error ? err : new Error(String(err)));
271
+ await this.handleSettlementFailure(event, err);
203
272
  }
204
273
  }
205
274
  // Wait for active requests to finish naturally (includes draining in-flight work)
@@ -685,7 +754,7 @@ export class WhoCanProcessor {
685
754
  state.allowed.push(result.value);
686
755
  }
687
756
  else if (result.status === 'rejected') {
688
- console.error('Error running simulation:', result.reason);
757
+ log.error('Error running simulation', { error: result.reason });
689
758
  state.simulationErrors.push(result);
690
759
  }
691
760
  this.checkRequestCompletion(state);
@@ -820,8 +889,8 @@ export class WhoCanProcessor {
820
889
  })();
821
890
  }
822
891
  /**
823
- * Invokes the onRequestSettled callback and accumulates any errors for
824
- * later surfacing via waitForIdle.
892
+ * Invokes the onRequestSettled callback and routes any errors through
893
+ * {@link handleSettlementFailure}.
825
894
  *
826
895
  * @param event - The settlement event to deliver.
827
896
  */
@@ -830,7 +899,7 @@ export class WhoCanProcessor {
830
899
  await this.config.onRequestSettled(event);
831
900
  }
832
901
  catch (err) {
833
- this.settledCallbackErrors.push(err instanceof Error ? err : new Error(String(err)));
902
+ await this.handleSettlementFailure(event, err);
834
903
  }
835
904
  }
836
905
  /**
@@ -914,19 +983,31 @@ export class WhoCanProcessor {
914
983
  }
915
984
  }
916
985
  /**
917
- * If any onRequestSettled callbacks threw, throws the first error.
918
- * Called after waitForIdle resolves to surface callback errors.
986
+ * Handles an error thrown by the `onRequestSettled` callback. If the
987
+ * `onSettlementFailure` callback is defined, it is invoked with the event
988
+ * and error; any error it throws is silently ignored. If not defined, a
989
+ * warning is logged.
990
+ *
991
+ * @param event - The settlement event that was being delivered.
992
+ * @param err - The raw error thrown by the `onRequestSettled` callback.
919
993
  */
920
- rejectIfSettledCallbackErrors() {
921
- if (this.settledCallbackErrors.length > 0) {
922
- const error = this.settledCallbackErrors[0];
923
- this.settledCallbackErrors = [];
924
- throw error;
994
+ async handleSettlementFailure(event, err) {
995
+ const error = err instanceof Error ? err : new Error(String(err));
996
+ if (this.config.onSettlementFailure) {
997
+ try {
998
+ await this.config.onSettlementFailure(event, error);
999
+ }
1000
+ catch {
1001
+ // onSettlementFailure itself failed — silently ignored
1002
+ }
1003
+ }
1004
+ else {
1005
+ log.warn('onRequestSettled callback failed and no onSettlementFailure handler is defined', {
1006
+ requestId: event.requestId,
1007
+ error
1008
+ });
925
1009
  }
926
1010
  }
927
- // ──────────────────────────────────────────────────────────────────────────
928
- // Worker failure handling
929
- // ──────────────────────────────────────────────────────────────────────────
930
1011
  /**
931
1012
  * Handles an unexpected worker failure by marking the processor as dead,
932
1013
  * terminating remaining workers, and rejecting all active and pending requests.
@@ -951,13 +1032,15 @@ export class WhoCanProcessor {
951
1032
  // Reject all pending requests
952
1033
  while (this.pendingRequests.length > 0) {
953
1034
  const submitted = this.pendingRequests.shift();
954
- void this.config
955
- .onRequestSettled({
1035
+ const event = {
956
1036
  status: 'rejected',
957
1037
  requestId: submitted.requestId,
958
1038
  request: submitted.request,
959
1039
  error
960
- })
1040
+ };
1041
+ void this.config
1042
+ .onRequestSettled(event)
1043
+ .catch((err) => this.handleSettlementFailure(event, err))
961
1044
  .catch(() => { });
962
1045
  }
963
1046
  // Reject all idle waiters
@@ -1 +1 @@
1
- {"version":3,"file":"WhoCanProcessor.js","sourceRoot":"","sources":["../../../src/whoCan/WhoCanProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WhoCanProcessor.js","sourceRoot":"","sources":["../../../src/whoCan/WhoCanProcessor.ts"],"names":[],"mappings":"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"}
@@ -2,34 +2,50 @@
2
2
  // Lifetime-scoped: a single PullBasedJobRunner is created at init and
3
3
  // processes work items until 'finishWork' is received from the main thread.
4
4
  import {} from '@cloud-copilot/iam-collect';
5
- import { parentPort, workerData } from 'worker_threads';
5
+ import { parentPort, threadId, workerData } from 'worker_threads';
6
6
  import { getCollectClient } from '../collect/collect.js';
7
+ import { dynamicImport } from '../utils/dynamicImport.js';
7
8
  import {} from '../utils/s3Abac.js';
8
9
  import { PullBasedJobRunner } from '../workers/JobRunner.js';
9
10
  import { SharedArrayBufferWorkerCache } from '../workers/SharedArrayBufferWorkerCache.js';
10
11
  import { convertToDenialDetails, toLightRequestAnalysis } from './requestAnalysis.js';
11
12
  import { executeWhoCan } from './WhoCanWorker.js';
13
+ import {} from './workerBootstrapPlugin.js';
12
14
  if (!parentPort) {
13
15
  throw new Error('Must be run as a worker thread');
14
16
  }
15
17
  // Get config from the main thread
16
- const { concurrency, collectConfigs, partition, s3AbacOverride, collectGrantDetails, clientFactoryPlugin } = workerData;
18
+ const { concurrency, collectConfigs, partition, s3AbacOverride, collectGrantDetails, clientFactoryPlugin, workerBootstrapPlugin } = workerData;
17
19
  // Pending task requests from workers, keyed by workerId
18
20
  const taskPromises = {};
19
21
  // Pending deny details checks, keyed by a unique id for each check
20
22
  let denyDetailsCheckId = 0;
21
23
  const pendingDenyDetailsChecks = {};
22
- const collectClientPromise = getCollectClient(collectConfigs, partition, {
23
- cacheProvider: new SharedArrayBufferWorkerCache(parentPort),
24
- clientFactoryPlugin
25
- });
24
+ /**
25
+ * Runs the consumer-provided bootstrap plugin if one was specified.
26
+ * Called before any other worker initialization.
27
+ */
28
+ async function runBootstrapPlugin() {
29
+ if (!workerBootstrapPlugin)
30
+ return;
31
+ const mod = await dynamicImport(workerBootstrapPlugin.module);
32
+ const factory = mod[workerBootstrapPlugin.factoryExport];
33
+ if (!factory) {
34
+ throw new Error(`Bootstrap export '${workerBootstrapPlugin.factoryExport}' not found in module '${workerBootstrapPlugin.module}'`);
35
+ }
36
+ else if (typeof factory !== 'function') {
37
+ throw new Error(`Bootstrap export '${workerBootstrapPlugin.factoryExport}' in module '${workerBootstrapPlugin.module}' is not a function`);
38
+ }
39
+ await factory({ data: workerBootstrapPlugin.data, threadId, isMainThread: false });
40
+ }
26
41
  /**
27
42
  * Creates the lifetime-scoped PullBasedJobRunner. The runner starts
28
43
  * immediately and processes work items until finishAllWork() is called.
29
44
  *
45
+ * @param collectClient - Promise for the collect client, resolved during bootstrap.
30
46
  * @returns the PullBasedJobRunner instance.
31
47
  */
32
- function createJobRunner() {
48
+ function createJobRunner(collectClient) {
33
49
  return new PullBasedJobRunner(concurrency, async (workerId) => {
34
50
  return new Promise((resolve) => {
35
51
  parentPort.postMessage({ type: 'requestTask', workerId });
@@ -40,7 +56,6 @@ function createJobRunner() {
40
56
  return {
41
57
  properties: { requestId, collectDenyDetails: workItem.collectDenyDetails },
42
58
  execute: async () => {
43
- const collectClient = await collectClientPromise;
44
59
  return executeWhoCan(workItem, collectClient, {
45
60
  s3AbacOverride,
46
61
  collectDenyDetails: workItem.collectDenyDetails,
@@ -112,29 +127,67 @@ function createJobRunner() {
112
127
  }
113
128
  });
114
129
  }
115
- // Create the lifetime-scoped runner immediately
116
- const jobRunner = createJobRunner();
117
- parentPort.on('message', (msg) => {
118
- if (msg.type === 'task' && msg.workerId in taskPromises) {
119
- // Task delivered from main thread (may be undefined if nothing is ready)
120
- taskPromises[msg.workerId](msg.task);
121
- delete taskPromises[msg.workerId];
122
- }
123
- else if (msg.type === 'workAvailable') {
124
- jobRunner.notifyWorkAvailable();
125
- }
126
- else if (msg.type === 'finishWork') {
127
- jobRunner.finishAllWork().then(() => {
128
- parentPort.postMessage({ type: 'finished' });
129
- });
130
- }
131
- else if (msg.type === 'denyDetailsCheckResult') {
132
- const checkId = msg.checkId;
133
- const resolveFn = pendingDenyDetailsChecks[checkId];
134
- if (resolveFn) {
135
- resolveFn(msg.shouldInclude);
136
- delete pendingDenyDetailsChecks[checkId];
130
+ /**
131
+ * Async entry point for the worker. Initializes bootstrap, collect client,
132
+ * message handler, and job runner in the correct order.
133
+ */
134
+ async function main() {
135
+ // 1. Run bootstrap plugin if present
136
+ await runBootstrapPlugin();
137
+ // 2. Start creating the collect client (resolves asynchronously — the
138
+ // shared-cache bridge is already installed on the main thread so cache
139
+ // messages will be served during startup)
140
+ const collectClientPromise = await getCollectClient(collectConfigs, partition, {
141
+ cacheProvider: new SharedArrayBufferWorkerCache(parentPort),
142
+ clientFactoryPlugin
143
+ });
144
+ // 3. Signal ready (tells main thread bootstrap + client init succeeded)
145
+ parentPort.postMessage({ type: 'ready' });
146
+ // 4. Wait for 'start' from the main thread. The main thread sends this
147
+ // after installing its lifetime message listeners, so that requestTask
148
+ // messages emitted by the job runner are not dropped.
149
+ await new Promise((resolve) => {
150
+ const onStart = (msg) => {
151
+ if (msg.type === 'start') {
152
+ parentPort.off('message', onStart);
153
+ resolve();
154
+ }
155
+ };
156
+ parentPort.on('message', onStart);
157
+ });
158
+ // 5. Install message handler (must be ready before runner pulls tasks).
159
+ // jobRunner is assigned after the handler is installed but before the
160
+ // runner constructor fires its first requestTask, so the closure is safe.
161
+ let jobRunner;
162
+ parentPort.on('message', (msg) => {
163
+ if (msg.type === 'task' && msg.workerId in taskPromises) {
164
+ // Task delivered from main thread (may be undefined if nothing is ready)
165
+ taskPromises[msg.workerId](msg.task);
166
+ delete taskPromises[msg.workerId];
137
167
  }
138
- }
168
+ else if (msg.type === 'workAvailable') {
169
+ jobRunner.notifyWorkAvailable();
170
+ }
171
+ else if (msg.type === 'finishWork') {
172
+ jobRunner.finishAllWork().then(() => {
173
+ parentPort.postMessage({ type: 'finished' });
174
+ });
175
+ }
176
+ else if (msg.type === 'denyDetailsCheckResult') {
177
+ const checkId = msg.checkId;
178
+ const resolveFn = pendingDenyDetailsChecks[checkId];
179
+ if (resolveFn) {
180
+ resolveFn(msg.shouldInclude);
181
+ delete pendingDenyDetailsChecks[checkId];
182
+ }
183
+ }
184
+ });
185
+ // 6. Create job runner (constructor eagerly starts pulling tasks)
186
+ jobRunner = createJobRunner(collectClientPromise);
187
+ }
188
+ void main().catch((err) => {
189
+ // Post explicit error so main thread doesn't depend on unhandled-rejection behavior.
190
+ parentPort.postMessage({ type: 'startupError', error: String(err) });
191
+ process.exit(1);
139
192
  });
140
193
  //# sourceMappingURL=WhoCanWorkerThreadWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WhoCanWorkerThreadWorker.js","sourceRoot":"","sources":["../../../src/whoCan/WhoCanWorkerThreadWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WhoCanWorkerThreadWorker.js","sourceRoot":"","sources":["../../../src/whoCan/WhoCanWorkerThreadWorker.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { type Statement } from '@cloud-copilot/iam-policy';
6
6
  import { type RequestDenial, type RequestGrant } from '@cloud-copilot/iam-simulate';
7
7
  import { type S3AbacOverride } from '../utils/s3Abac.js';
8
8
  import { type LightRequestAnalysis } from './requestAnalysis.js';
9
+ import { type WorkerBootstrapPlugin } from './WhoCanProcessor.js';
9
10
  /**
10
11
  * Limits the set of principals that `whoCan` tests. The scope is a union of
11
12
  * principal ARNs, account IDs, and OU paths. It is **intersected** with the
@@ -66,6 +67,12 @@ export interface ResourceAccessRequest {
66
67
  * Used for scenario testing where a layered client needs to be used in worker threads.
67
68
  */
68
69
  clientFactoryPlugin?: ClientFactoryPlugin;
70
+ /**
71
+ * Optional plugin that runs once per worker thread at startup before any work
72
+ * is processed. Use this for loading instrumentation, initializing logging
73
+ * context, or other worker-lifetime setup.
74
+ */
75
+ workerBootstrapPlugin?: WorkerBootstrapPlugin;
69
76
  /**
70
77
  * Optional scope to limit the set of principals tested. When provided, the
71
78
  * scope is intersected with the resource-policy-derived scope to narrow the
@@ -1 +1 @@
1
- {"version":3,"file":"whoCan.d.ts","sourceRoot":"","sources":["../../../src/whoCan/whoCan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"whoCan.d.ts","sourceRoot":"","sources":["../../../src/whoCan/whoCan.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export async function whoCan(collectConfigs, partition, request) {
34
34
  },
35
35
  ignorePrincipalIndex: request.ignorePrincipalIndex,
36
36
  clientFactoryPlugin: request.clientFactoryPlugin,
37
+ workerBootstrapPlugin: request.workerBootstrapPlugin,
37
38
  s3AbacOverride: request.s3AbacOverride,
38
39
  collectGrantDetails: !!request.collectGrantDetails,
39
40
  onRequestSettled: async (event) => {