4runr-os 2.10.66 → 2.10.68

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 (25) hide show
  1. package/apps/gateway/dist/apps/gateway/src/index.js +2 -0
  2. package/apps/gateway/dist/apps/gateway/src/index.js.map +1 -1
  3. package/apps/gateway/dist/apps/gateway/src/routes/sentinel-policies.d.ts.map +1 -1
  4. package/apps/gateway/dist/apps/gateway/src/routes/sentinel-policies.js +8 -3
  5. package/apps/gateway/dist/apps/gateway/src/routes/sentinel-policies.js.map +1 -1
  6. package/apps/gateway/dist/apps/gateway/src/security/sentinel-config-store.d.ts +14 -0
  7. package/apps/gateway/dist/apps/gateway/src/security/sentinel-config-store.d.ts.map +1 -0
  8. package/apps/gateway/dist/apps/gateway/src/security/sentinel-config-store.js +168 -0
  9. package/apps/gateway/dist/apps/gateway/src/security/sentinel-config-store.js.map +1 -0
  10. package/apps/gateway/package-lock.json +125 -125
  11. package/apps/gateway/src/__tests__/run-kill.test.ts +80 -80
  12. package/apps/gateway/src/__tests__/sentinel-events.test.ts +95 -95
  13. package/apps/gateway/src/__tests__/sentinel-execute-watch.test.ts +45 -45
  14. package/apps/gateway/src/__tests__/sentinel-policies.test.ts +90 -90
  15. package/apps/gateway/src/__tests__/sentinel-publish-kill.test.ts +30 -30
  16. package/apps/gateway/src/__tests__/sentinel-run-failure.test.ts +89 -89
  17. package/apps/gateway/src/adapters/gateway-cancel-adapter.ts +32 -32
  18. package/apps/gateway/src/queue/sentinel-execute-watch.ts +42 -42
  19. package/apps/gateway/src/runs/run-kill.ts +117 -117
  20. package/apps/gateway/src/security/sentinel-run-failure.ts +85 -85
  21. package/dist/version-check.d.ts.map +1 -1
  22. package/dist/version-check.js +47 -26
  23. package/dist/version-check.js.map +1 -1
  24. package/package.json +4 -4
  25. package/scripts/os-tools-smoke.cjs +460 -460
@@ -199,16 +199,16 @@
199
199
  }
200
200
  },
201
201
  "node_modules/@aws-sdk/client-kms": {
202
- "version": "3.1059.0",
203
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1059.0.tgz",
204
- "integrity": "sha512-4FPu9hM3Lvb98hWpuwLeaGrFcuc59tdP2tpTLpONTTaf8H3umJNNriSAu/0FDK656XIh9pzj4E4a3qLK4RkQEw==",
202
+ "version": "3.1063.0",
203
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-kms/-/client-kms-3.1063.0.tgz",
204
+ "integrity": "sha512-nRq2Hcyxh6nl3dZ6dVXIF5lh650u8eIcpVZ1Ur6Lk/IiuQw9OFCP7KL4TDRpePzpIDL15aUFPjc9gLMmI6Q1zw==",
205
205
  "license": "Apache-2.0",
206
206
  "dependencies": {
207
207
  "@aws-crypto/sha256-browser": "5.2.0",
208
208
  "@aws-crypto/sha256-js": "5.2.0",
209
- "@aws-sdk/core": "^3.974.16",
210
- "@aws-sdk/credential-provider-node": "^3.972.49",
211
- "@aws-sdk/types": "^3.973.10",
209
+ "@aws-sdk/core": "^3.974.18",
210
+ "@aws-sdk/credential-provider-node": "^3.972.52",
211
+ "@aws-sdk/types": "^3.973.11",
212
212
  "@smithy/core": "^3.24.6",
213
213
  "@smithy/fetch-http-handler": "^5.4.6",
214
214
  "@smithy/node-http-handler": "^4.7.6",
@@ -220,16 +220,16 @@
220
220
  }
221
221
  },
222
222
  "node_modules/@aws-sdk/client-secrets-manager": {
223
- "version": "3.1059.0",
224
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1059.0.tgz",
225
- "integrity": "sha512-gAxWLTS5DKdIEDUgc6ulyGZTG6ExvGjer/yQCPR02SrQ4e2957t0dsFBVfVk+qgXKLcHit4NPJJCC5BLdxPvpA==",
223
+ "version": "3.1063.0",
224
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-secrets-manager/-/client-secrets-manager-3.1063.0.tgz",
225
+ "integrity": "sha512-oP3/vHpo93rb/0JWhNcLA7fVbV1I6fBV9DrprScf71t3EVzwMyqLnVuv+5q2/3o32sCZ58YouZmqL0CqczyQzA==",
226
226
  "license": "Apache-2.0",
227
227
  "dependencies": {
228
228
  "@aws-crypto/sha256-browser": "5.2.0",
229
229
  "@aws-crypto/sha256-js": "5.2.0",
230
- "@aws-sdk/core": "^3.974.16",
231
- "@aws-sdk/credential-provider-node": "^3.972.49",
232
- "@aws-sdk/types": "^3.973.10",
230
+ "@aws-sdk/core": "^3.974.18",
231
+ "@aws-sdk/credential-provider-node": "^3.972.52",
232
+ "@aws-sdk/types": "^3.973.11",
233
233
  "@smithy/core": "^3.24.6",
234
234
  "@smithy/fetch-http-handler": "^5.4.6",
235
235
  "@smithy/node-http-handler": "^4.7.6",
@@ -241,16 +241,16 @@
241
241
  }
242
242
  },
