@trentapps/manager-protocol 1.1.3 → 1.2.1

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 (142) hide show
  1. package/README.md +164 -17
  2. package/dist/analyzers/CSSAnalyzer.d.ts +180 -8
  3. package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -1
  4. package/dist/analyzers/CSSAnalyzer.js +561 -105
  5. package/dist/analyzers/CSSAnalyzer.js.map +1 -1
  6. package/dist/config/dashboard.d.ts +55 -0
  7. package/dist/config/dashboard.d.ts.map +1 -0
  8. package/dist/config/dashboard.js +103 -0
  9. package/dist/config/dashboard.js.map +1 -0
  10. package/dist/config/index.d.ts +7 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +7 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/dashboard/httpDashboard.d.ts +100 -0
  15. package/dist/dashboard/httpDashboard.d.ts.map +1 -0
  16. package/dist/dashboard/httpDashboard.js +1276 -0
  17. package/dist/dashboard/httpDashboard.js.map +1 -0
  18. package/dist/dashboard/index.d.ts +6 -0
  19. package/dist/dashboard/index.d.ts.map +1 -0
  20. package/dist/dashboard/index.js +7 -0
  21. package/dist/dashboard/index.js.map +1 -0
  22. package/dist/engine/AuditLogger.d.ts +370 -2
  23. package/dist/engine/AuditLogger.d.ts.map +1 -1
  24. package/dist/engine/AuditLogger.js +1064 -24
  25. package/dist/engine/AuditLogger.js.map +1 -1
  26. package/dist/engine/GitHubClient.d.ts +183 -0
  27. package/dist/engine/GitHubClient.d.ts.map +1 -0
  28. package/dist/engine/GitHubClient.js +411 -0
  29. package/dist/engine/GitHubClient.js.map +1 -0
  30. package/dist/engine/RateLimiter.d.ts +5 -3
  31. package/dist/engine/RateLimiter.d.ts.map +1 -1
  32. package/dist/engine/RateLimiter.js +49 -72
  33. package/dist/engine/RateLimiter.js.map +1 -1
  34. package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
  35. package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
  36. package/dist/engine/RuleDependencyAnalyzer.js +475 -0
  37. package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
  38. package/dist/engine/RulesEngine.d.ts +102 -3
  39. package/dist/engine/RulesEngine.d.ts.map +1 -1
  40. package/dist/engine/RulesEngine.js +326 -21
  41. package/dist/engine/RulesEngine.js.map +1 -1
  42. package/dist/engine/TaskManager.d.ts +10 -14
  43. package/dist/engine/TaskManager.d.ts.map +1 -1
  44. package/dist/engine/TaskManager.js +169 -197
  45. package/dist/engine/TaskManager.js.map +1 -1
  46. package/dist/engine/index.d.ts +3 -0
  47. package/dist/engine/index.d.ts.map +1 -1
  48. package/dist/engine/index.js +5 -0
  49. package/dist/engine/index.js.map +1 -1
  50. package/dist/rules/azure.d.ts.map +1 -1
  51. package/dist/rules/azure.js +12 -14
  52. package/dist/rules/azure.js.map +1 -1
  53. package/dist/rules/compliance.d.ts.map +1 -1
  54. package/dist/rules/compliance.js +23 -41
  55. package/dist/rules/compliance.js.map +1 -1
  56. package/dist/rules/condition-optimizer.d.ts +151 -0
  57. package/dist/rules/condition-optimizer.d.ts.map +1 -0
  58. package/dist/rules/condition-optimizer.js +479 -0
  59. package/dist/rules/condition-optimizer.js.map +1 -0
  60. package/dist/rules/css.d.ts.map +1 -1
  61. package/dist/rules/css.js +538 -0
  62. package/dist/rules/css.js.map +1 -1
  63. package/dist/rules/field-standards.d.ts +1172 -0
  64. package/dist/rules/field-standards.d.ts.map +1 -0
  65. package/dist/rules/field-standards.js +908 -0
  66. package/dist/rules/field-standards.js.map +1 -0
  67. package/dist/rules/flask.d.ts.map +1 -1
  68. package/dist/rules/flask.js +18 -31
  69. package/dist/rules/flask.js.map +1 -1
  70. package/dist/rules/index.d.ts +220 -0
  71. package/dist/rules/index.d.ts.map +1 -1
  72. package/dist/rules/index.js +155 -0
  73. package/dist/rules/index.js.map +1 -1
  74. package/dist/rules/ml-ai.d.ts.map +1 -1
  75. package/dist/rules/ml-ai.js +11 -13
  76. package/dist/rules/ml-ai.js.map +1 -1
  77. package/dist/rules/patterns.d.ts +568 -0
  78. package/dist/rules/patterns.d.ts.map +1 -0
  79. package/dist/rules/patterns.js +1359 -0
  80. package/dist/rules/patterns.js.map +1 -0
  81. package/dist/rules/security.d.ts.map +1 -1
  82. package/dist/rules/security.js +580 -19
  83. package/dist/rules/security.js.map +1 -1
  84. package/dist/rules/shared-patterns.d.ts +268 -0
  85. package/dist/rules/shared-patterns.d.ts.map +1 -0
  86. package/dist/rules/shared-patterns.js +556 -0
  87. package/dist/rules/shared-patterns.js.map +1 -0
  88. package/dist/rules/storage.d.ts +8 -2
  89. package/dist/rules/storage.d.ts.map +1 -1
  90. package/dist/rules/storage.js +541 -3
  91. package/dist/rules/storage.js.map +1 -1
  92. package/dist/rules/stripe.d.ts.map +1 -1
  93. package/dist/rules/stripe.js +19 -26
  94. package/dist/rules/stripe.js.map +1 -1
  95. package/dist/rules/websocket.d.ts.map +1 -1
  96. package/dist/rules/websocket.js +32 -40
  97. package/dist/rules/websocket.js.map +1 -1
  98. package/dist/supervisor/AgentSupervisor.d.ts +52 -0
  99. package/dist/supervisor/AgentSupervisor.d.ts.map +1 -1
  100. package/dist/supervisor/AgentSupervisor.js +120 -1
  101. package/dist/supervisor/AgentSupervisor.js.map +1 -1
  102. package/dist/supervisor/ManagedServerRegistry.d.ts +139 -2
  103. package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -1
  104. package/dist/supervisor/ManagedServerRegistry.js +590 -6
  105. package/dist/supervisor/ManagedServerRegistry.js.map +1 -1
  106. package/dist/supervisor/ProjectTracker.d.ts +2 -1
  107. package/dist/supervisor/ProjectTracker.d.ts.map +1 -1
  108. package/dist/supervisor/ProjectTracker.js +5 -9
  109. package/dist/supervisor/ProjectTracker.js.map +1 -1
  110. package/dist/testing/index.d.ts +11 -0
  111. package/dist/testing/index.d.ts.map +1 -0
  112. package/dist/testing/index.js +12 -0
  113. package/dist/testing/index.js.map +1 -0
  114. package/dist/testing/rule-tester.d.ts +217 -0
  115. package/dist/testing/rule-tester.d.ts.map +1 -0
  116. package/dist/testing/rule-tester.examples.d.ts +57 -0
  117. package/dist/testing/rule-tester.examples.d.ts.map +1 -0
  118. package/dist/testing/rule-tester.examples.js +375 -0
  119. package/dist/testing/rule-tester.examples.js.map +1 -0
  120. package/dist/testing/rule-tester.js +381 -0
  121. package/dist/testing/rule-tester.js.map +1 -0
  122. package/dist/testing/rule-validator.d.ts +141 -0
  123. package/dist/testing/rule-validator.d.ts.map +1 -0
  124. package/dist/testing/rule-validator.js +640 -0
  125. package/dist/testing/rule-validator.js.map +1 -0
  126. package/dist/types/index.d.ts +265 -4
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/index.js +57 -2
  129. package/dist/types/index.js.map +1 -1
  130. package/dist/utils/index.d.ts +2 -0
  131. package/dist/utils/index.d.ts.map +1 -1
  132. package/dist/utils/index.js +2 -0
  133. package/dist/utils/index.js.map +1 -1
  134. package/dist/utils/rate-limiting.d.ts +268 -0
  135. package/dist/utils/rate-limiting.d.ts.map +1 -0
  136. package/dist/utils/rate-limiting.js +403 -0
  137. package/dist/utils/rate-limiting.js.map +1 -0
  138. package/dist/utils/shared.d.ts +306 -0
  139. package/dist/utils/shared.d.ts.map +1 -0
  140. package/dist/utils/shared.js +464 -0
  141. package/dist/utils/shared.js.map +1 -0
  142. package/package.json +3 -2
