UNPKG

@syntropysoft/praetorian

Version:

Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.

141 lines 3.56 kB
/** * Core types for SyntropySoft Praetorian */ export type ValidationSeverity = 'error' | 'warning' | 'info'; export interface ValidationResult { success: boolean; errors: ValidationError[]; warnings: ValidationWarning[]; info?: ValidationInfo[]; results?: any[]; metadata?: { duration?: number; rulesChecked?: number; rulesPassed?: number; rulesFailed?: number; filesCompared?: number; [key: string]: any; }; } export interface ValidationError { code: string; message: string; severity: 'error' | 'warning' | 'info'; path?: string; context?: any; } export interface ValidationWarning { code: string; message: string; severity: 'warning'; path?: string; context?: any; } export interface ValidationInfo { code: string; message: string; severity: 'info'; path?: string; context?: any; } export interface ValidationRule { id: string; name: string; description: string; category: 'security' | 'compliance' | 'performance' | 'best-practice'; severity: 'error' | 'warning' | 'info'; enabled: boolean; config?: Record<string, any>; execute(files: ConfigFile[]): Promise<ValidationResult>; } export interface ConfigFile { path: string; content: Record<string, any>; format: string; environment?: string; metadata?: { size?: number; lastModified?: Date; encoding?: string; }; } export interface PraetorianConfig { files?: string[]; ignore_keys?: string[]; required_keys?: string[]; schema?: Record<string, string>; patterns?: Record<string, string>; forbidden_keys?: string[]; environments?: Record<string, string>; } export interface PluginConfig { name: string; enabled: boolean; config?: Record<string, any>; } export interface AuditResult { success: boolean; score: number; grade: string; timestamp: Date; duration: number; totalChecks: number; passedChecks: number; failedChecks: number; warnings: number; results: ValidationResult[]; summary: AuditSummary; issues?: AuditIssue[]; vulnerabilities?: ValidationError[]; complianceIssues?: ValidationError[]; performanceIssues?: ValidationError[]; metadata?: { duration?: number; pluginsChecked?: number; [key: string]: any; }; } export interface AuditIssue { code: string; message: string; severity: 'low' | 'medium' | 'high' | 'critical'; category: 'security' | 'compliance' | 'performance'; path?: string; context?: any; } export interface ValidationContext { config?: Record<string, any>; environment?: string; project?: string; timestamp?: Date; metadata?: Record<string, any>; files?: Record<string, any>; ignoreKeys?: string[]; requiredKeys?: string[]; strict?: boolean; } export interface AuditSummary { score: number; grade: 'A' | 'B' | 'C' | 'D' | 'F'; criticalIssues: number; securityIssues: number; complianceIssues: number; recommendations: string[]; totalChecks: number; passedChecks: number; failedChecks: number; warnings: number; } export interface PluginMetadata { name: string; version: string; description: string; author: string; homepage?: string; enabled?: boolean; rules: ValidationRule[]; } export * from './schema'; export * from './pattern'; export * from './security'; //# sourceMappingURL=index.d.ts.map