243
243
  "node_modules/@aws-sdk/client-ssm": {
244
- "version": "3.1059.0",
245
- "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1059.0.tgz",
246
- "integrity": "sha512-c6VaL8BKDeDSHWz59ELsYZcQit7r4aofVm07acWnxw1DQy5amQagOymPDhYwIpB6H3wZNMDu4FK3FxecNDzGww==",
244
+ "version": "3.1063.0",
245
+ "resolved": "https://registry.npmjs.org/@aws-sdk/client-ssm/-/client-ssm-3.1063.0.tgz",
246
+ "integrity": "sha512-qLXNofwgCB7/3mhWR9pz/bnNgyvSxjp38SvhTazESrt3mLtX9+kMg8UOKTZol0mvZg209UVIS82xY1JhJDtGpA==",
247
247
  "license": "Apache-2.0",
248
248
  "dependencies": {
249
249
  "@aws-crypto/sha256-browser": "5.2.0",
250
250
  "@aws-crypto/sha256-js": "5.2.0",
251
- "@aws-sdk/core": "^3.974.16",
252
- "@aws-sdk/credential-provider-node": "^3.972.49",
253
- "@aws-sdk/types": "^3.973.10",
251
+ "@aws-sdk/core": "^3.974.18",
252
+ "@aws-sdk/credential-provider-node": "^3.972.52",
253
+ "@aws-sdk/types": "^3.973.11",
254
254
  "@smithy/core": "^3.24.6",
255
255
  "@smithy/fetch-http-handler": "^5.4.6",
256
256
  "@smithy/node-http-handler": "^4.7.6",
@@ -262,13 +262,13 @@
262
262
  }
263
263
  },
264
264
  "node_modules/@aws-sdk/core": {
265
- "version": "3.974.16",
266
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.16.tgz",
267
- "integrity": "sha512-WXPvTfG7J2H4Ae6ewhd0285UC+8+9p/pKoibXXQlbXSqHexFLGM0oXHTwDfQEPmrNnvuWPpVjgoAUfW+cUFbXw==",
265
+ "version": "3.974.18",
266
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.18.tgz",
267
+ "integrity": "sha512-JDYCPI0j7zGrzXTDFsLB346cxss7J/AxH7+O0MzWlqppJBEyB9Qe6TQXRL6iwLUo/xZkNv9KFmBL2hqElmwW0g==",
268
268
  "license": "Apache-2.0",
269
269
  "dependencies": {
270
- "@aws-sdk/types": "^3.973.10",
271
- "@aws-sdk/xml-builder": "^3.972.27",
270
+ "@aws-sdk/types": "^3.973.11",
271
+ "@aws-sdk/xml-builder": "^3.972.28",
272
272
  "@aws/lambda-invoke-store": "^0.2.2",
273
273
  "@smithy/core": "^3.24.6",
274
274
  "@smithy/signature-v4": "^5.4.6",
@@ -281,13 +281,13 @@
281
281
  }
282
282
  },
283
283
  "node_modules/@aws-sdk/credential-provider-env": {
284
- "version": "3.972.42",
285
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.42.tgz",
286
- "integrity": "sha512-0+MCOYqeHyADFdeVr5/e1G8JJoWm7/szZAiKssqJS84E9+tO07509YNyQRJ5a7x5wO9YFAV324syrwm6yIcs5w==",
284
+ "version": "3.972.44",
285
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.44.tgz",
286
+ "integrity": "sha512-3hKJVrZ7bqXzDAXCQp+OaQ1ASN+vWstaNuEH418wQVl//cRZhqhfR9Bjk1qIWmgUGe8/D3gdO73PgidRj378EQ==",
287
287
  "license": "Apache-2.0",
288
288
  "dependencies": {
289
- "@aws-sdk/core": "^3.974.16",
290
- "@aws-sdk/types": "^3.973.10",
289
+ "@aws-sdk/core": "^3.974.18",
290
+ "@aws-sdk/types": "^3.973.11",
291
291
  "@smithy/core": "^3.24.6",
292
292
  "@smithy/types": "^4.14.3",
293
293
  "tslib": "^2.6.2"
@@ -297,13 +297,13 @@
297
297
  }
298
298
  },
