mcp-security-agent
Version:
An MCP-based security scanner and agentic AI for vulnerability detection
93 lines • 2.52 kB
TypeScript
import { SecurityPolicy, PolicyRule, PolicyResult } from '../types/index.js';
import { Logger } from '../utils/Logger.js';
export declare class PolicyEngine {
private logger;
private policies;
private defaultPolicies;
constructor(logger: Logger);
/**
* Initialize default security policies
*/
private initializeDefaultPolicies;
/**
* Add a new security policy
*/
addPolicy(policy: SecurityPolicy): void;
/**
* Remove a security policy
*/
removePolicy(policyId: string): boolean;
/**
* Get a security policy by ID
*/
getPolicy(policyId: string): SecurityPolicy | undefined;
/**
* Get all policies
*/
getAllPolicies(): SecurityPolicy[];
/**
* Get policies by scope
*/
getPoliciesByScope(scope: 'global' | 'team' | 'repo'): SecurityPolicy[];
/**
* Enable or disable a policy
*/
setPolicyEnabled(policyId: string, enabled: boolean): boolean;
/**
* Update a policy rule
*/
updatePolicyRule(policyId: string, ruleId: string, updatedRule: PolicyRule): boolean;
/**
* Evaluate a policy against a context
*/
evaluatePolicy(policy: SecurityPolicy, context: any): Promise<PolicyResult>;
/**
* Evaluate all rules in a policy against a context
*/
private evaluatePolicyRules;
/**
* Evaluate all applicable policies against a context
*/
evaluateAllPolicies(context: Record<string, any>): Promise<PolicyResult[]>;
/**
* Evaluate a single rule against a context
*/
private evaluateRule;
/**
* Evaluate a single condition against a context
*/
private evaluateCondition;
/**
* Get field value from context using dot notation
*/
private getFieldValue;
/**
* Generate recommendations for a rule
*/
private generateRecommendations;
/**
* Get policy inheritance chain
*/
getPolicyInheritance(policyId: string): SecurityPolicy[];
/**
* Export policies to human-readable format
*/
exportPolicies(format?: 'json' | 'yaml' | 'rego'): string;
/**
* Convert policies to YAML format
*/
private convertToYAML;
/**
* Convert policies to Rego format
*/
private convertToRego;
/**
* Convert operator to Rego syntax
*/
private convertOperatorToRego;
/**
* Convert value to Rego syntax
*/
private convertValueToRego;
}
//# sourceMappingURL=PolicyEngine.d.ts.map