self_defense
Immutable control-plane protection for config and hook artifacts.
What it mitigates
- Persistence attempts that rewrite
radius.yamlor hook wiring - Silent policy drift between requests
- In-session tampering meant to survive restarts
Recommended defaults
| Profile | enabled | onWriteAttempt | onHashMismatch |
|---|---|---|---|
local | true | deny | kill_switch |
standard | true in production-like runs | deny | kill_switch |
unbounded | false | — | — |
Minimal config
moduleConfig:
self_defense:
enabled: true
immutablePaths:
- "./radius.yaml"
- "./.radius/**"
onWriteAttempt: deny
onHashMismatch: kill_switch
Operational notes
- Keep
includeDiscoveredConfigandincludeHookArtifactsenabled unless you have a custom control-plane layout. - Use
unlock.mode: token_fileonly for controlled maintenance windows. - If
onHashMismatch: kill_switch, configurekillSwitchFilePathon durable storage.