Revision history for WebService-OPNsense 0.003 2026-07-01 - Fix API path mismatches (singular -> plural search endpoints across 5 service modules, 8 files total). - Fix Diagnostics dns_lookup (remove spurious query => wrapper). - Fix TrafficShaper Service flushReload -> flushreload (case mismatch). - Fix CaptivePortal Service template CRUD paths. - Reorder methods alphabetically in 8 lib/ files. - Add reverse_dns and service_info example scripts. - Use RFC 5737 documentation IP ranges in all POD examples. 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. 0.001 2026-06-21 - Initial release (alpha).