299
299
  "node_modules/@aws-sdk/credential-provider-http": {
300
- "version": "3.972.44",
301
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.44.tgz",
302
- "integrity": "sha512-auuhqlnv4PUdfqcdHLKGTdoCceXOuby6WNeCMoxtZmQGWNCibbz95/lSYzNWq9cExN17UlRFqo1nvTcC+zHfEg==",
300
+ "version": "3.972.46",
301
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.46.tgz",
302
+ "integrity": "sha512-VhwC9pGAZHhiQ2xSViyOPDFqvr9aRxGCAXZtADsUhU3R65nad7y//CwynE6mQnWNR+suRlqE79W36IVayL+m1g==",
303
303
  "license": "Apache-2.0",
304
304
  "dependencies": {
305
- "@aws-sdk/core": "^3.974.16",
306
- "@aws-sdk/types": "^3.973.10",
305
+ "@aws-sdk/core": "^3.974.18",
306
+ "@aws-sdk/types": "^3.973.11",
307
307
  "@smithy/core": "^3.24.6",
308
308
  "@smithy/fetch-http-handler": "^5.4.6",
309
309
  "@smithy/node-http-handler": "^4.7.6",
@@ -315,20 +315,20 @@
315
315
  }
316
316
  },
317
317
  "node_modules/@aws-sdk/credential-provider-ini": {
318
- "version": "3.972.47",
319
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.47.tgz",
320
- "integrity": "sha512-G+8JuG0CfLcC2IQXFVqMR1+KDF1rksebr+YL6+HHYbNjs/hiwX53ye45sU3pJKljpS2uIXqOrOsicHIv02vWrw==",
318
+ "version": "3.972.50",
319
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.50.tgz",
320
+ "integrity": "sha512-09Xi6ovxiK42+De/qBGF71sT5F2bWgYM+1fFyDwSOpy1xpsQ5R/naIu7MVDpH6Dic36QNc8dAv4KADtMGK2JYg==",
321
321
  "license": "Apache-2.0",
322
322
  "dependencies": {
323
- "@aws-sdk/core": "^3.974.16",
324
- "@aws-sdk/credential-provider-env": "^3.972.42",
325
- "@aws-sdk/credential-provider-http": "^3.972.44",
326
- "@aws-sdk/credential-provider-login": "^3.972.46",
327
- "@aws-sdk/credential-provider-process": "^3.972.42",
328
- "@aws-sdk/credential-provider-sso": "^3.972.46",
329
- "@aws-sdk/credential-provider-web-identity": "^3.972.46",
330
- "@aws-sdk/nested-clients": "^3.997.14",
331
- "@aws-sdk/types": "^3.973.10",
323
+ "@aws-sdk/core": "^3.974.18",
324
+ "@aws-sdk/credential-provider-env": "^3.972.44",
325
+ "@aws-sdk/credential-provider-http": "^3.972.46",
326
+ "@aws-sdk/credential-provider-login": "^3.972.49",
327
+ "@aws-sdk/credential-provider-process": "^3.972.44",
328
+ "@aws-sdk/credential-provider-sso": "^3.972.49",
329
+ "@aws-sdk/credential-provider-web-identity": "^3.972.49",
330
+ "@aws-sdk/nested-clients": "^3.997.17",
331
+ "@aws-sdk/types": "^3.973.11",
332
332
  "@smithy/core": "^3.24.6",
333
333
  "@smithy/credential-provider-imds": "^4.3.7",
334
334
  "@smithy/types": "^4.14.3",
@@ -339,14 +339,14 @@
339
339
  }
340
340
  },
341
341
  "node_modules/@aws-sdk/credential-provider-login": {
342
- "version": "3.972.46",
343
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.46.tgz",
344
- "integrity": "sha512-+H6h2/1Q+iIJ4w+FPCKM//xwy4C9yADknDTR68+K3PbOtB/uLup3zIH8PUKn6QwnttME4VM4ftSTnbvoDf5wXg==",
342
+ "version": "3.972.49",
343
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.49.tgz",
344
+ "integrity": "sha512-EfJF/1Fh9mI4pZyoheU2RY9xUhTcugIZNkD63+orXMkYj/QXacJNbKVDUK90Yv5hE+aX+rt9J/EZ9Qr3vKOa7g==",
345
345
  "license": "Apache-2.0",
346
346
  "dependencies": {
347
- "@aws-sdk/core": "^3.974.16",
348
- "@aws-sdk/nested-clients": "^3.997.14",
349
- "@aws-sdk/types": "^3.973.10",
347
+ "@aws-sdk/core": "^3.974.18",
348
+ "@aws-sdk/nested-clients": "^3.997.17",
349
+ "@aws-sdk/types": "^3.973.11",
350
350
  "@smithy/core": "^3.24.6",
351
351
  "@smithy/types": "^4.14.3",
352
352
  "tslib": "^2.6.2"
@@ -356,18 +356,18 @@
356
356
  }
357
357
  },
