@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
TypeScript
/**
* 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