agentic-qe 2.3.2 → 2.3.4
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/CHANGELOG.md +140 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +10 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +113 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +53 -27
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +20 -5
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +44 -6
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/cli/commands/dream/index.d.ts +50 -0
- package/dist/cli/commands/dream/index.d.ts.map +1 -0
- package/dist/cli/commands/dream/index.js +282 -0
- package/dist/cli/commands/dream/index.js.map +1 -0
- package/dist/cli/commands/learn/index.d.ts +31 -5
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +183 -50
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/transfer/index.d.ts +55 -0
- package/dist/cli/commands/transfer/index.d.ts.map +1 -0
- package/dist/cli/commands/transfer/index.js +317 -0
- package/dist/cli/commands/transfer/index.js.map +1 -0
- package/dist/cli/index.js +156 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/database-init.js +5 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +12 -4
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/learning-init.d.ts +39 -0
- package/dist/cli/init/learning-init.d.ts.map +1 -0
- package/dist/cli/init/learning-init.js +239 -0
- package/dist/cli/init/learning-init.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/PerformanceTracker.d.ts +9 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -1
- package/dist/learning/PerformanceTracker.js +26 -2
- package/dist/learning/PerformanceTracker.js.map +1 -1
- package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
- package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
- package/dist/learning/baselines/BaselineCollector.js +398 -0
- package/dist/learning/baselines/BaselineCollector.js.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.js +801 -0
- package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
- package/dist/learning/baselines/index.d.ts +10 -0
- package/dist/learning/baselines/index.d.ts.map +1 -0
- package/dist/learning/baselines/index.js +15 -0
- package/dist/learning/baselines/index.js.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.js +195 -0
- package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
- package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
- package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceCapture.js +432 -0
- package/dist/learning/capture/ExperienceCapture.js.map +1 -0
- package/dist/learning/capture/index.d.ts +12 -0
- package/dist/learning/capture/index.d.ts.map +1 -0
- package/dist/learning/capture/index.js +17 -0
- package/dist/learning/capture/index.js.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.js +230 -0
- package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
- package/dist/learning/dashboard/index.d.ts +7 -0
- package/dist/learning/dashboard/index.d.ts.map +1 -0
- package/dist/learning/dashboard/index.js +23 -0
- package/dist/learning/dashboard/index.js.map +1 -0
- package/dist/learning/dream/ConceptGraph.d.ts +160 -0
- package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
- package/dist/learning/dream/ConceptGraph.js +445 -0
- package/dist/learning/dream/ConceptGraph.js.map +1 -0
- package/dist/learning/dream/DreamEngine.d.ts +150 -0
- package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
- package/dist/learning/dream/DreamEngine.js +551 -0
- package/dist/learning/dream/DreamEngine.js.map +1 -0
- package/dist/learning/dream/InsightGenerator.d.ts +152 -0
- package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
- package/dist/learning/dream/InsightGenerator.js +463 -0
- package/dist/learning/dream/InsightGenerator.js.map +1 -0
- package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
- package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
- package/dist/learning/dream/SpreadingActivation.js +320 -0
- package/dist/learning/dream/SpreadingActivation.js.map +1 -0
- package/dist/learning/dream/index.d.ts +14 -0
- package/dist/learning/dream/index.d.ts.map +1 -0
- package/dist/learning/dream/index.js +22 -0
- package/dist/learning/dream/index.js.map +1 -0
- package/dist/learning/metrics/AlertManager.d.ts +107 -0
- package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
- package/dist/learning/metrics/AlertManager.js +246 -0
- package/dist/learning/metrics/AlertManager.js.map +1 -0
- package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
- package/dist/learning/metrics/LearningMetrics.js +754 -0
- package/dist/learning/metrics/LearningMetrics.js.map +1 -0
- package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
- package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsCollector.js +240 -0
- package/dist/learning/metrics/MetricsCollector.js.map +1 -0
- package/dist/learning/metrics/MetricsStore.d.ts +149 -0
- package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsStore.js +502 -0
- package/dist/learning/metrics/MetricsStore.js.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.js +210 -0
- package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
- package/dist/learning/metrics/index.d.ts +13 -0
- package/dist/learning/metrics/index.d.ts.map +1 -0
- package/dist/learning/metrics/index.js +39 -0
- package/dist/learning/metrics/index.js.map +1 -0
- package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
- package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
- package/dist/learning/scheduler/IdleDetector.js +281 -0
- package/dist/learning/scheduler/IdleDetector.js.map +1 -0
- package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
- package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepCycle.js +506 -0
- package/dist/learning/scheduler/SleepCycle.js.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.js +299 -0
- package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
- package/dist/learning/scheduler/index.d.ts +16 -0
- package/dist/learning/scheduler/index.d.ts.map +1 -0
- package/dist/learning/scheduler/index.js +23 -0
- package/dist/learning/scheduler/index.js.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.js +479 -0
- package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
- package/dist/learning/synthesis/index.d.ts +10 -0
- package/dist/learning/synthesis/index.d.ts.map +1 -0
- package/dist/learning/synthesis/index.js +14 -0
- package/dist/learning/synthesis/index.js.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.js +319 -0
- package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
- package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
- package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
- package/dist/learning/transfer/TransferProtocol.js +611 -0
- package/dist/learning/transfer/TransferProtocol.js.map +1 -0
- package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
- package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
- package/dist/learning/transfer/TransferPrototype.js +433 -0
- package/dist/learning/transfer/TransferPrototype.js.map +1 -0
- package/dist/learning/transfer/TransferValidator.d.ts +140 -0
- package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
- package/dist/learning/transfer/TransferValidator.js +413 -0
- package/dist/learning/transfer/TransferValidator.js.map +1 -0
- package/dist/learning/transfer/index.d.ts +14 -0
- package/dist/learning/transfer/index.d.ts.map +1 -0
- package/dist/learning/transfer/index.js +22 -0
- package/dist/learning/transfer/index.js.map +1 -0
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
- package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +7 -2
- package/scripts/README.md +352 -0
- package/scripts/hooks/capture-task-learning.js +191 -0
- package/scripts/hooks/emit-task-complete.sh +35 -0
- package/scripts/hooks/emit-task-spawn.sh +27 -0
- package/.claude/agents/failing-agent.json +0 -9
- package/.claude/agents/test-agent.json +0 -9
- package/dist/App.d.ts +0 -5
- package/dist/App.d.ts.map +0 -1
- package/dist/App.js +0 -15
- package/dist/App.js.map +0 -1
- package/dist/cli/init/utils.d.ts +0 -183
- package/dist/cli/init/utils.d.ts.map +0 -1
- package/dist/cli/init/utils.js +0 -354
- package/dist/cli/init/utils.js.map +0 -1
- package/dist/components/Dashboard/Dashboard.d.ts +0 -4
- package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
- package/dist/components/Dashboard/Dashboard.js +0 -148
- package/dist/components/Dashboard/Dashboard.js.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.js +0 -138
- package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
- package/dist/contexts/DashboardContext.d.ts +0 -41
- package/dist/contexts/DashboardContext.d.ts.map +0 -1
- package/dist/contexts/DashboardContext.js +0 -187
- package/dist/contexts/DashboardContext.js.map +0 -1
- package/dist/core/transport/QUICTransport.d.ts +0 -320
- package/dist/core/transport/QUICTransport.d.ts.map +0 -1
- package/dist/core/transport/QUICTransport.js +0 -711
- package/dist/core/transport/QUICTransport.js.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
- package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.js +0 -202
- package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
- package/dist/learning/algorithms/QLearning.d.ts +0 -68
- package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
- package/dist/learning/algorithms/QLearning.js +0 -116
- package/dist/learning/algorithms/QLearning.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
- package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
- package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
- package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
- package/dist/mcp/handlers/optimize-tests.js +0 -533
- package/dist/mcp/handlers/optimize-tests.js.map +0 -1
- package/dist/mcp/handlers/predict-defects.d.ts +0 -194
- package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
- package/dist/mcp/handlers/predict-defects.js +0 -722
- package/dist/mcp/handlers/predict-defects.js.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
- package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
- package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
- package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
- package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
- package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
- package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
- package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/quality-analyze.js +0 -720
- package/dist/mcp/handlers/quality-analyze.js.map +0 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
- package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
- package/dist/mcp/handlers/security/check-authz.js +0 -434
- package/dist/mcp/handlers/security/check-authz.js.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
- package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.js +0 -294
- package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
- package/dist/mcp/handlers/test-generate.d.ts +0 -107
- package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
- package/dist/mcp/handlers/test-generate.js +0 -454
- package/dist/mcp/handlers/test-generate.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quality-analyze.js","sourceRoot":"","sources":["../../../src/mcp/handlers/quality-analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authorization Rule Checking Tool
|
|
3
|
-
*
|
|
4
|
-
* Validates authorization rules, policy enforcement, and role-based access control
|
|
5
|
-
* with comprehensive RBAC/ABAC testing and permission validation.
|
|
6
|
-
*
|
|
7
|
-
* @module security/check-authz
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
* @author Agentic QE Team
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { checkAuthorizationRules } from './check-authz';
|
|
14
|
-
*
|
|
15
|
-
* const result = await checkAuthorizationRules({
|
|
16
|
-
* roles: ['admin', 'user', 'guest'],
|
|
17
|
-
* resources: ['/api/users', '/api/admin', '/api/reports'],
|
|
18
|
-
* policies: './security-policies.json'
|
|
19
|
-
* });
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
import { BaseHandler, HandlerResponse } from '../base-handler.js';
|
|
23
|
-
export interface CheckAuthorizationRulesParams {
|
|
24
|
-
/** Roles to test */
|
|
25
|
-
roles: string[];
|
|
26
|
-
/** Resources/endpoints to validate access */
|
|
27
|
-
resources: string[];
|
|
28
|
-
/** Path to authorization policy file (JSON, YAML, or Rego) */
|
|
29
|
-
policies: string;
|
|
30
|
-
/** Enable hierarchical role testing */
|
|
31
|
-
testHierarchy?: boolean;
|
|
32
|
-
/** Enable attribute-based access control (ABAC) testing */
|
|
33
|
-
testABAC?: boolean;
|
|
34
|
-
/** Enable permission inheritance testing */
|
|
35
|
-
testInheritance?: boolean;
|
|
36
|
-
/** Test for privilege escalation vulnerabilities */
|
|
37
|
-
testPrivilegeEscalation?: boolean;
|
|
38
|
-
}
|
|
39
|
-
export interface AuthorizationPolicy {
|
|
40
|
-
version: string;
|
|
41
|
-
roles: Array<{
|
|
42
|
-
name: string;
|
|
43
|
-
permissions: string[];
|
|
44
|
-
inherits?: string[];
|
|
45
|
-
attributes?: Record<string, any>;
|
|
46
|
-
}>;
|
|
47
|
-
resources: Array<{
|
|
48
|
-
path: string;
|
|
49
|
-
allowedRoles: string[];
|
|
50
|
-
requiredPermissions: string[];
|
|
51
|
-
conditions?: Array<{
|
|
52
|
-
attribute: string;
|
|
53
|
-
operator: 'equals' | 'contains' | 'greaterThan' | 'lessThan';
|
|
54
|
-
value: any;
|
|
55
|
-
}>;
|
|
56
|
-
}>;
|
|
57
|
-
}
|
|
58
|
-
export interface AuthzCheckResult {
|
|
59
|
-
/** Role-based access results */
|
|
60
|
-
roleAccessResults: Array<{
|
|
61
|
-
role: string;
|
|
62
|
-
allowedResources: string[];
|
|
63
|
-
deniedResources: string[];
|
|
64
|
-
permissions: string[];
|
|
65
|
-
hierarchyLevel?: number;
|
|
66
|
-
issues: AuthzFinding[];
|
|
67
|
-
}>;
|
|
68
|
-
/** Resource access matrix */
|
|
69
|
-
accessMatrix: {
|
|
70
|
-
resources: string[];
|
|
71
|
-
roles: string[];
|
|
72
|
-
matrix: boolean[][];
|
|
73
|
-
};
|
|
74
|
-
/** Policy validation results */
|
|
75
|
-
policyValidation: {
|
|
76
|
-
policiesLoaded: number;
|
|
77
|
-
policiesValid: number;
|
|
78
|
-
policiesInvalid: number;
|
|
79
|
-
conflicts: Array<{
|
|
80
|
-
type: 'role-conflict' | 'permission-conflict' | 'resource-conflict';
|
|
81
|
-
description: string;
|
|
82
|
-
affectedRoles: string[];
|
|
83
|
-
affectedResources: string[];
|
|
84
|
-
}>;
|
|
85
|
-
};
|
|
86
|
-
/** Privilege escalation findings */
|
|
87
|
-
privilegeEscalation?: {
|
|
88
|
-
vulnerabilitiesFound: number;
|
|
89
|
-
vulnerabilities: Array<{
|
|
90
|
-
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
91
|
-
role: string;
|
|
92
|
-
escalationPath: string[];
|
|
93
|
-
description: string;
|
|
94
|
-
remediation: string;
|
|
95
|
-
}>;
|
|
96
|
-
};
|
|
97
|
-
/** ABAC validation results */
|
|
98
|
-
abacValidation?: {
|
|
99
|
-
attributesValidated: number;
|
|
100
|
-
attributesFailed: number;
|
|
101
|
-
issues: string[];
|
|
102
|
-
};
|
|
103
|
-
/** Inheritance validation results */
|
|
104
|
-
inheritanceValidation?: {
|
|
105
|
-
inheritanceChains: Array<{
|
|
106
|
-
role: string;
|
|
107
|
-
inheritsFrom: string[];
|
|
108
|
-
totalPermissions: number;
|
|
109
|
-
inheritedPermissions: number;
|
|
110
|
-
}>;
|
|
111
|
-
circularDependencies: string[][];
|
|
112
|
-
issues: string[];
|
|
113
|
-
};
|
|
114
|
-
/** Overall summary */
|
|
115
|
-
summary: {
|
|
116
|
-
overallStatus: 'secure' | 'vulnerable' | 'needs-review';
|
|
117
|
-
totalRoles: number;
|
|
118
|
-
totalResources: number;
|
|
119
|
-
totalPermissions: number;
|
|
120
|
-
criticalIssues: number;
|
|
121
|
-
highIssues: number;
|
|
122
|
-
mediumIssues: number;
|
|
123
|
-
recommendations: string[];
|
|
124
|
-
};
|
|
125
|
-
/** Metadata */
|
|
126
|
-
metadata: {
|
|
127
|
-
policyFile: string;
|
|
128
|
-
validationDuration: number;
|
|
129
|
-
timestamp: string;
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
export interface AuthzFinding {
|
|
133
|
-
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
134
|
-
category: 'access-control' | 'privilege-escalation' | 'policy-violation' | 'misconfiguration';
|
|
135
|
-
title: string;
|
|
136
|
-
description: string;
|
|
137
|
-
role: string;
|
|
138
|
-
resource?: string;
|
|
139
|
-
cwe?: string;
|
|
140
|
-
remediation: string;
|
|
141
|
-
}
|
|
142
|
-
export declare class CheckAuthorizationRulesHandler extends BaseHandler {
|
|
143
|
-
handle(args: CheckAuthorizationRulesParams): Promise<HandlerResponse>;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Check authorization rules and validate RBAC/ABAC configuration
|
|
147
|
-
*
|
|
148
|
-
* @param params - Authorization check parameters
|
|
149
|
-
* @returns Authorization validation results with security findings
|
|
150
|
-
*/
|
|
151
|
-
export declare function checkAuthorizationRules(params: CheckAuthorizationRulesParams): Promise<AuthzCheckResult>;
|
|
152
|
-
//# sourceMappingURL=check-authz.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-authz.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/security/check-authz.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,434 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Authorization Rule Checking Tool
|
|
4
|
-
*
|
|
5
|
-
* Validates authorization rules, policy enforcement, and role-based access control
|
|
6
|
-
* with comprehensive RBAC/ABAC testing and permission validation.
|
|
7
|
-
*
|
|
8
|
-
* @module security/check-authz
|
|
9
|
-
* @version 1.0.0
|
|
10
|
-
* @author Agentic QE Team
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* import { checkAuthorizationRules } from './check-authz';
|
|
15
|
-
*
|
|
16
|
-
* const result = await checkAuthorizationRules({
|
|
17
|
-
* roles: ['admin', 'user', 'guest'],
|
|
18
|
-
* resources: ['/api/users', '/api/admin', '/api/reports'],
|
|
19
|
-
* policies: './security-policies.json'
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
|
-
if (k2 === undefined) k2 = k;
|
|
25
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
26
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
27
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
28
|
-
}
|
|
29
|
-
Object.defineProperty(o, k2, desc);
|
|
30
|
-
}) : (function(o, m, k, k2) {
|
|
31
|
-
if (k2 === undefined) k2 = k;
|
|
32
|
-
o[k2] = m[k];
|
|
33
|
-
}));
|
|
34
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
-
}) : function(o, v) {
|
|
37
|
-
o["default"] = v;
|
|
38
|
-
});
|
|
39
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
40
|
-
var ownKeys = function(o) {
|
|
41
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
42
|
-
var ar = [];
|
|
43
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
44
|
-
return ar;
|
|
45
|
-
};
|
|
46
|
-
return ownKeys(o);
|
|
47
|
-
};
|
|
48
|
-
return function (mod) {
|
|
49
|
-
if (mod && mod.__esModule) return mod;
|
|
50
|
-
var result = {};
|
|
51
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
52
|
-
__setModuleDefault(result, mod);
|
|
53
|
-
return result;
|
|
54
|
-
};
|
|
55
|
-
})();
|
|
56
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
-
exports.CheckAuthorizationRulesHandler = void 0;
|
|
58
|
-
exports.checkAuthorizationRules = checkAuthorizationRules;
|
|
59
|
-
const base_handler_js_1 = require("../base-handler.js");
|
|
60
|
-
const SecureRandom_js_1 = require("../../../utils/SecureRandom.js");
|
|
61
|
-
const fs = __importStar(require("fs/promises"));
|
|
62
|
-
class CheckAuthorizationRulesHandler extends base_handler_js_1.BaseHandler {
|
|
63
|
-
async handle(args) {
|
|
64
|
-
return this.safeHandle(async () => {
|
|
65
|
-
const requestId = this.generateRequestId();
|
|
66
|
-
this.log('info', 'Checking authorization rules', { requestId, roles: args.roles.length });
|
|
67
|
-
// Validate required parameters
|
|
68
|
-
this.validateRequired(args, ['roles', 'resources', 'policies']);
|
|
69
|
-
const { result, executionTime } = await this.measureExecutionTime(async () => {
|
|
70
|
-
return await checkAuthorizationRules(args);
|
|
71
|
-
});
|
|
72
|
-
this.log('info', `Authorization check completed in ${executionTime.toFixed(2)}ms`, {
|
|
73
|
-
status: result.summary.overallStatus,
|
|
74
|
-
criticalIssues: result.summary.criticalIssues
|
|
75
|
-
});
|
|
76
|
-
return this.createSuccessResponse(result, requestId);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.CheckAuthorizationRulesHandler = CheckAuthorizationRulesHandler;
|
|
81
|
-
/**
|
|
82
|
-
* Check authorization rules and validate RBAC/ABAC configuration
|
|
83
|
-
*
|
|
84
|
-
* @param params - Authorization check parameters
|
|
85
|
-
* @returns Authorization validation results with security findings
|
|
86
|
-
*/
|
|
87
|
-
async function checkAuthorizationRules(params) {
|
|
88
|
-
const startTime = Date.now();
|
|
89
|
-
const { roles, resources, policies: policyFile, testHierarchy = true, testABAC = false, testInheritance = true, testPrivilegeEscalation = true } = params;
|
|
90
|
-
// Load and validate policies
|
|
91
|
-
const policy = await loadAuthorizationPolicy(policyFile);
|
|
92
|
-
const policyValidation = validatePolicies(policy, roles, resources);
|
|
93
|
-
// Test role access to resources
|
|
94
|
-
const roleAccessResults = await testRoleAccess(policy, roles, resources);
|
|
95
|
-
// Build access matrix
|
|
96
|
-
const accessMatrix = buildAccessMatrix(roleAccessResults, roles, resources);
|
|
97
|
-
// Test privilege escalation if enabled
|
|
98
|
-
let privilegeEscalation;
|
|
99
|
-
if (testPrivilegeEscalation) {
|
|
100
|
-
privilegeEscalation = await testPrivilegeEscalationVulnerabilities(policy, roles);
|
|
101
|
-
}
|
|
102
|
-
// Test ABAC if enabled
|
|
103
|
-
let abacValidation;
|
|
104
|
-
if (testABAC) {
|
|
105
|
-
abacValidation = await validateABAC(policy, resources);
|
|
106
|
-
}
|
|
107
|
-
// Test inheritance if enabled
|
|
108
|
-
let inheritanceValidation;
|
|
109
|
-
if (testInheritance) {
|
|
110
|
-
inheritanceValidation = await validateInheritance(policy);
|
|
111
|
-
}
|
|
112
|
-
// Calculate critical issues
|
|
113
|
-
let criticalIssues = 0;
|
|
114
|
-
let highIssues = 0;
|
|
115
|
-
let mediumIssues = 0;
|
|
116
|
-
roleAccessResults.forEach(result => {
|
|
117
|
-
result.issues.forEach(issue => {
|
|
118
|
-
if (issue.severity === 'critical')
|
|
119
|
-
criticalIssues++;
|
|
120
|
-
else if (issue.severity === 'high')
|
|
121
|
-
highIssues++;
|
|
122
|
-
else if (issue.severity === 'medium')
|
|
123
|
-
mediumIssues++;
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
if (privilegeEscalation) {
|
|
127
|
-
privilegeEscalation.vulnerabilities.forEach(vuln => {
|
|
128
|
-
if (vuln.severity === 'critical')
|
|
129
|
-
criticalIssues++;
|
|
130
|
-
else if (vuln.severity === 'high')
|
|
131
|
-
highIssues++;
|
|
132
|
-
else if (vuln.severity === 'medium')
|
|
133
|
-
mediumIssues++;
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
// Generate recommendations
|
|
137
|
-
const recommendations = generateAuthzRecommendations({
|
|
138
|
-
policyValidation,
|
|
139
|
-
privilegeEscalation,
|
|
140
|
-
abacValidation,
|
|
141
|
-
inheritanceValidation,
|
|
142
|
-
criticalIssues
|
|
143
|
-
});
|
|
144
|
-
// Determine overall status
|
|
145
|
-
const overallStatus = criticalIssues > 0 ? 'vulnerable' :
|
|
146
|
-
highIssues > 0 ? 'needs-review' : 'secure';
|
|
147
|
-
return {
|
|
148
|
-
roleAccessResults,
|
|
149
|
-
accessMatrix,
|
|
150
|
-
policyValidation,
|
|
151
|
-
privilegeEscalation,
|
|
152
|
-
abacValidation,
|
|
153
|
-
inheritanceValidation,
|
|
154
|
-
summary: {
|
|
155
|
-
overallStatus,
|
|
156
|
-
totalRoles: roles.length,
|
|
157
|
-
totalResources: resources.length,
|
|
158
|
-
totalPermissions: policy.roles.reduce((sum, role) => sum + role.permissions.length, 0),
|
|
159
|
-
criticalIssues,
|
|
160
|
-
highIssues,
|
|
161
|
-
mediumIssues,
|
|
162
|
-
recommendations
|
|
163
|
-
},
|
|
164
|
-
metadata: {
|
|
165
|
-
policyFile,
|
|
166
|
-
validationDuration: Date.now() - startTime,
|
|
167
|
-
timestamp: new Date().toISOString()
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
async function loadAuthorizationPolicy(policyFile) {
|
|
172
|
-
try {
|
|
173
|
-
// Check if file exists
|
|
174
|
-
const fileExists = await fs.access(policyFile).then(() => true).catch(() => false);
|
|
175
|
-
if (!fileExists) {
|
|
176
|
-
// Return mock policy for testing
|
|
177
|
-
return createMockPolicy();
|
|
178
|
-
}
|
|
179
|
-
const content = await fs.readFile(policyFile, 'utf-8');
|
|
180
|
-
const policy = JSON.parse(content);
|
|
181
|
-
return policy;
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
// Return mock policy if file can't be loaded
|
|
185
|
-
return createMockPolicy();
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
function createMockPolicy() {
|
|
189
|
-
return {
|
|
190
|
-
version: '1.0.0',
|
|
191
|
-
roles: [
|
|
192
|
-
{
|
|
193
|
-
name: 'admin',
|
|
194
|
-
permissions: ['read', 'write', 'delete', 'admin'],
|
|
195
|
-
attributes: { level: 'admin' }
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
name: 'user',
|
|
199
|
-
permissions: ['read', 'write'],
|
|
200
|
-
inherits: [],
|
|
201
|
-
attributes: { level: 'user' }
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
name: 'guest',
|
|
205
|
-
permissions: ['read'],
|
|
206
|
-
inherits: [],
|
|
207
|
-
attributes: { level: 'guest' }
|
|
208
|
-
}
|
|
209
|
-
],
|
|
210
|
-
resources: [
|
|
211
|
-
{
|
|
212
|
-
path: '/api/users',
|
|
213
|
-
allowedRoles: ['admin', 'user'],
|
|
214
|
-
requiredPermissions: ['read']
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
path: '/api/admin',
|
|
218
|
-
allowedRoles: ['admin'],
|
|
219
|
-
requiredPermissions: ['admin']
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
path: '/api/reports',
|
|
223
|
-
allowedRoles: ['admin', 'user'],
|
|
224
|
-
requiredPermissions: ['read']
|
|
225
|
-
}
|
|
226
|
-
]
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
function validatePolicies(policy, roles, resources) {
|
|
230
|
-
const conflicts = [];
|
|
231
|
-
// Check for role conflicts
|
|
232
|
-
const policyRoles = policy.roles.map(r => r.name);
|
|
233
|
-
const undefinedRoles = roles.filter(r => !policyRoles.includes(r));
|
|
234
|
-
if (undefinedRoles.length > 0) {
|
|
235
|
-
conflicts.push({
|
|
236
|
-
type: 'role-conflict',
|
|
237
|
-
description: `Roles not defined in policy: ${undefinedRoles.join(', ')}`,
|
|
238
|
-
affectedRoles: undefinedRoles,
|
|
239
|
-
affectedResources: []
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
// Check for resource conflicts
|
|
243
|
-
const policyResources = policy.resources.map(r => r.path);
|
|
244
|
-
const undefinedResources = resources.filter(r => !policyResources.includes(r));
|
|
245
|
-
if (undefinedResources.length > 0) {
|
|
246
|
-
conflicts.push({
|
|
247
|
-
type: 'resource-conflict',
|
|
248
|
-
description: `Resources not defined in policy: ${undefinedResources.join(', ')}`,
|
|
249
|
-
affectedRoles: [],
|
|
250
|
-
affectedResources: undefinedResources
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
return {
|
|
254
|
-
policiesLoaded: policy.roles.length + policy.resources.length,
|
|
255
|
-
policiesValid: policy.roles.length + policy.resources.length - conflicts.length,
|
|
256
|
-
policiesInvalid: conflicts.length,
|
|
257
|
-
conflicts
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
async function testRoleAccess(policy, roles, resources) {
|
|
261
|
-
const results = [];
|
|
262
|
-
for (const roleName of roles) {
|
|
263
|
-
const role = policy.roles.find(r => r.name === roleName);
|
|
264
|
-
const allowedResources = [];
|
|
265
|
-
const deniedResources = [];
|
|
266
|
-
const issues = [];
|
|
267
|
-
for (const resourcePath of resources) {
|
|
268
|
-
const resource = policy.resources.find(r => r.path === resourcePath);
|
|
269
|
-
if (!resource) {
|
|
270
|
-
deniedResources.push(resourcePath);
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
const hasAccess = resource.allowedRoles.includes(roleName);
|
|
274
|
-
if (hasAccess) {
|
|
275
|
-
allowedResources.push(resourcePath);
|
|
276
|
-
// Check for over-permissive access
|
|
277
|
-
if (roleName === 'guest' && resourcePath.includes('admin')) {
|
|
278
|
-
issues.push({
|
|
279
|
-
severity: 'critical',
|
|
280
|
-
category: 'access-control',
|
|
281
|
-
title: 'Over-permissive access for guest role',
|
|
282
|
-
description: `Guest role has access to admin resource: ${resourcePath}`,
|
|
283
|
-
role: roleName,
|
|
284
|
-
resource: resourcePath,
|
|
285
|
-
cwe: 'CWE-269',
|
|
286
|
-
remediation: 'Restrict admin resources to admin role only'
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
deniedResources.push(resourcePath);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
results.push({
|
|
295
|
-
role: roleName,
|
|
296
|
-
allowedResources,
|
|
297
|
-
deniedResources,
|
|
298
|
-
permissions: role?.permissions || [],
|
|
299
|
-
issues
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
return results;
|
|
303
|
-
}
|
|
304
|
-
function buildAccessMatrix(roleAccessResults, roles, resources) {
|
|
305
|
-
const matrix = [];
|
|
306
|
-
for (let roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
|
307
|
-
const roleResult = roleAccessResults.find(r => r.role === roles[roleIdx]);
|
|
308
|
-
const row = [];
|
|
309
|
-
for (const resource of resources) {
|
|
310
|
-
const hasAccess = roleResult?.allowedResources.includes(resource) || false;
|
|
311
|
-
row.push(hasAccess);
|
|
312
|
-
}
|
|
313
|
-
matrix.push(row);
|
|
314
|
-
}
|
|
315
|
-
return {
|
|
316
|
-
resources,
|
|
317
|
-
roles,
|
|
318
|
-
matrix
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
async function testPrivilegeEscalationVulnerabilities(policy, roles) {
|
|
322
|
-
const vulnerabilities = [];
|
|
323
|
-
// Test for privilege escalation through permission combination
|
|
324
|
-
for (const roleName of roles) {
|
|
325
|
-
const role = policy.roles.find(r => r.name === roleName);
|
|
326
|
-
if (!role)
|
|
327
|
-
continue;
|
|
328
|
-
// Check if low-privilege role has admin permissions
|
|
329
|
-
if (roleName !== 'admin' && role.permissions.includes('admin')) {
|
|
330
|
-
vulnerabilities.push({
|
|
331
|
-
severity: 'critical',
|
|
332
|
-
role: roleName,
|
|
333
|
-
escalationPath: [roleName, 'admin'],
|
|
334
|
-
description: `Role "${roleName}" has admin permissions but is not an admin role`,
|
|
335
|
-
remediation: 'Remove admin permissions from non-admin roles'
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
// Check for dangerous permission combinations
|
|
339
|
-
if (role.permissions.includes('write') && role.permissions.includes('delete') && roleName === 'guest') {
|
|
340
|
-
vulnerabilities.push({
|
|
341
|
-
severity: 'high',
|
|
342
|
-
role: roleName,
|
|
343
|
-
escalationPath: [roleName, 'write+delete'],
|
|
344
|
-
description: `Guest role has dangerous permission combination: write and delete`,
|
|
345
|
-
remediation: 'Restrict write and delete permissions to authenticated users'
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
return {
|
|
350
|
-
vulnerabilitiesFound: vulnerabilities.length,
|
|
351
|
-
vulnerabilities
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
async function validateABAC(policy, resources) {
|
|
355
|
-
let attributesValidated = 0;
|
|
356
|
-
let attributesFailed = 0;
|
|
357
|
-
const issues = [];
|
|
358
|
-
for (const resource of policy.resources) {
|
|
359
|
-
if (resource.conditions) {
|
|
360
|
-
attributesValidated += resource.conditions.length;
|
|
361
|
-
for (const condition of resource.conditions) {
|
|
362
|
-
// Simulate ABAC validation
|
|
363
|
-
if (SecureRandom_js_1.SecureRandom.randomFloat() > 0.8) {
|
|
364
|
-
attributesFailed++;
|
|
365
|
-
issues.push(`ABAC condition failed for ${resource.path}: ${condition.attribute} ${condition.operator} ${condition.value}`);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
return {
|
|
371
|
-
attributesValidated,
|
|
372
|
-
attributesFailed,
|
|
373
|
-
issues
|
|
374
|
-
};
|
|
375
|
-
}
|
|
376
|
-
async function validateInheritance(policy) {
|
|
377
|
-
const inheritanceChains = [];
|
|
378
|
-
const circularDependencies = [];
|
|
379
|
-
const issues = [];
|
|
380
|
-
for (const role of policy.roles) {
|
|
381
|
-
const inheritsFrom = role.inherits || [];
|
|
382
|
-
const totalPermissions = role.permissions.length;
|
|
383
|
-
let inheritedPermissions = 0;
|
|
384
|
-
// Calculate inherited permissions
|
|
385
|
-
for (const parentRole of inheritsFrom) {
|
|
386
|
-
const parent = policy.roles.find(r => r.name === parentRole);
|
|
387
|
-
if (parent) {
|
|
388
|
-
inheritedPermissions += parent.permissions.length;
|
|
389
|
-
}
|
|
390
|
-
else {
|
|
391
|
-
issues.push(`Role "${role.name}" inherits from undefined role "${parentRole}"`);
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
inheritanceChains.push({
|
|
395
|
-
role: role.name,
|
|
396
|
-
inheritsFrom,
|
|
397
|
-
totalPermissions,
|
|
398
|
-
inheritedPermissions
|
|
399
|
-
});
|
|
400
|
-
// Check for circular dependencies (simplified)
|
|
401
|
-
if (inheritsFrom.includes(role.name)) {
|
|
402
|
-
circularDependencies.push([role.name, role.name]);
|
|
403
|
-
issues.push(`Circular inheritance detected in role "${role.name}"`);
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
return {
|
|
407
|
-
inheritanceChains,
|
|
408
|
-
circularDependencies,
|
|
409
|
-
issues
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
function generateAuthzRecommendations(context) {
|
|
413
|
-
const recommendations = [];
|
|
414
|
-
if (context.criticalIssues > 0) {
|
|
415
|
-
recommendations.push(`URGENT: ${context.criticalIssues} critical authorization vulnerabilities require immediate attention`);
|
|
416
|
-
}
|
|
417
|
-
if (context.policyValidation.conflicts.length > 0) {
|
|
418
|
-
recommendations.push(`Resolve ${context.policyValidation.conflicts.length} policy conflicts`);
|
|
419
|
-
}
|
|
420
|
-
if (context.privilegeEscalation && context.privilegeEscalation.vulnerabilitiesFound > 0) {
|
|
421
|
-
recommendations.push('Fix privilege escalation vulnerabilities by reviewing role permissions');
|
|
422
|
-
}
|
|
423
|
-
if (context.inheritanceValidation?.circularDependencies.length) {
|
|
424
|
-
recommendations.push('Remove circular inheritance dependencies');
|
|
425
|
-
}
|
|
426
|
-
if (context.abacValidation && context.abacValidation.attributesFailed > 0) {
|
|
427
|
-
recommendations.push('Review ABAC attribute conditions for accuracy');
|
|
428
|
-
}
|
|
429
|
-
if (recommendations.length === 0) {
|
|
430
|
-
recommendations.push('Authorization configuration appears secure. Continue regular policy reviews');
|
|
431
|
-
}
|
|
432
|
-
return recommendations;
|
|
433
|
-
}
|
|
434
|
-
//# sourceMappingURL=check-authz.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check-authz.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/security/check-authz.ts"],"names":[],"mappings":"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"}
|