358
358
  "node_modules/@aws-sdk/credential-provider-node": {
359
- "version": "3.972.49",
360
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.49.tgz",
361
- "integrity": "sha512-hlyoc+2352BhC+HF91t9avIDJu1+EvQGGltxFB8ADCpAHGYNNLEQAZJIPzw3O/bRiiDSE2B8pdj/fFCXlDTEDg==",
359
+ "version": "3.972.52",
360
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.52.tgz",
361
+ "integrity": "sha512-7QX+PbyiWBEOVipJq8Nke/TqXT6lAPLE7fvTaopa39/IVWuLfS+Fzdy71sZJONf/mLGgmtj6aU17+REw3+aRrw==",
362
362
  "license": "Apache-2.0",
363
363
  "dependencies": {
364
- "@aws-sdk/credential-provider-env": "^3.972.42",
365
- "@aws-sdk/credential-provider-http": "^3.972.44",
366
- "@aws-sdk/credential-provider-ini": "^3.972.47",
367
- "@aws-sdk/credential-provider-process": "^3.972.42",
368
- "@aws-sdk/credential-provider-sso": "^3.972.46",
369
- "@aws-sdk/credential-provider-web-identity": "^3.972.46",
370
- "@aws-sdk/types": "^3.973.10",
364
+ "@aws-sdk/credential-provider-env": "^3.972.44",
365
+ "@aws-sdk/credential-provider-http": "^3.972.46",
366
+ "@aws-sdk/credential-provider-ini": "^3.972.50",
367
+ "@aws-sdk/credential-provider-process": "^3.972.44",
368
+ "@aws-sdk/credential-provider-sso": "^3.972.49",
369
+ "@aws-sdk/credential-provider-web-identity": "^3.972.49",
370
+ "@aws-sdk/types": "^3.973.11",
371
371
  "@smithy/core": "^3.24.6",
372
372
  "@smithy/credential-provider-imds": "^4.3.7",
373
373
  "@smithy/types": "^4.14.3",
@@ -378,13 +378,13 @@
378
378
  }
379
379
  },
380
380
  "node_modules/@aws-sdk/credential-provider-process": {
381
- "version": "3.972.42",
382
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.42.tgz",
383
- "integrity": "sha512-r996IYVtQ7rWa5UfSs3fZLT/Dq/SSgH9wv9zahx9lcg6vvaPPQHFpTy45nZajZu/+OUdEQxEjTn9rOMons59mA==",
381
+ "version": "3.972.44",
382
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.44.tgz",
383
+ "integrity": "sha512-V+UUhZpRP7QDRhi+qgBDisM9tUBnYmMje8Bk77A6MZsfeGeGdMsQXmaHP1CDYFcept0o/Rz5g2Y0TMeVlG9dzg==",
384
384
  "license": "Apache-2.0",
385
385
  "dependencies": {
386
- "@aws-sdk/core": "^3.974.16",
387
- "@aws-sdk/types": "^3.973.10",
386
+ "@aws-sdk/core": "^3.974.18",
387
+ "@aws-sdk/types": "^3.973.11",
388
388
  "@smithy/core": "^3.24.6",
389
389
  "@smithy/types": "^4.14.3",
390
390
  "tslib": "^2.6.2"
@@ -394,15 +394,15 @@
394
394
  }
395
395
  },
396
396
  "node_modules/@aws-sdk/credential-provider-sso": {
397
- "version": "3.972.46",
398
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.46.tgz",
399
- "integrity": "sha512-vd+UqRbiYLvXXH3kTAuTxq+Vdb3rOgg29/FeB35ETsgdJTTB7x3YuqtpRckATsL5bDRXFVQo0uBj0/vxCJ8hHg==",
397
+ "version": "3.972.49",
398
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.49.tgz",
399
+ "integrity": "sha512-9QqOYGuh5tZ76OzaT68kwI78AH+5lS/uZGGvkfxb3fc8FzRrIz2jOufNTliEBEeSAwmgK2rWLNsK+IB3zbtNPA==",
400
400
  "license": "Apache-2.0",
401
401
  "dependencies": {
402
- "@aws-sdk/core": "^3.974.16",
403
- "@aws-sdk/nested-clients": "^3.997.14",
404
- "@aws-sdk/token-providers": "3.1059.0",
405
- "@aws-sdk/types": "^3.973.10",
402
+ "@aws-sdk/core": "^3.974.18",
403
+ "@aws-sdk/nested-clients": "^3.997.17",
404
+ "@aws-sdk/token-providers": "3.1063.0",
405
+ "@aws-sdk/types": "^3.973.11",
406
406
  "@smithy/core": "^3.24.6",
407
407
  "@smithy/types": "^4.14.3",
408
408
  "tslib": "^2.6.2"
@@ -412,14 +412,14 @@
412
412
  }
413
413
  },
