OPNSense/core 49b54efsrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules [new]: Fix automatically generated rules category not being displayed anymore (#10310)
DeltaFile
+3-2src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-21 files

OPNSense/core 21fd3f4src/opnsense/www/js opnsense_bootgrid.js

bootgrid: remove unused getTotalRowCount method
DeltaFile
+0-4src/opnsense/www/js/opnsense_bootgrid.js
+0-41 files

OPNSense/core 5bf5e59src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml, src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Attach a grid formatter to option_data_autocollect to show if options are dynamic
DeltaFile
+7-2src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+2-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+9-32 files

OPNSense/core 00d6014src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Validate that domain_search and dns_servers is empty when option_data_autocollect is used.
DeltaFile
+10-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+10-01 files

OPNSense/core 17216fbsrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php KeaDhcpv6.xml

Retrofit an option_data_autocollect in here, but only write parameters into the generated config, not into the persisted configuration. Via this, the DNS server can be automatically pointed to a primary IP address and change at the same time as a dynamic prefix when the hook script is executed.
DeltaFile
+27-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+16-5src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+4-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+47-94 files

OPNSense/core 195667fsrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: safeguard replace function
DeltaFile
+4-0src/opnsense/www/js/opnsense_bootgrid.js
+4-01 files

OPNSense/core 7b3d1b7src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Mark missing option_data_autocollect feature
DeltaFile
+1-3src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+1-31 files

OPNSense/core f5dbc42src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml

Move subnet to logically group dynamic prefix and interface
DeltaFile
+10-10src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+10-101 files

OPNSense/core 412f296src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml, src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Since one interface can have multiple subnets in IPv6 its better to group them via interface. It also helps with dynamic pools since in the same interface you could have a static ULA pool as well.
DeltaFile
+9-4src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+6-6src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+15-102 files

OPNSense/core f1e2a3csrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: these are state variables, not options
DeltaFile
+6-6src/opnsense/www/js/opnsense_bootgrid.js
+6-61 files

OPNSense/core e0a560asrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Fix dynamic pd pool validation, emit calculated prefix lengths to help user
DeltaFile
+21-7src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+21-71 files

OPNSense/core 4a67e91src/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt, src/opnsense/mvc/app/views/OPNsense/IPsec sessions.volt tunnels.volt

ui: clean up useRequestHandlerOnGet usage

This has no use anymore with the current bootgrid code. If a
handler should be overridden, simply defining the function is enough
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/IPsec/sessions.volt
+0-1src/opnsense/mvc/app/views/OPNsense/IPsec/tunnels.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+0-1src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+0-62 files not shown
+0-88 files

OPNSense/core d8b07ebsrc/opnsense/mvc/app/views/OPNsense/CaptivePortal vouchers.volt, src/opnsense/mvc/app/views/OPNsense/Diagnostics routes.volt systemactivity.volt

bootgrid: replace 'append' with 'replace' for ajax: false grids

Noticed while documenting.

replaceData() is a lot more performant through Tabulator, and since
there are only 3 callers and all of them expect a clear before
updating any data, use a replace instead.

In time these pages should use the default search endpoint anyway,
but this requires an API change.

make sure to keep the append() function for compatibility
DeltaFile
+1-4src/opnsense/mvc/app/views/OPNsense/Diagnostics/routes.volt
+1-3src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+1-3src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+4-0src/opnsense/www/js/opnsense_bootgrid.js
+7-104 files

OPNSense/core d77b486src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Only emit NO_LEASES_PLEASE client class conditionally if a non valid prefix exists
DeltaFile
+10-6src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+10-61 files

OPNSense/core 41f5cfcsrc/etc/inc interfaces.inc, src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Merge remote-tracking branch 'origin/master' into kea-dynamic-poc
DeltaFile
+10-22src/opnsense/www/js/opnsense_bootgrid.js
+3-13src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+12-4src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+6-2src/opnsense/scripts/health/fetchData.py
+4-3src/etc/inc/interfaces.inc
+2-2src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+37-466 files not shown
+43-5212 files

OPNSense/core 26491a9src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Newline
DeltaFile
+1-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+1-01 files

OPNSense/core 78ebedasrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules [new]: Fix automatically generated rules metadata being accidentally overwritten later
DeltaFile
+3-3src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-31 files

OPNSense/core 9b8ee2asrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules [new] - fix unintended change in filtering logic caused by https://github.com/opnsense/core/commit/c4aefc08f41167b921595cd3f606aadc72b46730

When inspect mode is not selected, only full matches are expected when filtering specific interfaces.
This also means when selecting the inverse of an interface, it automatically belongs to the "floating" group for not being a direct match.

To explain the options a bit better, comments are inserted in the filtereing block.
DeltaFile
+12-6src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+12-61 files

OPNSense/core ac54d3dsrc/opnsense/scripts/health fetchData.py

Reporting: Health - render NaN as empty values [null] and omit leading empty records from set, closes https://github.com/opnsense/core/issues/10307
DeltaFile
+6-2src/opnsense/scripts/health/fetchData.py
+6-21 files

OPNSense/core 6edbd4bsrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php, src/opnsense/mvc/app/models/OPNsense/Firewall Filter.xml

Ensure inet46 always shows as Any or *
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+3-33 files

OPNSense/core a7ec185src/opnsense/mvc/app/views/OPNsense/CaptivePortal vouchers.volt, src/opnsense/mvc/app/views/OPNsense/Diagnostics systemactivity.volt routes.volt

bootgrid: clean up converter compatibility code

Only other consumer is Nginx in plugins, but worst case scenario
these timestamps will render as... timestamps, which in that form
are sortable anyway. It's likely this was throwing an error anyway

The "sorters" weren't actually accounted for in the compat
translation, so this wasn't overridable. Fix this here.
DeltaFile
+5-18src/opnsense/www/js/opnsense_bootgrid.js
+3-13src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+2-2src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Diagnostics/routes.volt
+11-344 files

OPNSense/core d4c4861src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Ensure translations are passed through all the way to icon formatter in view
DeltaFile
+12-12src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+11-6src/opnsense/scripts/filter/list_non_mvc_rules.php
+6-3src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+29-213 files

OPNSense/core a75bb18src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php, src/opnsense/scripts/filter list_non_mvc_rules.php

Firewall: Rules [new]: Fix action, ipprotocol and protocol translations. Fix Automatically generated rules category.
DeltaFile
+7-5src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-0src/opnsense/scripts/filter/list_non_mvc_rules.php
+10-52 files

OPNSense/core d67741dsrc/etc/inc console.inc

shell: fix typo in port assignment

PR: https://forum.opnsense.org/index.php?topic=51867.0
(cherry picked from commit 1aa4254289cdf018a09e59c3c89798e9435dc459)
DeltaFile
+1-1src/etc/inc/console.inc
+1-11 files

OPNSense/core 1aa4254src/etc/inc console.inc

shell: fix typo in port assignment

PR: https://forum.opnsense.org/index.php?topic=51867.0
DeltaFile
+1-1src/etc/inc/console.inc
+1-11 files

OPNSense/core 1fe9b82src/opnsense/www/js opnsense_bootgrid.js

bootgrid: align datakey with the rest of the options, but allow top-level placement
DeltaFile
+4-3src/opnsense/www/js/opnsense_bootgrid.js
+4-31 files

OPNSense/core 6dcd9b8src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules [new] - rules with multiple interfaces selected are considered floating and seem to be omitted from the list since https://github.com/opnsense/core/commit/dad956e3143e7aa26f6be140e4c0ff48d1758e22

(cherry picked from commit 3f7958486169661dab552179b34f51b334c5e3ca)
(cherry picked from commit b8ba9f0ca7509c0076c58b0131e779d4ffdc0438)
DeltaFile
+2-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+2-01 files

OPNSense/core 5bb2e48src/opnsense/mvc/app/models/OPNsense/Kea KeaCtrlAgent.php KeaDdns.php

Services: Kea DHCPv4/6: When serializing the config to json, use JSON_UNESCAPED_UNICODE. (#10297)

KEA uses an input validation that checks the configuration for escaped unicode characters starting with 00, these are considered valid.
Any other escaped unicode character will refuse the whole config to be loaded.

Ref: https://github.com/isc-projects/kea/blob/476ff110e90b3412fcd1d089b276e86709df5c7f/src/lib/cc/data.cc#L471-L484
(cherry picked from commit bc267021002e66e28efaf3860818d91c14af9707)
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaCtrlAgent.php
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+4-44 files

OPNSense/core 5dd595fsrc/etc/inc interfaces.inc

interfaces: follow up on DHCP option sanitization

@sopex noted a) that two semicolons were missing which were likely
lost to a refactoring step and b) allowing "medi;a" to avoid the
sanity scan for option modifiers.  To fix that second part we use
the normalization of interfaces_dhcp_safe() directly before returning
the parsed arguments to the caller.  That way the result is clear
and easy to check.

PR: GHSA-5rx3-w735-74wm
(cherry picked from commit 9e7fad6c3188e148f5066e948cebba19f8682765)
DeltaFile
+4-3src/etc/inc/interfaces.inc
+4-31 files

OPNSense/core d08801asrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: onRendered executed in wrong spot, pass function instead of calling it

(cherry picked from commit adb54850a12dddd03dab0c41d9094bcd5f026ddb)
DeltaFile
+1-1src/opnsense/www/js/opnsense_bootgrid.js
+1-11 files