UNPKG

@syntropysoft/praetorian

Version:

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

118 lines • 5.18 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.runAudit = runAudit; const chalk_1 = __importDefault(require("chalk")); const AuditEngine_1 = require("../../application/services/AuditEngine"); async function runAudit(options = {}) { console.log(chalk_1.default.blue('\nšŸ” Running SyntropyLog Audit...\n')); try { // Determine audit types const auditTypes = []; if (options.security) auditTypes.push('security'); if (options.compliance) auditTypes.push('compliance'); if (options.performance) auditTypes.push('performance'); // If no specific type, run all if (auditTypes.length === 0) { auditTypes.push('security', 'compliance', 'performance'); } console.log(chalk_1.default.gray(`Audit types: ${auditTypes.join(', ')}`)); // Create audit engine const auditEngine = new AuditEngine_1.AuditEngine({ plugins: ['syntropylog'], types: auditTypes }); // Run audit const result = await auditEngine.audit({ config: {}, environment: 'development', project: 'syntropylog-project', timestamp: new Date(), metadata: {} }); // Display results displayAuditResults(result, options); } catch (error) { console.error(chalk_1.default.red('\nāŒ Audit failed:')); console.error(error instanceof Error ? error.message : error); process.exit(1); } } function displayAuditResults(result, options) { console.log(chalk_1.default.blue('šŸ“Š Audit Results:\n')); // Score and Grade const score = result.summary?.score || 0; const grade = result.summary?.grade || 'F'; console.log(chalk_1.default.blue('šŸ† Overall Score:')); console.log(` • Score: ${score}/100`); console.log(` • Grade: ${getGradeColor(grade)}${grade}${chalk_1.default.reset()}`); console.log(''); // Issues breakdown console.log(chalk_1.default.blue('šŸ“ˆ Issues Breakdown:')); console.log(` • Critical Issues: ${chalk_1.default.red(result.summary?.criticalIssues || 0)}`); console.log(` • Security Issues: ${chalk_1.default.yellow(result.summary?.securityIssues || 0)}`); console.log(` • Compliance Issues: ${chalk_1.default.blue(result.summary?.complianceIssues || 0)}`); console.log(''); // Detailed results if (result.results && result.results.length > 0) { console.log(chalk_1.default.blue('šŸ” Detailed Results:\n')); result.results.forEach((validationResult, index) => { const pluginName = validationResult.metadata?.plugin || `Check ${index + 1}`; if (validationResult.success) { console.log(chalk_1.default.green(`āœ… ${pluginName}`)); } else { console.log(chalk_1.default.red(`āŒ ${pluginName}`)); validationResult.errors.forEach((error) => { console.log(chalk_1.default.red(` • ${error.message}`)); if (error.path) { console.log(chalk_1.default.gray(` Path: ${error.path}`)); } }); } if (validationResult.warnings && validationResult.warnings.length > 0) { validationResult.warnings.forEach((warning) => { console.log(chalk_1.default.yellow(` āš ļø ${warning.message}`)); }); } console.log(''); }); } // Recommendations if (result.summary?.recommendations && result.summary.recommendations.length > 0) { console.log(chalk_1.default.blue('šŸ’” Recommendations:\n')); result.summary.recommendations.forEach((rec, index) => { console.log(chalk_1.default.cyan(` ${index + 1}. ${rec}`)); }); console.log(''); } // Summary console.log(chalk_1.default.blue('šŸ“Š Summary:')); console.log(` • Duration: ${result.duration || 0}ms`); console.log(` • Total Checks: ${result.totalChecks || 0}`); console.log(` • Passed: ${result.passedChecks || 0}`); console.log(` • Failed: ${result.failedChecks || 0}`); console.log(` • Warnings: ${result.warnings || 0}`); // Exit code based on results if (result.summary?.criticalIssues > 0 || result.summary?.securityIssues > 0) { console.log(chalk_1.default.red('\nāš ļø Critical or security issues found. Please review and fix.')); process.exit(1); } } function getGradeColor(grade) { switch (grade) { case 'A': return chalk_1.default.green(''); case 'B': return chalk_1.default.cyan(''); case 'C': return chalk_1.default.yellow(''); case 'D': return chalk_1.default.magenta(''); case 'F': return chalk_1.default.red(''); default: return chalk_1.default.white(''); } } //# sourceMappingURL=audit.js.map