414
414
  "node_modules/@aws-sdk/credential-provider-web-identity": {
415
- "version": "3.972.46",
416
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.46.tgz",
417
- "integrity": "sha512-xuxBbMorygYsbDV6E/tUGQUgIDfhnzxz8uJYX8rByzehI6gLUu8RPsgOpLmh9YWerqeHZxJbqzgheBSB7tpooQ==",
415
+ "version": "3.972.49",
416
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.49.tgz",
417
+ "integrity": "sha512-IYx1lN38MnnPXv+NBLpuATu0cZakbZ321TAfjW+aVkw7HIJF38YnEwdeEO55MSl3pl7hIX1IvvnD6EmnAzmAJw==",
418
418
  "license": "Apache-2.0",
419
419
  "dependencies": {
420
- "@aws-sdk/core": "^3.974.16",
421
- "@aws-sdk/nested-clients": "^3.997.14",
422
- "@aws-sdk/types": "^3.973.10",
420
+ "@aws-sdk/core": "^3.974.18",
421
+ "@aws-sdk/nested-clients": "^3.997.17",
422
+ "@aws-sdk/types": "^3.973.11",
423
423
  "@smithy/core": "^3.24.6",
424
424
  "@smithy/types": "^4.14.3",
425
425
  "tslib": "^2.6.2"
@@ -429,16 +429,16 @@
429
429
  }
430
430
  },
431
431
  "node_modules/@aws-sdk/nested-clients": {
432
- "version": "3.997.14",
433
- "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.14.tgz",
434
- "integrity": "sha512-T5CS1r4P27FjkBYIWwVibWqEuq32BbCga2Z5m5OBSdSdi2wPfW2vl6zLWAB/5MeeyC4s2pY/MY3cj2Gd3rgSkg==",
432
+ "version": "3.997.17",
433
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.17.tgz",
434
+ "integrity": "sha512-lDRgraoTfKRawUyc176Ow93mrNrOho/x+EoK4C+lKU+vKkHWhNhzvSMVAx0WEJUJoeQxxDN5ZdKMfiGEyNejig==",
435
435
  "license": "Apache-2.0",
436
436
  "dependencies": {
437
437
  "@aws-crypto/sha256-browser": "5.2.0",
438
438
  "@aws-crypto/sha256-js": "5.2.0",
439
- "@aws-sdk/core": "^3.974.16",
440
- "@aws-sdk/signature-v4-multi-region": "^3.996.31",
441
- "@aws-sdk/types": "^3.973.10",
439
+ "@aws-sdk/core": "^3.974.18",
440
+ "@aws-sdk/signature-v4-multi-region": "^3.996.32",
441
+ "@aws-sdk/types": "^3.973.11",
442
442
  "@smithy/core": "^3.24.6",
443
443
  "@smithy/fetch-http-handler": "^5.4.6",
444
444
  "@smithy/node-http-handler": "^4.7.6",
@@ -450,12 +450,12 @@
450
450
  }
451
451
  },
452
452
  "node_modules/@aws-sdk/signature-v4-multi-region": {
453
- "version": "3.996.31",
454
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.31.tgz",
455
- "integrity": "sha512-Kn2up9SlG1KC6wRtwf0d7waTGF6rvp9DxYqB54x6UCKdQ6kyaXCqHL4WGb5vUJga5kS8FxnjhY0LqM28aMvnNQ==",
453
+ "version": "3.996.32",
454
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.32.tgz",
455
+ "integrity": "sha512-llvApLcsWtmRFhG2wT3WIp1CmDeRaIYutqty1ZZXoMzK7TiJ6MOLOimk9eXUS8PwgG4ew4pa4QAbt0lfhn++1w==",
456
456
  "license": "Apache-2.0",
457
457
  "dependencies": {
458
- "@aws-sdk/types": "^3.973.10",
458
+ "@aws-sdk/types": "^3.973.11",
459
459
  "@smithy/signature-v4": "^5.4.6",
460
460
  "@smithy/types": "^4.14.3",
461
461
  "tslib": "^2.6.2"
@@ -465,14 +465,14 @@
465
465
  }
466
466
  },
467
467
  "node_modules/@aws-sdk/token-providers": {
468
- "version": "3.1059.0",
469
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1059.0.tgz",
470
- "integrity": "sha512-xql+7YBAE7WYb9xJfY0vcAXM8rJXfClmB2wkt+g/EoLUMog0pOb7o741fE96wFqha0uQTEgTo/5lGGguzavxmw==",
468
+ "version": "3.1063.0",
469
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1063.0.tgz",
470
+ "integrity": "sha512-nYDaWWdzjKiDP5xj8k4oUgcYd4WPgzfAOgdU5vJsaqH/07Dfvm7ffisHCFJ+NEl7kUC9JEIUxh0kznvenbo3NQ==",
471
471
  "license": "Apache-2.0",
472
472
  "dependencies": {
473
- "@aws-sdk/core": "^3.974.16",
474
- "@aws-sdk/nested-clients": "^3.997.14",
475
- "@aws-sdk/types": "^3.973.10",
473
+ "@aws-sdk/core": "^3.974.18",
474
+ "@aws-sdk/nested-clients": "^3.997.17",
475
+ "@aws-sdk/types": "^3.973.11",
476
476
  "@smithy/core": "^3.24.6",
477
477
  "@smithy/types": "^4.14.3",
478
478
  "tslib": "^2.6.2"
@@ -482,9 +482,9 @@
482
482
  }
483
483
  },
