@syntropysoft/praetorian
Version:
Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.
126 lines (115 loc) • 3.32 kB
YAML
# Custom Rules Example
# This example demonstrates how to create and use custom validation rules
name: "Custom Rules Example"
version: "1.0.0"
description: "Example showing custom validation rules for specific business requirements"
# Files to validate
files:
- "config-dev.yaml"
- "config-prod.yaml"
- "config-staging.yaml"
# Custom rules configuration
strict: true
# Custom Rules
rules:
# Business Logic Rules
- id: "business-hours-validation"
name: "Business Hours Validation"
description: "Ensure business hours are configured correctly"
category: "custom"
severity: "warning"
enabled: true
config:
businessHours:
start: "09:00"
end: "17:00"
timezone: "UTC"
days: ["monday", "tuesday", "wednesday", "thursday", "friday"]
validation:
required: true
format: "HH:mm"
timezone: "required"
# Environment-Specific Rules
- id: "environment-specific"
name: "Environment Specific Validation"
description: "Validate environment-specific configurations"
category: "custom"
severity: "error"
enabled: true
config:
environments:
production:
requiredKeys: ["ssl", "monitoring", "backup"]
forbiddenKeys: ["debug", "test-data"]
minReplicas: 3
staging:
requiredKeys: ["ssl", "monitoring"]
allowedKeys: ["debug", "test-data"]
minReplicas: 1
development:
allowedKeys: ["debug", "test-data", "mock-services"]
optionalKeys: ["ssl", "monitoring"]
# API Versioning Rules
- id: "api-versioning"
name: "API Versioning Validation"
description: "Ensure API versioning is properly configured"
category: "custom"
severity: "warning"
enabled: true
config:
versioning:
required: true
format: "semver"
minVersion: "1.0.0"
deprecatedVersions: ["0.x"]
endpoints:
required: ["/health", "/metrics", "/version"]
deprecated: ["/legacy"]
# Feature Flag Rules
- id: "feature-flags"
name: "Feature Flag Validation"
description: "Validate feature flag configuration"
category: "custom"
severity: "info"
enabled: true
config:
featureFlags:
required: true
naming: "kebab-case"
environments:
production:
allowedFlags: ["gradual-rollout", "a-b-test"]
forbiddenFlags: ["experimental", "beta"]
staging:
allowedFlags: ["experimental", "beta", "gradual-rollout"]
development:
allowedFlags: ["experimental", "beta", "alpha"]
# Cost Optimization Rules
- id: "cost-optimization"
name: "Cost Optimization"
description: "Ensure cost-effective resource allocation"
category: "custom"
severity: "warning"
enabled: true
config:
resources:
maxCpu: "8"
maxMemory: "16Gi"
maxStorage: "100Gi"
autoScaling: true
monitoring:
costAlerts: true
usageTracking: true
optimization: true
# Custom required keys
required_keys:
- "business"
- "features"
- "environment"
- "versioning"
# Custom forbidden keys
forbidden_keys:
- "hardcoded-values"
- "production-secrets"
- "debug-data"
- "test-credentials"