devops_validate/rules/mod.rs
1//! Declarative rule engine for semantic validation.
2//!
3//! Defines best-practice warnings via simple condition expressions (equality
4//! checks, comparisons, null checks, `contains`) evaluated against YAML data.
5//!
6//! ## Rule format (YAML)
7//!
8//! ```yaml
9//! rules:
10//! - id: k8s/replicas-1
11//! condition: '$.spec.replicas == 1'
12//! severity: warning
13//! message: 'replicas=1 — consider >=2 for high availability'
14//! ```
15//!
16//! ## Example
17//!
18//! ```rust
19//! use devops_validate::rules::{load_builtin_rules, load_rules_for_type};
20//! use serde_json::json;
21//!
22//! let engine = load_builtin_rules();
23//! let data = json!({ "spec": { "replicas": 1 } });
24//! let diagnostics = engine.evaluate(&data);
25//! assert!(!diagnostics.is_empty());
26//! ```
27
28pub mod engine;
29pub mod loader;
30
31pub use engine::{Rule, RuleCondition, RuleEngine};
32pub use loader::{load_builtin_rules, load_rules_for_type};