484
484
  "node_modules/@aws-sdk/types": {
485
- "version": "3.973.10",
486
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.10.tgz",
487
- "integrity": "sha512-992QrTO7G9qCvKD0fx1rMlqcL14plUcRAbwmqqYVsuF3GrqcvlAL9qxR+baMafarEZ+l7DUQ5lCMmt5mbMhF7g==",
485
+ "version": "3.973.11",
486
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.11.tgz",
487
+ "integrity": "sha512-YjS0qFuECClRh4qhEyW8XagW0fwEPBeZ1cfsW/gU73Kh/ExFILxbzxOfPCmzF/2DwEvhvsHYt0b0qnvStwKYrg==",
488
488
  "license": "Apache-2.0",
489
489
  "dependencies": {
490
490
  "@smithy/types": "^4.14.3",
@@ -495,9 +495,9 @@
495
495
  }
496
496
  },
497
497
  "node_modules/@aws-sdk/util-locate-window": {
498
- "version": "3.965.5",
499
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.5.tgz",
500
- "integrity": "sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==",
498
+ "version": "3.965.6",
499
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.6.tgz",
500
+ "integrity": "sha512-ZfHjfwSzeXj+Lg9AK5ZNmeDkXev6V+w2tn1t4kgDdRtUaRCthepTQiFwbD06EF9oNGH4LaLg+Mb6U16Ypv5bSw==",
501
501
  "license": "Apache-2.0",
502
502
  "dependencies": {
503
503
  "tslib": "^2.6.2"
@@ -507,9 +507,9 @@
507
507
  }
508
508
  },
509
509
  "node_modules/@aws-sdk/xml-builder": {
510
- "version": "3.972.27",
511
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.27.tgz",
512
- "integrity": "sha512-hpsCXCOI436kxWpjtRuIHVvuPP81MOw8f18jzfZeg+UOiiOvlqWcmWChzEhJEu16cOC6+ku4ncBN+7rdt+DZ9g==",
510
+ "version": "3.972.28",
511
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.28.tgz",
512
+ "integrity": "sha512-lI/l3c/vPvsxmspzV63NfS3x9q4CkMmdhJy4QiM+NThAufVkDvi/PZZQ6xETnICL0UD7jI808pY83gllf86RFg==",
513
513
  "license": "Apache-2.0",
514
514
  "dependencies": {
515
515
  "@smithy/types": "^4.14.3",
@@ -2709,9 +2709,9 @@
2709
2709
  }
2710
2710
  },
2711
2711
  "node_modules/@smithy/credential-provider-imds": {
2712
- "version": "4.3.7",
2713
- "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.3.7.tgz",
2714
- "integrity": "sha512-xj8gq/bjFABAh6qWPSDCYcY3kzQIm4b561C+YnHH4zGq8rOgzQ3Shk+JGlpUxSd41UGiO6FkLdUCtNX1FAeHgg==",
2712
+ "version": "4.3.8",
2713
+ "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.3.8.tgz",
2714
+ "integrity": "sha512-5cAM+KZC02sTqDt6NaLXyu50M/GNMd1eTzDVR8Lb0BBsVtu7RWHo47VPPEEv1vt3Yub6uzr+M5FHC+GtoT0USg==",
2715
2715
  "license": "Apache-2.0",
2716
2716
  "dependencies": {
2717
2717
  "@smithy/core": "^3.24.6",
@@ -2749,9 +2749,9 @@
2749
2749
  }
2750
2750
  },
2751
2751
  "node_modules/@smithy/node-http-handler": {
2752
- "version": "4.7.6",
2753
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.6.tgz",
2754
- "integrity": "sha512-3fya8i7GrJilQouk4cZJKdy5k8MWQBpjfXrRNaXDedH8r779tr0jcxyH3+yoTmsluc2+vF4S343yFbnvu8ExDQ==",
2752
+ "version": "4.7.7",
2753
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.7.tgz",
2754
+ "integrity": "sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==",
2755
2755
  "license": "Apache-2.0",
2756
2756
  "dependencies": {
2757
2757
  "@smithy/core": "^3.24.6",
@@ -3546,9 +3546,9 @@
3546
3546
  "license": "MIT"
3547
3547
  },
3548
3548
  "node_modules/baseline-browser-mapping": {
3549
- "version": "2.10.33",
3550
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.33.tgz",
3551
- "integrity": "sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==",
3549
+ "version": "2.10.34",
3550
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz",
3551
+ "integrity": "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==",
3552
3552
  "dev": true,
3553
3553
  "license": "Apache-2.0",
3554
3554
  "bin": {
@@ -4123,9 +4123,9 @@
4123
4123
  }
4124
4124
  },
4125
4125
  "node_modules/electron-to-chromium": {
4126
- "version": "1.5.366",
4127
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.366.tgz",
4128
- "integrity": "sha512-OlRuhb688YTCzzU3gXPLn6nGyd+F+53INE1qaKKlu6kETErE8FYsyDh0XqXEU+uBRn0MpCzz2vfNwORhkap8qg==",
4126
+ "version": "1.5.368",
4127
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz",
4128
+ "integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==",
4129
4129
  "dev": true,
4130
4130
  "license": "ISC"
4131
4131
  },
@@ -5361,9 +5361,9 @@
5361
5361
  "license": "ISC"
5362
5362
  },
