| .. | ||
| service | ||
| auto_ssh.nix | ||
| endpoints.nix | ||
| network_devices.nix | ||
| README.md | ||
| secrets.nix | ||
| storage.nix | ||
| web.nix | ||
Validation Layer
This folder contains shape/type validation only.
Rule of Responsibility
validation/*: syntax checks, required fields, allowed keys, and value types.intermediate/*and service modules: semantic checks (contradictions/conflicts/business rules).
Examples:
- Shape/type (validation): endpoint has
contentattrset,portis int, unknown keys are rejected. - Semantic (kept outside):
force_ssl = truewithport = 80, duplicate routes on same host key, incompatible TLS groupings.
Files
validation/endpoints.nix: Validates endpoint schema and content schema forproxyandweb.validation/auto_ssh.nix: Validatesdevices/auto_sshshapes and remote port map structure.validation/network_devices.nix: Validates local device shapes and DHCP reservation field shapes used by intermediate DHCP/DNS models.validation/storage.nix: Validates storage config entry shapes consumed by intermediate storage derivation.validation/secrets.nix: Validates keystore entry/reference shapes consumed by config modules before service migration.validation/service/*: Validates service-backed config shapes consumed by service modules, such askiwix,qbittorrent, andcontinuwuity.
Usage Pattern
Import validators and run them first, then apply semantic checks locally.