@@ -1,8 +1,17 @@
1
1
  /**
2
- * Browser Storage Rules
3
- * Governance rules for localStorage, sessionStorage, and IndexedDB
2
+ * Enterprise Agent Supervisor - Storage Rules
3
+ *
4
+ * Comprehensive governance rules for all storage types:
5
+ * - Browser Storage (localStorage, sessionStorage, IndexedDB)
6
+ * - Database Access (SQL, NoSQL, transactions)
7
+ * - File System (read, write, configuration)
8
+ * - Cache (memory, distributed, CDN)
9
+ * - Blob/Object Storage (S3, Azure Blob, GCS)
4
10
  */
5
- export const storageRules = [
11
+ // ============================================================================
12
+ // BROWSER STORAGE RULES
13
+ // ============================================================================
14
+ const browserStorageRules = [
6
15
  {
7
16
  id: 'storage-001',
8
17
  name: 'Monitor localStorage Quota Usage',
@@ -131,4 +140,533 @@ export const storageRules = [
131
140
  tags: ['storage', 'security', 'localStorage', 'tokens', 'authentication']
132
141
  }
133
142
  ];
143
+ // ============================================================================
144
+ // DATABASE ACCESS RULES
145
+ // ============================================================================
146
+ const databaseStorageRules = [
147
+ {
148
+ id: 'storage-db-001',
149
+ name: 'Database Connection Pool Limit',
150
+ description: 'Database connections must use connection pooling with limits',
151
+ type: 'operational',
152
+ enabled: true,
153
+ priority: 880,
154
+ conditions: [
155
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql', 'mongodb'] },
156
+ { field: 'connectionPoolEnabled', operator: 'not_equals', value: true }
157
+ ],
158
+ conditionLogic: 'all',
159
+ actions: [
160
+ { type: 'warn', message: 'Database operations should use connection pooling to prevent exhaustion' }
161
+ ],
162
+ riskWeight: 30,
163
+ tags: ['storage', 'database', 'connection-pool', 'performance']
164
+ },
165
+ {
166
+ id: 'storage-db-002',
167
+ name: 'Transaction Boundary Required',
168
+ description: 'Multi-table database operations require explicit transaction boundaries',
169
+ type: 'architecture',
170
+ enabled: true,
171
+ priority: 900,
172
+ conditions: [
173
+ { field: 'actionCategory', operator: 'equals', value: 'data_modification' },
174
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql'] },
175
+ { field: 'multiTableOperation', operator: 'equals', value: true },
176
+ { field: 'transactionBoundary', operator: 'not_exists', value: null }
177
+ ],
178
+ conditionLogic: 'all',
179
+ actions: [
180
+ { type: 'warn', message: 'Multi-table operations should define transaction boundaries for data consistency' }
181
+ ],
182
+ riskWeight: 35,
183
+ tags: ['storage', 'database', 'transactions', 'consistency']
184
+ },
185
+ {
186
+ id: 'storage-db-003',
187
+ name: 'Prevent Unbounded Queries',
188
+ description: 'Database queries must have result limits to prevent memory exhaustion',
189
+ type: 'operational',
190
+ enabled: true,
191
+ priority: 920,
192
+ conditions: [
193
+ { field: 'actionCategory', operator: 'equals', value: 'data_access' },
194
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql', 'mongodb', 'cosmos-db'] },
195
+ { field: 'hasResultLimit', operator: 'not_equals', value: true },
196
+ { field: 'returnsCollection', operator: 'equals', value: true }
197
+ ],
198
+ conditionLogic: 'all',
199
+ actions: [
200
+ { type: 'warn', message: 'Database queries returning collections should have LIMIT/TOP clause' }
201
+ ],
202
+ riskWeight: 25,
203
+ tags: ['storage', 'database', 'performance', 'pagination']
204
+ },
205
+ {
206
+ id: 'storage-db-004',
207
+ name: 'Index Required for Frequent Queries',
208
+ description: 'Frequently executed queries should use indexed fields',
209
+ type: 'architecture',
210
+ enabled: true,
211
+ priority: 800,
212
+ conditions: [
213
+ { field: 'actionCategory', operator: 'equals', value: 'data_access' },
214
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql', 'mongodb'] },
215
+ { field: 'queryFrequency', operator: 'equals', value: 'high' },
216
+ { field: 'usesIndex', operator: 'not_equals', value: true }
217
+ ],
218
+ conditionLogic: 'all',
219
+ actions: [
220
+ { type: 'warn', message: 'High-frequency queries should use indexed fields for performance' }
221
+ ],
222
+ riskWeight: 20,
223
+ tags: ['storage', 'database', 'indexing', 'performance']
224
+ },
225
+ {
226
+ id: 'storage-db-005',
227
+ name: 'Parameterized Queries Required',
228
+ description: 'Database queries must use parameterized statements to prevent injection',
229
+ type: 'security',
230
+ enabled: true,
231
+ priority: 980,
232
+ conditions: [
233
+ { field: 'actionCategory', operator: 'equals', value: 'data_access' },
234
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql'] },
235
+ { field: 'queryParameterized', operator: 'not_equals', value: true }
236
+ ],
237
+ conditionLogic: 'all',
238
+ actions: [
239
+ { type: 'deny', message: 'Database queries must use parameterized statements (SQL injection prevention)' }
240
+ ],
241
+ riskWeight: 70,
242
+ tags: ['storage', 'database', 'security', 'sql-injection']
243
+ },
244
+ {
245
+ id: 'storage-db-006',
246
+ name: 'Database Backup Before Schema Change',
247
+ description: 'Schema changes in production require backup verification',
248
+ type: 'operational',
249
+ enabled: true,
250
+ priority: 950,
251
+ conditions: [
252
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql', 'mongodb'] },
253
+ { field: 'operation', operator: 'in', value: ['alter_table', 'drop_table', 'create_index', 'drop_index', 'migration'] },
254
+ { field: 'environment', operator: 'equals', value: 'production' },
255
+ { field: 'backupVerified', operator: 'not_equals', value: true }
256
+ ],
257
+ conditionLogic: 'all',
258
+ actions: [
259
+ { type: 'require_approval', message: 'Production schema changes require backup verification' }
260
+ ],
261
+ riskWeight: 50,
262
+ tags: ['storage', 'database', 'schema', 'backup', 'migration']
263
+ },
264
+ {
265
+ id: 'storage-db-007',
266
+ name: 'Read Replica for Heavy Reads',
267
+ description: 'High-volume read operations should use read replicas',
268
+ type: 'architecture',
269
+ enabled: true,
270
+ priority: 750,
271
+ conditions: [
272
+ { field: 'actionCategory', operator: 'equals', value: 'data_access' },
273
+ { field: 'storageType', operator: 'in', value: ['sql', 'postgresql', 'mysql'] },
274
+ { field: 'queryVolume', operator: 'equals', value: 'high' },
275
+ { field: 'usesReadReplica', operator: 'not_equals', value: true },
276
+ { field: 'environment', operator: 'equals', value: 'production' }
277
+ ],
278
+ conditionLogic: 'all',
279
+ actions: [
280
+ { type: 'warn', message: 'High-volume reads should consider read replicas to reduce primary load' }
281
+ ],
282
+ riskWeight: 15,
283
+ tags: ['storage', 'database', 'read-replica', 'scaling']
284
+ }
285
+ ];
286
+ // ============================================================================
287
+ // FILE SYSTEM RULES
288
+ // ============================================================================
289
+ const fileSystemStorageRules = [
290
+ {
291
+ id: 'storage-fs-001',
292
+ name: 'Block Access to System Files',
293
+ description: 'Prevents access to critical system files and directories',
294
+ type: 'security',
295
+ enabled: true,
296
+ priority: 990,
297
+ conditions: [
298
+ { field: 'storageType', operator: 'equals', value: 'filesystem' },
299
+ { field: 'filePath', operator: 'matches_regex', value: '^(/etc|/sys|/proc|/boot|C:\\\\Windows|C:\\\\System32)' }
300
+ ],
301
+ conditionLogic: 'all',
302
+ actions: [
303
+ { type: 'deny', message: 'Access to system files is prohibited' }
304
+ ],
305
+ riskWeight: 65,
306
+ tags: ['storage', 'filesystem', 'security', 'system-files']
307
+ },
308
+ {
309
+ id: 'storage-fs-002',
310
+ name: 'Require Approval for Config File Changes',
311
+ description: 'Configuration file modifications require approval in production',
312
+ type: 'security',
313
+ enabled: true,
314
+ priority: 900,
315
+ conditions: [
316
+ { field: 'storageType', operator: 'equals', value: 'filesystem' },
317
+ { field: 'operation', operator: 'in', value: ['write', 'delete', 'modify'] },
318
+ { field: 'filePath', operator: 'matches_regex', value: '\\.(conf|config|yml|yaml|json|env|ini|toml)$' },
319
+ { field: 'environment', operator: 'equals', value: 'production' }
320
+ ],
321
+ conditionLogic: 'all',
322
+ actions: [
323
+ { type: 'require_approval', message: 'Production configuration file changes require approval' }
324
+ ],
325
+ riskWeight: 35,
326
+ tags: ['storage', 'filesystem', 'configuration', 'production']
327
+ },
328
+ {
329
+ id: 'storage-fs-003',
330
+ name: 'Prevent Path Traversal',
331
+ description: 'File paths must not contain path traversal sequences',
332
+ type: 'security',
333
+ enabled: true,
334
+ priority: 1000,
335
+ conditions: [
336
+ { field: 'storageType', operator: 'equals', value: 'filesystem' },
337
+ { field: 'filePath', operator: 'matches_regex', value: '(\\.\\./|\\.\\.\\\\|%2e%2e)' }
338
+ ],
339
+ conditionLogic: 'all',
340
+ actions: [
341
+ { type: 'deny', message: 'Path traversal attack detected - operation blocked' },
342
+ { type: 'notify', message: 'Security alert: Path traversal attempt detected' }
343
+ ],
344
+ riskWeight: 80,
345
+ tags: ['storage', 'filesystem', 'security', 'path-traversal']
346
+ },
347
+ {
348
+ id: 'storage-fs-004',
349
+ name: 'File Size Limit Enforcement',
350
+ description: 'File operations must respect size limits',
351
+ type: 'operational',
352
+ enabled: true,
353
+ priority: 850,
354
+ conditions: [
355
+ { field: 'storageType', operator: 'equals', value: 'filesystem' },
356
+ { field: 'operation', operator: 'in', value: ['write', 'upload'] },
357
+ { field: 'fileSize', operator: 'greater_than', value: 104857600 } // 100MB
358
+ ],
359
+ conditionLogic: 'all',
360
+ actions: [
361
+ { type: 'require_approval', message: 'File upload >100MB requires approval' }
362
+ ],
363
+ riskWeight: 25,
364
+ tags: ['storage', 'filesystem', 'upload', 'size-limit']
365
+ },
366
+ {
367
+ id: 'storage-fs-005',
368
+ name: 'Temp File Cleanup Required',
369
+ description: 'Temporary files must be cleaned up after use',
370
+ type: 'operational',
371
+ enabled: true,
372
+ priority: 750,
373
+ conditions: [
374
+ { field: 'storageType', operator: 'equals', value: 'filesystem' },
375
+ { field: 'filePath', operator: 'matches_regex', value: '(/tmp/|/temp/|\\\\temp\\\\|\\\\tmp\\\\|\\.tmp$)' },
376
+ { field: 'hasCleanupStrategy', operator: 'not_equals', value: true }
377
+ ],
378
+ conditionLogic: 'all',
379
+ actions: [
380
+ { type: 'warn', message: 'Temporary files should have cleanup strategy (TTL or explicit deletion)' }
381
+ ],
382
+ riskWeight: 15,
383
+ tags: ['storage', 'filesystem', 'temp', 'cleanup']
384
+ },
385
+ {
386
+ id: 'storage-fs-006',
387
+ name: 'Executable Upload Prevention',
388
+ description: 'Prevent upload of executable files',
389
+ type: 'security',
390
+ enabled: true,
391
+ priority: 970,
392
+ conditions: [
393
+ { field: 'storageType', operator: 'equals', value: 'filesystem' },
394
+ { field: 'operation', operator: 'equals', value: 'upload' },
395
+ { field: 'filePath', operator: 'matches_regex', value: '\\.(exe|dll|sh|bash|ps1|bat|cmd|msi|jar|py|rb|php|pl)$' }
396
+ ],
397
+ conditionLogic: 'all',
398
+ actions: [
399
+ { type: 'deny', message: 'Executable file uploads are prohibited for security' }
400
+ ],
401
+ riskWeight: 60,
402
+ tags: ['storage', 'filesystem', 'security', 'executable', 'upload']
403
+ }
404
+ ];
405
+ // ============================================================================
406
+ // CACHE RULES
407
+ // ============================================================================
408
+ const cacheStorageRules = [
409
+ {
410
+ id: 'storage-cache-001',
411
+ name: 'Cache TTL Required',
412
+ description: 'Cached data must have explicit TTL to prevent stale data',
413
+ type: 'architecture',
414
+ enabled: true,
415
+ priority: 850,
416
+ conditions: [
417
+ { field: 'storageType', operator: 'in', value: ['redis', 'memcached', 'cache'] },
418
+ { field: 'operation', operator: 'equals', value: 'set' },
419
+ { field: 'ttlSet', operator: 'not_equals', value: true }
420
+ ],
421
+ conditionLogic: 'all',
422
+ actions: [
423
+ { type: 'warn', message: 'Cache entries should have explicit TTL to prevent stale data' }
424
+ ],
425
+ riskWeight: 20,
426
+ tags: ['storage', 'cache', 'ttl', 'staleness']
427
+ },
428
+ {
429
+ id: 'storage-cache-002',
430
+ name: 'No Sensitive Data in Cache',
431
+ description: 'Sensitive data must not be cached without encryption',
432
+ type: 'security',
433
+ enabled: true,
434
+ priority: 930,
435
+ conditions: [
436
+ { field: 'storageType', operator: 'in', value: ['redis', 'memcached', 'cache'] },
437
+ { field: 'dataClassification', operator: 'in', value: ['confidential', 'restricted'] },
438
+ { field: 'encryptionEnabled', operator: 'not_equals', value: true }
439
+ ],
440
+ conditionLogic: 'all',
441
+ actions: [
442
+ { type: 'deny', message: 'Sensitive data must be encrypted before caching' }
443
+ ],
444
+ riskWeight: 50,
445
+ tags: ['storage', 'cache', 'security', 'encryption']
446
+ },
447
+ {
448
+ id: 'storage-cache-003',
449
+ name: 'Cache Key Namespacing',
450
+ description: 'Cache keys should use namespacing to prevent collisions',
451
+ type: 'architecture',
452
+ enabled: true,
453
+ priority: 750,
454
+ conditions: [
455
+ { field: 'storageType', operator: 'in', value: ['redis', 'memcached', 'cache'] },
456
+ { field: 'cacheKeyNamespaced', operator: 'not_equals', value: true },
457
+ { field: 'environment', operator: 'equals', value: 'production' }
458
+ ],
459
+ conditionLogic: 'all',
460
+ actions: [
461
+ { type: 'warn', message: 'Cache keys should use namespace prefix (e.g., app:env:key) to prevent collisions' }
462
+ ],
463
+ riskWeight: 15,
464
+ tags: ['storage', 'cache', 'namespacing', 'best-practice']
465
+ },
466
+ {
467
+ id: 'storage-cache-004',
468
+ name: 'Cache Eviction Strategy Required',
469
+ description: 'Cache should have defined eviction strategy',
470
+ type: 'architecture',
471
+ enabled: true,
472
+ priority: 800,
473
+ conditions: [
474
+ { field: 'storageType', operator: 'in', value: ['redis', 'memcached', 'cache'] },
475
+ { field: 'evictionPolicy', operator: 'not_exists', value: null },
476
+ { field: 'environment', operator: 'equals', value: 'production' }
477
+ ],
478
+ conditionLogic: 'all',
479
+ actions: [
480
+ { type: 'warn', message: 'Production cache should define eviction policy (LRU, LFU, etc.)' }
481
+ ],
482
+ riskWeight: 20,
483
+ tags: ['storage', 'cache', 'eviction', 'memory']
484
+ },
485
+ {
486
+ id: 'storage-cache-005',
487
+ name: 'Cache Stampede Prevention',
488
+ description: 'High-traffic cache entries should use stampede protection',
489
+ type: 'architecture',
490
+ enabled: true,
491
+ priority: 820,
492
+ conditions: [
493
+ { field: 'storageType', operator: 'in', value: ['redis', 'memcached', 'cache'] },
494
+ { field: 'accessFrequency', operator: 'equals', value: 'high' },
495
+ { field: 'stampedeProtection', operator: 'not_equals', value: true }
496
+ ],
497
+ conditionLogic: 'all',
498
+ actions: [
499
+ { type: 'warn', message: 'High-frequency cache keys should use stampede protection (locking or probabilistic early expiry)' }
500
+ ],
501
+ riskWeight: 25,
502
+ tags: ['storage', 'cache', 'stampede', 'performance']
503
+ },
504
+ {
505
+ id: 'storage-cache-006',
506
+ name: 'CDN Cache Headers Required',
507
+ description: 'CDN-cached resources must have proper cache control headers',
508
+ type: 'architecture',
509
+ enabled: true,
510
+ priority: 780,
511
+ conditions: [
512
+ { field: 'storageType', operator: 'equals', value: 'cdn' },
513
+ { field: 'cacheControlSet', operator: 'not_equals', value: true }
514
+ ],
515
+ conditionLogic: 'all',
516
+ actions: [
517
+ { type: 'warn', message: 'CDN resources should have Cache-Control headers for proper edge caching' }
518
+ ],
519
+ riskWeight: 15,
520
+ tags: ['storage', 'cache', 'cdn', 'headers']
521
+ }
522
+ ];
523
+ // ============================================================================
524
+ // BLOB/OBJECT STORAGE RULES
525
+ // ============================================================================
526
+ const blobStorageRules = [
527
+ {
528
+ id: 'storage-blob-001',
529
+ name: 'Private Bucket by Default',
530
+ description: 'Object storage buckets must be private unless explicitly required',
531
+ type: 'security',
532
+ enabled: true,
533
+ priority: 960,
534
+ conditions: [
535
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
536
+ { field: 'operation', operator: 'equals', value: 'create_bucket' },
537
+ { field: 'publicAccess', operator: 'equals', value: true }
538
+ ],
539
+ conditionLogic: 'all',
540
+ actions: [
541
+ { type: 'require_approval', message: 'Public bucket creation requires security review' }
542
+ ],
543
+ riskWeight: 55,
544
+ tags: ['storage', 'blob', 'security', 'public-access']
545
+ },
546
+ {
547
+ id: 'storage-blob-002',
548
+ name: 'Server-Side Encryption Required',
549
+ description: 'Object storage must use server-side encryption',
550
+ type: 'security',
551
+ enabled: true,
552
+ priority: 940,
553
+ conditions: [
554
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
555
+ { field: 'environment', operator: 'equals', value: 'production' },
556
+ { field: 'sseEnabled', operator: 'not_equals', value: true }
557
+ ],
558
+ conditionLogic: 'all',
559
+ actions: [
560
+ { type: 'deny', message: 'Production object storage must use server-side encryption (SSE)' }
561
+ ],
562
+ riskWeight: 50,
563
+ tags: ['storage', 'blob', 'security', 'encryption', 'sse']
564
+ },
565
+ {
566
+ id: 'storage-blob-003',
567
+ name: 'Lifecycle Policy Required',
568
+ description: 'Object storage buckets should have lifecycle policies',
569
+ type: 'operational',
570
+ enabled: true,
571
+ priority: 800,
572
+ conditions: [
573
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
574
+ { field: 'operation', operator: 'equals', value: 'create_bucket' },
575
+ { field: 'lifecyclePolicySet', operator: 'not_equals', value: true }
576
+ ],
577
+ conditionLogic: 'all',
578
+ actions: [
579
+ { type: 'warn', message: 'Object storage buckets should have lifecycle policies for cost optimization' }
580
+ ],
581
+ riskWeight: 20,
582
+ tags: ['storage', 'blob', 'lifecycle', 'cost']
583
+ },
584
+ {
585
+ id: 'storage-blob-004',
586
+ name: 'Versioning for Critical Data',
587
+ description: 'Critical data buckets should enable versioning',
588
+ type: 'operational',
589
+ enabled: true,
590
+ priority: 850,
591
+ conditions: [
592
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
593
+ { field: 'dataClassification', operator: 'in', value: ['confidential', 'critical'] },
594
+ { field: 'versioningEnabled', operator: 'not_equals', value: true }
595
+ ],
596
+ conditionLogic: 'all',
597
+ actions: [
598
+ { type: 'warn', message: 'Critical data buckets should enable versioning for recovery' }
599
+ ],
600
+ riskWeight: 25,
601
+ tags: ['storage', 'blob', 'versioning', 'recovery']
602
+ },
603
+ {
604
+ id: 'storage-blob-005',
605
+ name: 'CORS Configuration Required',
606
+ description: 'Web-accessible blob storage must have explicit CORS configuration',
607
+ type: 'security',
608
+ enabled: true,
609
+ priority: 880,
610
+ conditions: [
611
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
612
+ { field: 'webAccessible', operator: 'equals', value: true },
613
+ { field: 'corsConfigured', operator: 'not_equals', value: true }
614
+ ],
615
+ conditionLogic: 'all',
616
+ actions: [
617
+ { type: 'warn', message: 'Web-accessible blob storage should have explicit CORS configuration' }
618
+ ],
619
+ riskWeight: 30,
620
+ tags: ['storage', 'blob', 'security', 'cors']
621
+ },
622
+ {
623
+ id: 'storage-blob-006',
624
+ name: 'Presigned URL Expiry Limit',
625
+ description: 'Presigned URLs must have short expiry times',
626
+ type: 'security',
627
+ enabled: true,
628
+ priority: 900,
629
+ conditions: [
630
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
631
+ { field: 'operation', operator: 'equals', value: 'generate_presigned_url' },
632
+ { field: 'urlExpirySeconds', operator: 'greater_than', value: 3600 } // 1 hour
633
+ ],
634
+ conditionLogic: 'all',
635
+ actions: [
636
+ { type: 'warn', message: 'Presigned URLs should expire within 1 hour for security' }
637
+ ],
638
+ riskWeight: 35,
639
+ tags: ['storage', 'blob', 'security', 'presigned-url']
640
+ },
641
+ {
642
+ id: 'storage-blob-007',
643
+ name: 'Cross-Region Replication for DR',
644
+ description: 'Critical buckets should have cross-region replication for disaster recovery',
645
+ type: 'operational',
646
+ enabled: true,
647
+ priority: 750,
648
+ conditions: [
649
+ { field: 'storageType', operator: 'in', value: ['s3', 'azure-blob', 'gcs', 'blob'] },
650
+ { field: 'dataClassification', operator: 'equals', value: 'critical' },
651
+ { field: 'crossRegionReplication', operator: 'not_equals', value: true },
652
+ { field: 'environment', operator: 'equals', value: 'production' }
653
+ ],
654
+ conditionLogic: 'all',
655
+ actions: [
656
+ { type: 'warn', message: 'Critical production data should have cross-region replication for DR' }
657
+ ],
658
+ riskWeight: 30,
659
+ tags: ['storage', 'blob', 'replication', 'disaster-recovery']
660
+ }
661
+ ];
662
+ // ============================================================================
663
+ // COMBINED EXPORT
664
+ // ============================================================================
665
+ export const storageRules = [
666
+ ...browserStorageRules,
667
+ ...databaseStorageRules,
668
+ ...fileSystemStorageRules,
669
+ ...cacheStorageRules,
670
+ ...blobStorageRules
671
+ ];
134
672
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/rules/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/rules/storage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/rules/stripe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,WAAW,EAAE,YAAY,EAsIrC,CAAC"}
1
+ {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/rules/stripe.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,WAAW,EAAE,YAAY,EA8HrC,CAAC"}