5363
5363
  "node_modules/ioredis": {
5364
- "version": "5.11.0",
5365
- "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.11.0.tgz",
5366
- "integrity": "sha512-EZBErytyVovD8f6pDfG3Kb37N6Y3lmDA9NNj+4+IP13CzzHGeX+OyeRM2Um13khRzoBSzzL+5lVnCX8V2RLeMg==",
5364
+ "version": "5.11.1",
5365
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.11.1.tgz",
5366
+ "integrity": "sha512-ehuGcf94bQXhfagULNXrJdfnWO38v070jxSx/qE87Kjzmu2fU7ro5EFAb+OPituLqgfyuQaym5DlrNydW2sJ9A==",
5367
5367
  "license": "MIT",
5368
5368
  "dependencies": {
5369
5369
  "@ioredis/commands": "1.10.0",
@@ -6747,9 +6747,9 @@
6747
6747
  "license": "MIT"
6748
6748
  },
6749
6749
  "node_modules/msgpackr": {
6750
- "version": "1.11.12",
6751
- "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.12.tgz",
6752
- "integrity": "sha512-RBdJ1Un7yGlXWajrkxcSa93nvQ0w4zBf60c0yYv7YtBelP8H2FA7XsfBbMHtXKXUMUxH7zV3Zuozh+kUQWhHvg==",
6750
+ "version": "1.11.13",
6751
+ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.13.tgz",
6752
+ "integrity": "sha512-pWaxg0k1iiNdkAayUQ7Zlz/vYNfVefUttmHxqFcQjjtyqFa3w4x5rginOEzy/GvbWhBDD9K65/ZXyq8qz8utaQ==",
6753
6753
  "license": "MIT",
6754
6754
  "optionalDependencies": {
6755
6755
  "msgpackr-extract": "^3.0.2"
@@ -7907,9 +7907,9 @@
7907
7907
  "license": "BSD-3-Clause"
7908
7908
  },
7909
7909
  "node_modules/semver": {
7910
- "version": "7.8.1",
7911
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz",
7912
- "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==",
7910
+ "version": "7.8.2",
7911
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz",
7912
+ "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==",
7913
7913
  "license": "ISC",
7914
7914
  "bin": {
7915
7915
  "semver": "bin/semver.js"
@@ -1,80 +1,80 @@
1
- /**
2
- * applyRunKill unit tests
3
- */
4
-
5
- import { describe, it, expect, beforeEach, jest } from '@jest/globals';
6
- import { MemoryRunStore } from '../runs/memoryRunStore.js';
7
- import {
8
- applyRunKill,
9
- setRunKillSideEffects,
10
- isTerminalRunStatus,
11
- } from '../runs/run-kill.js';
12
- import { resetMetrics, sentinelKillsTotal } from '../metrics/index.js';
13
-
14
- const mockPublish = jest.fn<() => Promise<void>>().mockResolvedValue(undefined);
15
-
16
- jest.mock('../db/redis.js', () => ({
17
- getRedisClient: jest.fn(() => Promise.resolve({ publish: mockPublish })),
18
- }));
19
-
20
- jest.mock('../queue/index.js', () => ({
21
- removeRunExecutionJob: jest.fn(() => Promise.resolve()),
22
- }));
23
-
24
- const storeRef: { current: MemoryRunStore } = { current: new MemoryRunStore() };
25
-
26
- jest.mock('../runs/index.js', () => ({
27
- getRunStore: () => storeRef.current,
28
- }));
29
-
30
- describe('applyRunKill', () => {
31
- beforeEach(async () => {
32
- resetMetrics();
33
- mockPublish.mockClear();
34
- setRunKillSideEffects({});
35
- storeRef.current = new MemoryRunStore();
36
- await storeRef.current.createRun({ id: 'run-1', name: 'Test', input: {} });
37
- await storeRef.current.updateRunStatus('run-1', 'running', {
38
- startedAt: new Date().toISOString(),
39
- logs: [{ timestamp: 't0', level: 'info', message: 'started' }],
40
- });
41
- });
42
-
43
- it('persists killed status, appends logs, and publishes once', async () => {
44
- const result = await applyRunKill('run-1', 'policy_violation:timeout');
45
-
46
- expect(result.applied).toBe(true);
47
- expect(result.idempotent).toBe(false);
48
-
49
- const run = await storeRef.current.getRunById('run-1');
50
- expect(run?.status).toBe('killed');
51
- expect(run?.logs).toHaveLength(2);
52
- expect(run?.logs?.[0]?.message).toBe('started');
53
- expect(run?.output).toMatchObject({
54
- source: 'sentinel',
55
- action: 'deny',
56
- policy: 'timeout',
57
- });
58
-
59
- expect(mockPublish).toHaveBeenCalled();
60
- const metrics = await sentinelKillsTotal.get();
61
- expect(metrics.values.some((v) => v.labels.trigger === 'policy')).toBe(true);
62
- });
63
-
64
- it('is idempotent for terminal runs and does not publish', async () => {
65
- await applyRunKill('run-1', 'manual_cancellation');
66
- mockPublish.mockClear();
67
- resetMetrics();
68
-
69
- const result = await applyRunKill('run-1', 'manual_cancellation');
70
-
71
- expect(result.applied).toBe(false);
72
- expect(result.idempotent).toBe(true);
73
- expect(mockPublish).not.toHaveBeenCalled();
74
- });
75
-
76
- it('isTerminalRunStatus covers killed/completed/failed', () => {
77
- expect(isTerminalRunStatus('killed')).toBe(true);
78
- expect(isTerminalRunStatus('running')).toBe(false);
79
- });
80
- });
1
+ /**
2
+ * applyRunKill unit tests
3
+ */
4
+
5
+ import { describe, it, expect, beforeEach, jest } from '@jest/globals';
6
+ import { MemoryRunStore } from '../runs/memoryRunStore.js';
7
+ import {
8
+ applyRunKill,
9
+ setRunKillSideEffects,
10
+ isTerminalRunStatus,
11
+ } from '../runs/run-kill.js';
12
+ import { resetMetrics, sentinelKillsTotal } from '../metrics/index.js';
13
+
14
+ const mockPublish = jest.fn<() => Promise<void>>().mockResolvedValue(undefined);
15
+
16
+ jest.mock('../db/redis.js', () => ({
17
+ getRedisClient: jest.fn(() => Promise.resolve({ publish: mockPublish })),
18
+ }));
19
+
20
+ jest.mock('../queue/index.js', () => ({
21
+ removeRunExecutionJob: jest.fn(() => Promise.resolve()),
22
+ }));
23
+
24
+ const storeRef: { current: MemoryRunStore } = { current: new MemoryRunStore() };
25
+
26
+ jest.mock('../runs/index.js', () => ({
27
+ getRunStore: () => storeRef.current,
28
+ }));
29
+
30
+ describe('applyRunKill', () => {
31
+ beforeEach(async () => {
32
+ resetMetrics();
33
+ mockPublish.mockClear();
34
+ setRunKillSideEffects({});
35
+ storeRef.current = new MemoryRunStore();
36
+ await storeRef.current.createRun({ id: 'run-1', name: 'Test', input: {} });
37
+ await storeRef.current.updateRunStatus('run-1', 'running', {
38
+ startedAt: new Date().toISOString(),
39
+ logs: [{ timestamp: 't0', level: 'info', message: 'started' }],
40
+ });
41
+ });
42
+
43
+ it('persists killed status, appends logs, and publishes once', async () => {
44
+ const result = await applyRunKill('run-1', 'policy_violation:timeout');
45
+
46
+ expect(result.applied).toBe(true);
47
+ expect(result.idempotent).toBe(false);
48
+
49
+ const run = await storeRef.current.getRunById('run-1');
50
+ expect(run?.status).toBe('killed');
51
+ expect(run?.logs).toHaveLength(2);
52
+ expect(run?.logs?.[0]?.message).toBe('started');
53
+ expect(run?.output).toMatchObject({
54
+ source: 'sentinel',
55
+ action: 'deny',
56
+ policy: 'timeout',
57
+ });
58
+
59
+ expect(mockPublish).toHaveBeenCalled();
60
+ const metrics = await sentinelKillsTotal.get();
61
+ expect(metrics.values.some((v) => v.labels.trigger === 'policy')).toBe(true);
62
+ });
63
+
64
+ it('is idempotent for terminal runs and does not publish', async () => {
65
+ await applyRunKill('run-1', 'manual_cancellation');
66
+ mockPublish.mockClear();
67
+ resetMetrics();
68
+
69
+ const result = await applyRunKill('run-1', 'manual_cancellation');
70
+
71
+ expect(result.applied).toBe(false);
72
+ expect(result.idempotent).toBe(true);
73
+ expect(mockPublish).not.toHaveBeenCalled();
74
+ });
75
+
76
+ it('isTerminalRunStatus covers killed/completed/failed', () => {
77
+ expect(isTerminalRunStatus('killed')).toBe(true);
78
+ expect(isTerminalRunStatus('running')).toBe(false);
79
+ });
80
+ });