|
D-113 ADOPTED: option (a2) -- stay on OPNsense, move config to the REST API
Operator ruling 2026-07-13. Two constraints surfaced during the discussion narrowed the field decisively, and both are recorded so the reasoning is not re-run from the wrong premise: 1. GUI ACCESS IS A REQUIREMENT (operator). This eliminates VyOS and plain-Linux outright -- neither has a GUI -- and both had been the leading candidates until it was stated. 2. VyOS LTS binaries are subscription-gated (verified against vyos.net/get and the Software Access Subscription page). Free VyOS means the ROLLING release, a moving target that fights this repo's appendix-B version-pinning discipline. Real friction, independent of the GUI. Field reduced to OPNsense / pfSense CE / OpenWrt / IPFire. pfSense rejected (same GUI-owned XML lineage -- a migration that buys nothing). OpenWrt was the credible alternative: its UCI config is text-first BY DESIGN, structurally unlike OPNsense's GUI-owned config.xml. It loses on cost: a new image pipeline, a fresh bootstrap problem, and dnsmasq instead of Kea -- all to escape a problem that is fixable in place. The ruling rests on this: the bug class was never OPNsense. It was hand-authoring config.xml when OPNsense ships a documented REST API with mature Ansible collections that model exactly what we got wrong (dhcp_subnet, firewall rules, system settings as typed resources). NONE of DOCFIX-191/192/193 is expressible through the API -- you cannot forget to enable sshd in a format where sshd is a typed field with a default. (a2) keeps the GUI, keeps a working routing+DHCP edge, keeps the libvirt fixes, and removes the defect source. (a1) config.xml templating is now explicitly REJECTED: its cost compounds per feature and it depends on an undocumented self-heal of an internal format (the 667-element finding). Live-edge recon (read-only): lighttpd listening on 443/80, API answers 401 (alive), root has 0 API keys. Minting a key via the GUI is the bootstrap step -- hand-editing apikeys into config.xml would be the exact anti-pattern being retired. Revert: git revert this commit (docs only; nothing migrated, nothing built). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B6Fzre1CxCY8tzwFCudu57 |
|---|
|
|
| docs/design-decisions.md |
|---|
| docs/session-ledger.md |
|---|