@trentapps/manager-protocol 1.1.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.
- package/LICENSE +21 -0
- package/README.md +446 -0
- package/dist/analyzers/ArchitectureDetector.d.ts +44 -0
- package/dist/analyzers/ArchitectureDetector.d.ts.map +1 -0
- package/dist/analyzers/ArchitectureDetector.js +218 -0
- package/dist/analyzers/ArchitectureDetector.js.map +1 -0
- package/dist/analyzers/CSSAnalyzer.d.ts +104 -0
- package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/CSSAnalyzer.js +578 -0
- package/dist/analyzers/CSSAnalyzer.js.map +1 -0
- package/dist/analyzers/index.d.ts +5 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +5 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +174 -0
- package/dist/cli.js.map +1 -0
- package/dist/design-system/index.d.ts +6 -0
- package/dist/design-system/index.d.ts.map +1 -0
- package/dist/design-system/index.js +6 -0
- package/dist/design-system/index.js.map +1 -0
- package/dist/design-system/tokens.d.ts +106 -0
- package/dist/design-system/tokens.d.ts.map +1 -0
- package/dist/design-system/tokens.js +554 -0
- package/dist/design-system/tokens.js.map +1 -0
- package/dist/engine/AppMonitor.d.ts +162 -0
- package/dist/engine/AppMonitor.d.ts.map +1 -0
- package/dist/engine/AppMonitor.js +754 -0
- package/dist/engine/AppMonitor.js.map +1 -0
- package/dist/engine/AuditLogger.d.ts +138 -0
- package/dist/engine/AuditLogger.d.ts.map +1 -0
- package/dist/engine/AuditLogger.js +448 -0
- package/dist/engine/AuditLogger.js.map +1 -0
- package/dist/engine/GitHubApprovalManager.d.ts +106 -0
- package/dist/engine/GitHubApprovalManager.d.ts.map +1 -0
- package/dist/engine/GitHubApprovalManager.js +315 -0
- package/dist/engine/GitHubApprovalManager.js.map +1 -0
- package/dist/engine/RateLimiter.d.ts +79 -0
- package/dist/engine/RateLimiter.d.ts.map +1 -0
- package/dist/engine/RateLimiter.js +232 -0
- package/dist/engine/RateLimiter.js.map +1 -0
- package/dist/engine/RulesEngine.d.ts +77 -0
- package/dist/engine/RulesEngine.d.ts.map +1 -0
- package/dist/engine/RulesEngine.js +400 -0
- package/dist/engine/RulesEngine.js.map +1 -0
- package/dist/engine/TaskManager.d.ts +173 -0
- package/dist/engine/TaskManager.d.ts.map +1 -0
- package/dist/engine/TaskManager.js +678 -0
- package/dist/engine/TaskManager.js.map +1 -0
- package/dist/engine/index.d.ts +9 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +9 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/architecture.d.ts +9 -0
- package/dist/rules/architecture.d.ts.map +1 -0
- package/dist/rules/architecture.js +322 -0
- package/dist/rules/architecture.js.map +1 -0
- package/dist/rules/azure.d.ts +7 -0
- package/dist/rules/azure.d.ts.map +1 -0
- package/dist/rules/azure.js +138 -0
- package/dist/rules/azure.js.map +1 -0
- package/dist/rules/compliance.d.ts +9 -0
- package/dist/rules/compliance.d.ts.map +1 -0
- package/dist/rules/compliance.js +304 -0
- package/dist/rules/compliance.js.map +1 -0
- package/dist/rules/css.d.ts +10 -0
- package/dist/rules/css.d.ts.map +1 -0
- package/dist/rules/css.js +1239 -0
- package/dist/rules/css.js.map +1 -0
- package/dist/rules/flask.d.ts +7 -0
- package/dist/rules/flask.d.ts.map +1 -0
- package/dist/rules/flask.js +155 -0
- package/dist/rules/flask.js.map +1 -0
- package/dist/rules/index.d.ts +607 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +401 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/ml-ai.d.ts +7 -0
- package/dist/rules/ml-ai.d.ts.map +1 -0
- package/dist/rules/ml-ai.js +150 -0
- package/dist/rules/ml-ai.js.map +1 -0
- package/dist/rules/operational.d.ts +9 -0
- package/dist/rules/operational.d.ts.map +1 -0
- package/dist/rules/operational.js +318 -0
- package/dist/rules/operational.js.map +1 -0
- package/dist/rules/security.d.ts +9 -0
- package/dist/rules/security.d.ts.map +1 -0
- package/dist/rules/security.js +287 -0
- package/dist/rules/security.js.map +1 -0
- package/dist/rules/storage.d.ts +7 -0
- package/dist/rules/storage.d.ts.map +1 -0
- package/dist/rules/storage.js +134 -0
- package/dist/rules/storage.js.map +1 -0
- package/dist/rules/stripe.d.ts +7 -0
- package/dist/rules/stripe.d.ts.map +1 -0
- package/dist/rules/stripe.js +140 -0
- package/dist/rules/stripe.js.map +1 -0
- package/dist/rules/testing.d.ts +7 -0
- package/dist/rules/testing.d.ts.map +1 -0
- package/dist/rules/testing.js +135 -0
- package/dist/rules/testing.js.map +1 -0
- package/dist/rules/ux.d.ts +9 -0
- package/dist/rules/ux.d.ts.map +1 -0
- package/dist/rules/ux.js +280 -0
- package/dist/rules/ux.js.map +1 -0
- package/dist/rules/websocket.d.ts +7 -0
- package/dist/rules/websocket.d.ts.map +1 -0
- package/dist/rules/websocket.js +136 -0
- package/dist/rules/websocket.js.map +1 -0
- package/dist/server.d.ts +49 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +2330 -0
- package/dist/server.js.map +1 -0
- package/dist/supervisor/AgentSupervisor.d.ts +235 -0
- package/dist/supervisor/AgentSupervisor.d.ts.map +1 -0
- package/dist/supervisor/AgentSupervisor.js +596 -0
- package/dist/supervisor/AgentSupervisor.js.map +1 -0
- package/dist/supervisor/ManagedServerRegistry.d.ts +48 -0
- package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -0
- package/dist/supervisor/ManagedServerRegistry.js +145 -0
- package/dist/supervisor/ManagedServerRegistry.js.map +1 -0
- package/dist/supervisor/ProjectTracker.d.ts +188 -0
- package/dist/supervisor/ProjectTracker.d.ts.map +1 -0
- package/dist/supervisor/ProjectTracker.js +617 -0
- package/dist/supervisor/ProjectTracker.js.map +1 -0
- package/dist/supervisor/index.d.ts +6 -0
- package/dist/supervisor/index.d.ts.map +1 -0
- package/dist/supervisor/index.js +6 -0
- package/dist/supervisor/index.js.map +1 -0
- package/dist/types/index.d.ts +1176 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +391 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/errors.d.ts +86 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +171 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/shell.d.ts +22 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +29 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Storage Rules
|
|
3
|
+
* Governance rules for localStorage, sessionStorage, and IndexedDB
|
|
4
|
+
*/
|
|
5
|
+
export const storageRules = [
|
|
6
|
+
{
|
|
7
|
+
id: 'storage-001',
|
|
8
|
+
name: 'Monitor localStorage Quota Usage',
|
|
9
|
+
description: 'localStorage usage must be monitored to prevent quota exceeded errors',
|
|
10
|
+
type: 'operational',
|
|
11
|
+
enabled: true,
|
|
12
|
+
priority: 900,
|
|
13
|
+
conditions: [
|
|
14
|
+
{ field: 'actionCategory', operator: 'equals', value: 'data_modification' },
|
|
15
|
+
{ field: 'storageType', operator: 'equals', value: 'localStorage' },
|
|
16
|
+
{ field: 'estimatedSize', operator: 'greater_than', value: 4000000 }
|
|
17
|
+
],
|
|
18
|
+
conditionLogic: 'all',
|
|
19
|
+
actions: [
|
|
20
|
+
{ type: 'warn', message: 'localStorage usage >4MB - approaching quota limit (5-10MB)' }
|
|
21
|
+
],
|
|
22
|
+
riskWeight: 30,
|
|
23
|
+
tags: ['storage', 'localStorage', 'quota', 'browser']
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'storage-002',
|
|
27
|
+
name: 'Require Auto-Cleanup of Old Data',
|
|
28
|
+
description: 'localStorage must have cleanup strategy for old data',
|
|
29
|
+
type: 'architecture',
|
|
30
|
+
enabled: true,
|
|
31
|
+
priority: 850,
|
|
32
|
+
conditions: [
|
|
33
|
+
{ field: 'storageType', operator: 'equals', value: 'localStorage' },
|
|
34
|
+
{ field: 'hasCleanupStrategy', operator: 'not_equals', value: true }
|
|
35
|
+
],
|
|
36
|
+
conditionLogic: 'all',
|
|
37
|
+
actions: [
|
|
38
|
+
{ type: 'warn', message: 'Implement localStorage cleanup (TTL, LRU, size-based eviction)' }
|
|
39
|
+
],
|
|
40
|
+
riskWeight: 25,
|
|
41
|
+
tags: ['storage', 'localStorage', 'cleanup', 'maintenance']
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'storage-003',
|
|
45
|
+
name: 'Prohibit Sensitive Data in localStorage',
|
|
46
|
+
description: 'Sensitive data must not be stored in localStorage',
|
|
47
|
+
type: 'security',
|
|
48
|
+
enabled: true,
|
|
49
|
+
priority: 960,
|
|
50
|
+
conditions: [
|
|
51
|
+
{ field: 'storageType', operator: 'in', value: ['localStorage', 'sessionStorage'] },
|
|
52
|
+
{ field: 'dataClassification', operator: 'in', value: ['confidential', 'restricted'] }
|
|
53
|
+
],
|
|
54
|
+
conditionLogic: 'all',
|
|
55
|
+
actions: [
|
|
56
|
+
{ type: 'deny', message: 'Sensitive data prohibited in localStorage (use secure HTTP-only cookies or encrypted storage)' }
|
|
57
|
+
],
|
|
58
|
+
riskWeight: 55,
|
|
59
|
+
tags: ['storage', 'security', 'localStorage', 'sensitive-data']
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'storage-004',
|
|
63
|
+
name: 'Deny Base64 Image Storage',
|
|
64
|
+
description: 'Base64 images must not be stored in localStorage due to size',
|
|
65
|
+
type: 'operational',
|
|
66
|
+
enabled: true,
|
|
67
|
+
priority: 920,
|
|
68
|
+
conditions: [
|
|
69
|
+
{ field: 'storageType', operator: 'equals', value: 'localStorage' },
|
|
70
|
+
{ field: 'dataType', operator: 'equals', value: 'base64_image' }
|
|
71
|
+
],
|
|
72
|
+
conditionLogic: 'all',
|
|
73
|
+
actions: [
|
|
74
|
+
{ type: 'deny', message: 'Base64 images prohibited in localStorage (use blob URLs, IndexedDB, or server storage)' }
|
|
75
|
+
],
|
|
76
|
+
riskWeight: 40,
|
|
77
|
+
tags: ['storage', 'localStorage', 'images', 'quota']
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'storage-005',
|
|
81
|
+
name: 'Validate localStorage Access Error Handling',
|
|
82
|
+
description: 'localStorage operations must handle quota exceeded errors',
|
|
83
|
+
type: 'architecture',
|
|
84
|
+
enabled: true,
|
|
85
|
+
priority: 880,
|
|
86
|
+
conditions: [
|
|
87
|
+
{ field: 'storageType', operator: 'equals', value: 'localStorage' },
|
|
88
|
+
{ field: 'hasErrorHandling', operator: 'not_equals', value: true }
|
|
89
|
+
],
|
|
90
|
+
conditionLogic: 'all',
|
|
91
|
+
actions: [
|
|
92
|
+
{ type: 'warn', message: 'Wrap localStorage operations in try/catch for quota exceeded errors' }
|
|
93
|
+
],
|
|
94
|
+
riskWeight: 20,
|
|
95
|
+
tags: ['storage', 'localStorage', 'error-handling']
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 'storage-006',
|
|
99
|
+
name: 'Use IndexedDB for Large Data',
|
|
100
|
+
description: 'Large datasets should use IndexedDB instead of localStorage',
|
|
101
|
+
type: 'architecture',
|
|
102
|
+
enabled: true,
|
|
103
|
+
priority: 800,
|
|
104
|
+
conditions: [
|
|
105
|
+
{ field: 'storageType', operator: 'equals', value: 'localStorage' },
|
|
106
|
+
{ field: 'dataSize', operator: 'greater_than', value: 1000000 }
|
|
107
|
+
],
|
|
108
|
+
conditionLogic: 'all',
|
|
109
|
+
actions: [
|
|
110
|
+
{ type: 'warn', message: 'Large data (>1MB) should use IndexedDB instead of localStorage' }
|
|
111
|
+
],
|
|
112
|
+
riskWeight: 15,
|
|
113
|
+
tags: ['storage', 'indexeddb', 'performance']
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: 'storage-007',
|
|
117
|
+
name: 'No Tokens in localStorage',
|
|
118
|
+
description: 'Auth tokens and API keys must not be stored in localStorage',
|
|
119
|
+
type: 'security',
|
|
120
|
+
enabled: true,
|
|
121
|
+
priority: 980,
|
|
122
|
+
conditions: [
|
|
123
|
+
{ field: 'storageType', operator: 'in', value: ['localStorage', 'sessionStorage'] },
|
|
124
|
+
{ field: 'dataType', operator: 'in', value: ['auth_token', 'api_key', 'jwt'] }
|
|
125
|
+
],
|
|
126
|
+
conditionLogic: 'all',
|
|
127
|
+
actions: [
|
|
128
|
+
{ type: 'deny', message: 'Auth tokens/API keys prohibited in localStorage (use secure HTTP-only cookies)' }
|
|
129
|
+
],
|
|
130
|
+
riskWeight: 70,
|
|
131
|
+
tags: ['storage', 'security', 'localStorage', 'tokens', 'authentication']
|
|
132
|
+
}
|
|
133
|
+
];
|
|
134
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/rules/storage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,CAAC,MAAM,YAAY,GAAmB;IAC1C;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,uEAAuE;QACpF,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE;YAC3E,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;YACnE,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;SACrE;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4DAA4D,EAAE;SACxF;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC;KACtD;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,kCAAkC;QACxC,WAAW,EAAE,sDAAsD;QACnE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;YACnE,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;SACrE;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gEAAgE,EAAE;SAC5F;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,CAAC;KAC5D;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,yCAAyC;QAC/C,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE;YACnF,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE;SACvF;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,+FAA+F,EAAE;SAC3H;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,CAAC;KAChE;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,8DAA8D;QAC3E,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;YACnE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;SACjE;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wFAAwF,EAAE;SACpH;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC;KACrD;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,6CAA6C;QACnD,WAAW,EAAE,2DAA2D;QACxE,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;YACnE,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;SACnE;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qEAAqE,EAAE;SACjG;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,CAAC;KACpD;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,6DAA6D;QAC1E,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE;YACnE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE;SAChE;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gEAAgE,EAAE;SAC5F;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,6DAA6D;QAC1E,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE;YACV,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE;YACnF,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE;SAC/E;QACD,cAAc,EAAE,KAAK;QACrB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gFAAgF,EAAE;SAC5G;QACD,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,CAAC;KAC1E;CACF,CAAC"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe Payment Security Rules
|
|
3
|
+
* Governance rules for Stripe payment processing
|
|
4
|
+
*/
|
|
5
|
+
export const stripeRules = [
|
|
6
|
+
{
|
|
7
|
+
id: 'stripe-001',
|
|
8
|
+
name: 'Require Webhook Signature Validation',
|
|
9
|
+
description: 'Stripe webhooks must validate signatures to prevent replay attacks',
|
|
10
|
+
type: 'security',
|
|
11
|
+
enabled: true,
|
|
12
|
+
priority: 980,
|
|
13
|
+
conditions: [
|
|
14
|
+
{ field: 'actionName', operator: 'contains', value: 'webhook' },
|
|
15
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
16
|
+
{ field: 'signatureValidated', operator: 'not_equals', value: true }
|
|
17
|
+
],
|
|
18
|
+
conditionLogic: 'all',
|
|
19
|
+
actions: [
|
|
20
|
+
{ type: 'deny', message: 'Stripe webhook signature validation is required (use stripe.webhooks.constructEvent)' }
|
|
21
|
+
],
|
|
22
|
+
riskWeight: 65,
|
|
23
|
+
tags: ['stripe', 'security', 'webhook', 'validation']
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'stripe-002',
|
|
27
|
+
name: 'Enforce Idempotency Keys',
|
|
28
|
+
description: 'Payment operations must use idempotency keys',
|
|
29
|
+
type: 'architecture',
|
|
30
|
+
enabled: true,
|
|
31
|
+
priority: 920,
|
|
32
|
+
conditions: [
|
|
33
|
+
{ field: 'actionCategory', operator: 'equals', value: 'financial' },
|
|
34
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
35
|
+
{ field: 'operation', operator: 'in', value: ['charge', 'payment', 'transfer'] },
|
|
36
|
+
{ field: 'idempotencyKey', operator: 'not_exists', value: null }
|
|
37
|
+
],
|
|
38
|
+
conditionLogic: 'all',
|
|
39
|
+
actions: [
|
|
40
|
+
{ type: 'require_approval', message: 'Stripe payment operations should use idempotency keys to prevent duplicate charges' }
|
|
41
|
+
],
|
|
42
|
+
riskWeight: 50,
|
|
43
|
+
tags: ['stripe', 'idempotency', 'payments', 'reliability']
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'stripe-003',
|
|
47
|
+
name: 'Minimize Customer Data Storage',
|
|
48
|
+
description: 'Store minimal customer data, use Stripe Customer objects',
|
|
49
|
+
type: 'compliance',
|
|
50
|
+
enabled: true,
|
|
51
|
+
priority: 900,
|
|
52
|
+
conditions: [
|
|
53
|
+
{ field: 'actionCategory', operator: 'equals', value: 'data_modification' },
|
|
54
|
+
{ field: 'dataType', operator: 'equals', value: 'payment_method' },
|
|
55
|
+
{ field: 'storedLocally', operator: 'equals', value: true }
|
|
56
|
+
],
|
|
57
|
+
conditionLogic: 'all',
|
|
58
|
+
actions: [
|
|
59
|
+
{ type: 'warn', message: 'PCI-DSS: Store customer data in Stripe, not locally (use Customer and PaymentMethod objects)' }
|
|
60
|
+
],
|
|
61
|
+
riskWeight: 45,
|
|
62
|
+
tags: ['stripe', 'pci-dss', 'data-minimization', 'compliance']
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'stripe-004',
|
|
66
|
+
name: 'Validate Connect Platform Requirements',
|
|
67
|
+
description: 'Stripe Connect platforms must validate account requirements',
|
|
68
|
+
type: 'compliance',
|
|
69
|
+
enabled: true,
|
|
70
|
+
priority: 880,
|
|
71
|
+
conditions: [
|
|
72
|
+
{ field: 'actionName', operator: 'contains', value: 'connect' },
|
|
73
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
74
|
+
{ field: 'accountRequirementsValidated', operator: 'not_equals', value: true }
|
|
75
|
+
],
|
|
76
|
+
conditionLogic: 'all',
|
|
77
|
+
actions: [
|
|
78
|
+
{ type: 'warn', message: 'Stripe Connect: Validate account requirements before accepting payments' }
|
|
79
|
+
],
|
|
80
|
+
riskWeight: 40,
|
|
81
|
+
tags: ['stripe', 'connect', 'compliance', 'validation']
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: 'stripe-005',
|
|
85
|
+
name: 'Require SCA for EU Payments',
|
|
86
|
+
description: 'EU payments must use Strong Customer Authentication',
|
|
87
|
+
type: 'compliance',
|
|
88
|
+
enabled: true,
|
|
89
|
+
priority: 950,
|
|
90
|
+
conditions: [
|
|
91
|
+
{ field: 'actionCategory', operator: 'equals', value: 'financial' },
|
|
92
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
93
|
+
{ field: 'customerRegion', operator: 'in', value: ['EU', 'EEA', 'UK'] },
|
|
94
|
+
{ field: 'scaEnabled', operator: 'not_equals', value: true }
|
|
95
|
+
],
|
|
96
|
+
conditionLogic: 'all',
|
|
97
|
+
actions: [
|
|
98
|
+
{ type: 'deny', message: 'EU/EEA payments require SCA (use Payment Intents with automatic payment methods)' }
|
|
99
|
+
],
|
|
100
|
+
riskWeight: 55,
|
|
101
|
+
tags: ['stripe', 'sca', 'psd2', 'compliance', 'eu']
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'stripe-006',
|
|
105
|
+
name: 'Log All Payment Events',
|
|
106
|
+
description: 'All payment events must be logged for audit',
|
|
107
|
+
type: 'compliance',
|
|
108
|
+
enabled: true,
|
|
109
|
+
priority: 940,
|
|
110
|
+
conditions: [
|
|
111
|
+
{ field: 'actionCategory', operator: 'equals', value: 'financial' },
|
|
112
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' }
|
|
113
|
+
],
|
|
114
|
+
conditionLogic: 'all',
|
|
115
|
+
actions: [
|
|
116
|
+
{ type: 'log' }
|
|
117
|
+
],
|
|
118
|
+
riskWeight: 10,
|
|
119
|
+
tags: ['stripe', 'audit', 'logging', 'compliance']
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: 'stripe-007',
|
|
123
|
+
name: 'Use Latest API Version',
|
|
124
|
+
description: 'Use recent Stripe API version for security and features',
|
|
125
|
+
type: 'security',
|
|
126
|
+
enabled: true,
|
|
127
|
+
priority: 800,
|
|
128
|
+
conditions: [
|
|
129
|
+
{ field: 'provider', operator: 'equals', value: 'stripe' },
|
|
130
|
+
{ field: 'apiVersion', operator: 'less_than', value: '2023-01-01' }
|
|
131
|
+
],
|
|
132
|
+
conditionLogic: 'all',
|
|
133
|
+
actions: [
|
|
134
|
+
{ type: 'warn', message: 'Stripe API version is outdated - update for security fixes and new features' }
|
|
135
|
+
],
|
|
136
|
+
riskWeight: 25,
|
|
137
|
+
tags: ['stripe', 'api-version', 'security', 'maintenance']
|
|
138
|
+
}
|
|
139
|
+
];
|
|
140
|
+
//# sourceMappingURL=stripe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/rules/stripe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/rules/testing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,YAAY,EAAE,YAAY,EAiItC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Testing & Quality Assurance Rules
|
|
3
|
+
* Governance rules for Playwright and test automation
|
|
4
|
+
*/
|
|
5
|
+
export const testingRules = [
|
|
6
|
+
{
|
|
7
|
+
id: 'test-001',
|
|
8
|
+
name: 'Require Test Isolation',
|
|
9
|
+
description: 'Tests must be isolated with no shared state',
|
|
10
|
+
type: 'architecture',
|
|
11
|
+
enabled: true,
|
|
12
|
+
priority: 900,
|
|
13
|
+
conditions: [
|
|
14
|
+
{ field: 'actionCategory', operator: 'equals', value: 'code_execution' },
|
|
15
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
16
|
+
{ field: 'testIsolation', operator: 'not_equals', value: true }
|
|
17
|
+
],
|
|
18
|
+
conditionLogic: 'all',
|
|
19
|
+
actions: [
|
|
20
|
+
{ type: 'warn', message: 'Tests should be isolated (independent setup/teardown, no shared state)' }
|
|
21
|
+
],
|
|
22
|
+
riskWeight: 35,
|
|
23
|
+
tags: ['testing', 'playwright', 'isolation', 'quality']
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'test-002',
|
|
27
|
+
name: 'Limit Test Execution Time',
|
|
28
|
+
description: 'Flag slow tests for optimization',
|
|
29
|
+
type: 'operational',
|
|
30
|
+
enabled: true,
|
|
31
|
+
priority: 750,
|
|
32
|
+
conditions: [
|
|
33
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
34
|
+
{ field: 'executionTimeMs', operator: 'greater_than', value: 30000 }
|
|
35
|
+
],
|
|
36
|
+
conditionLogic: 'all',
|
|
37
|
+
actions: [
|
|
38
|
+
{ type: 'warn', message: 'Test execution >30s - consider optimization or splitting into smaller tests' }
|
|
39
|
+
],
|
|
40
|
+
riskWeight: 20,
|
|
41
|
+
tags: ['testing', 'performance', 'optimization']
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'test-003',
|
|
45
|
+
name: 'Require Test Data Cleanup',
|
|
46
|
+
description: 'Tests must clean up created data/artifacts',
|
|
47
|
+
type: 'operational',
|
|
48
|
+
enabled: true,
|
|
49
|
+
priority: 850,
|
|
50
|
+
conditions: [
|
|
51
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
52
|
+
{ field: 'hasCleanup', operator: 'not_equals', value: true }
|
|
53
|
+
],
|
|
54
|
+
conditionLogic: 'all',
|
|
55
|
+
actions: [
|
|
56
|
+
{ type: 'warn', message: 'Tests should cleanup data/artifacts in afterEach/afterAll hooks' }
|
|
57
|
+
],
|
|
58
|
+
riskWeight: 25,
|
|
59
|
+
tags: ['testing', 'cleanup', 'maintenance']
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'test-004',
|
|
63
|
+
name: 'Enforce Deterministic Test Patterns',
|
|
64
|
+
description: 'Avoid random waits and non-deterministic patterns',
|
|
65
|
+
type: 'architecture',
|
|
66
|
+
enabled: true,
|
|
67
|
+
priority: 880,
|
|
68
|
+
conditions: [
|
|
69
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
70
|
+
{ field: 'usesRandomWait', operator: 'equals', value: true }
|
|
71
|
+
],
|
|
72
|
+
conditionLogic: 'all',
|
|
73
|
+
actions: [
|
|
74
|
+
{ type: 'warn', message: 'Avoid random waits in tests - use waitForSelector, waitForLoadState, etc.' }
|
|
75
|
+
],
|
|
76
|
+
riskWeight: 30,
|
|
77
|
+
tags: ['testing', 'playwright', 'determinism', 'flakiness']
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'test-005',
|
|
81
|
+
name: 'Screenshot Storage Limits',
|
|
82
|
+
description: 'Limit screenshot retention to prevent disk usage',
|
|
83
|
+
type: 'operational',
|
|
84
|
+
enabled: true,
|
|
85
|
+
priority: 700,
|
|
86
|
+
conditions: [
|
|
87
|
+
{ field: 'actionName', operator: 'contains', value: 'screenshot' },
|
|
88
|
+
{ field: 'screenshotRetentionDays', operator: 'greater_than', value: 7 }
|
|
89
|
+
],
|
|
90
|
+
conditionLogic: 'all',
|
|
91
|
+
actions: [
|
|
92
|
+
{ type: 'warn', message: 'Screenshot retention >7 days may consume excessive storage' }
|
|
93
|
+
],
|
|
94
|
+
riskWeight: 15,
|
|
95
|
+
tags: ['testing', 'storage', 'cleanup', 'playwright']
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: 'test-006',
|
|
99
|
+
name: 'Parallel Test Safety',
|
|
100
|
+
description: 'Tests run in parallel must not conflict',
|
|
101
|
+
type: 'architecture',
|
|
102
|
+
enabled: true,
|
|
103
|
+
priority: 860,
|
|
104
|
+
conditions: [
|
|
105
|
+
{ field: 'isTest', operator: 'equals', value: true },
|
|
106
|
+
{ field: 'runsInParallel', operator: 'equals', value: true },
|
|
107
|
+
{ field: 'parallelSafe', operator: 'not_equals', value: true }
|
|
108
|
+
],
|
|
109
|
+
conditionLogic: 'all',
|
|
110
|
+
actions: [
|
|
111
|
+
{ type: 'warn', message: 'Parallel tests must not share resources (unique test data, ports, files)' }
|
|
112
|
+
],
|
|
113
|
+
riskWeight: 30,
|
|
114
|
+
tags: ['testing', 'parallel', 'concurrency', 'playwright']
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: 'test-007',
|
|
118
|
+
name: 'E2E Test Environment Isolation',
|
|
119
|
+
description: 'E2E tests should run against isolated test environment',
|
|
120
|
+
type: 'operational',
|
|
121
|
+
enabled: true,
|
|
122
|
+
priority: 920,
|
|
123
|
+
conditions: [
|
|
124
|
+
{ field: 'testType', operator: 'equals', value: 'e2e' },
|
|
125
|
+
{ field: 'environment', operator: 'equals', value: 'production' }
|
|
126
|
+
],
|
|
127
|
+
conditionLogic: 'all',
|
|
128
|
+
actions: [
|
|
129
|
+
{ type: 'deny', message: 'E2E tests must not run against production environment' }
|
|
130
|
+
],
|
|
131
|
+
riskWeight: 50,
|
|
132
|
+
tags: ['testing', 'e2e', 'environment', 'safety']
|
|
133
|
+
}
|
|
134
|
+
];
|
|
135
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/rules/testing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enterprise Agent Supervisor - UX Rules
|
|
3
|
+
*
|
|
4
|
+
* Built-in rules for ensuring good user experience and interaction patterns.
|
|
5
|
+
*/
|
|
6
|
+
import type { BusinessRule } from '../types/index.js';
|
|
7
|
+
export declare const uxRules: BusinessRule[];
|
|
8
|
+
export default uxRules;
|
|
9
|
+
//# sourceMappingURL=ux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ux.d.ts","sourceRoot":"","sources":["../../src/rules/ux.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,OAAO,EAAE,YAAY,EAoRjC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|