Changes for version 0.002 - 2026-06-27
- Add missing dependencies (Exporter::Shiny, Test::LWP::UserAgent).
- Fix KeaItemCrud undef guard for unknown types.
- Fix Sessions/Sad/Spd SYNOPSIS wrong method names.
- Fix NAT.pm mutating operations using GET -> POST.
- Add input validation for NAT toggle_rule_log, Sessions/Sad/Spd _require_id.
- URL-encode Kea::Leases IPs, guard undef in OPNsense uri_escape.
- Fix Object.pm doc mismatch, CaptivePortal/Settings.pm typo.
- Fix pod-coverage: =head2 client in Ddns/CtrlAgent/IPsec::Settings.
- Document Exception.pm overload/extends.
- Convert hardcoded API paths to _path/_api_path where clean.
- Add set method to Role::Crud for IPsec/Pools/Vti/ManualSpd.
- Alphabetical order Firewall.pm attributes.
- Extract _do_* helpers in IPsec/Connections (24 methods -> one-liners).
- Extract _build_opn_object in OPNsense.pm (55 builders -> one-liners).
- Rename Role::Settings get -> get_settings.
- Add test coverage for Backup download/diff/revert, GET 500, optional_segment.
- Fix perlcriticrc dead ignore_modules, 000_basic.t indentation.
- Add SEE ALSO to 43 modules missing it.
Modules
Perl client library for the OPNsense REST API
Backup controller
Captive portal access controller
Captive portal service controller
Captive portal session controller
Captive portal settings controller
Captive portal voucher controller
Named constants for the OPNsense REST API -- safer and more maintainable than hardcoded strings
Cron service controller
Cron settings controller
Diagnostics API controller
Dnsmasq leases controller
Dnsmasq service controller
Dnsmasq settings controller
Structured exception class for OPNsense API errors
Firewall API controller
Firewall alias controller
Firewall category controller
Firewall port forward (DNAT) rule controller
Firewall filter rule controller
Firewall NPT (network prefix translation) rule controller
Firewall one-to-one NAT rule controller
Role for NAT controller shared rule methods
Firewall outbound (source) NAT rule controller
High availability sync controller
IDS service controller
IDS settings controller
IPsec connection, auth, and child SA controller
IPsec key pair controller
IPsec lease controller
IPsec manual SPD (Security Policy Database) controller
IPsec pool controller
IPsec pre-shared key controller
IPsec Security Association Database (SAD) controller
IPsec service controller
IPsec session controller
IPsec settings controller
IPsec Security Policy Database (SPD) controller
IPsec tunnel status controller
IPsec VTI (Virtual Tunnel Interface) controller
Interfaces API controller
Kea control agent controller
Kea DDNS controller
Kea DHCPv4 controller
Kea DHCPv6 controller
Kea leases controller
Kea service controller
Normalization and validation utilities
Base result-object class for OPNsense API responses
OpenVPN client overwrites controller
OpenVPN export controller
OpenVPN instances controller
OpenVPN service controller
Role providing _path helper for URI::Template URL construction
Role for plain-name CRUD methods
Role for item CRUD methods
Shared CRUD methods for Kea DHCP item types
Role for service control methods (status/start/stop/restart/reconfigure)
Role for settings get/set methods
Routes API controller
System API controller
Traffic shaper service controller
Traffic shaper settings controller
Unbound diagnostics controller
Unbound overview controller
Unbound service controller
Unbound settings controller