OPNSense/core 45b90a2src/opnsense/mvc/app/controllers/OPNsense/Auth/Api GroupController.php

System: Access: Groups - fix regression in selective delete introduced in https://github.com/opnsense/core/pull/9779
DeltaFile
+13-11src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/GroupController.php
+13-111 files

OPNSense/core aac399esrc/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api VlanSettingsController.php

Interfaces: Devices: VLAN - fix regression in selective delete introduced in https://github.com/opnsense/core/pull/9779
DeltaFile
+21-16src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/VlanSettingsController.php
+21-161 files

OPNSense/core 2a690f1src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api LaggSettingsController.php

Interfaces: Devices: LAGG - fix regression in selective delete introduced in https://github.com/opnsense/core/pull/9779
DeltaFile
+30-24src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/LaggSettingsController.php
+30-241 files

OPNSense/core 1bce09csrc/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api GreSettingsController.php

Interfaces: Devices: GRE - fix regression in selective delete introduced in https://github.com/opnsense/core/pull/9779
DeltaFile
+20-14src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/GreSettingsController.php
+20-141 files

OPNSense/core f470675src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api GifSettingsController.php

Interfaces: Devices: GIF - fix regression in selective delete introduced in https://github.com/opnsense/core/pull/9779
DeltaFile
+20-14src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/GifSettingsController.php
+20-141 files

OPNSense/core 0b128cdsrc/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api SystemhealthController.php, src/opnsense/mvc/app/models/OPNsense/Diagnostics SystemHealth.php

Reporting: Settings: convert to MVC (#10337)

Move all relevant toggles and actions to their respective pages with associated forms and endpoints.

Removes the Netflow Repair button as well.
DeltaFile
+0-311src/www/reporting_settings.php
+192-68src/opnsense/mvc/app/views/OPNsense/Diagnostics/health.volt
+60-11src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+53-3src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/SystemhealthController.php
+35-0src/opnsense/mvc/app/models/OPNsense/Diagnostics/SystemHealth.php
+18-9src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt
+358-40217 files not shown
+455-41223 files

OPNSense/core f566dbasrc/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api NetflowController.php

remove repair action as well
DeltaFile
+0-14src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/NetflowController.php
+0-141 files

OPNSense/core 73257a0src/opnsense/mvc/app/views/OPNsense/Diagnostics netflow.volt, src/opnsense/scripts/netflow flowd_aggregate.py

netflow: remove repair button
DeltaFile
+0-8src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt
+2-1src/opnsense/scripts/netflow/flowd_aggregate.py
+2-92 files

OPNSense/core ffcd43bsrc/opnsense/mvc/app/views/OPNsense/Diagnostics netflow.volt

trim this as well
DeltaFile
+1-1src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt
+1-11 files

OPNSense/core a245839src/opnsense/mvc/app/views/OPNsense/Unbound overview.volt

leftover here
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+0-11 files

OPNSense/core d9e578bsrc/opnsense/mvc/app/views/OPNsense/Unbound overview.volt

unbound: overview: reset page on data reset
DeltaFile
+3-1src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+3-11 files

OPNSense/core 0ce0b97. plist

update plist
DeltaFile
+1-2plist
+1-21 files

OPNSense/core c759b4fsrc/opnsense/mvc/app/controllers/OPNsense/Unbound/forms dnsreporting.xml

trim this
DeltaFile
+1-3src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dnsreporting.xml
+1-31 files

OPNSense/core c69ab0bsrc/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api SystemhealthController.php, src/opnsense/mvc/app/models/OPNsense/Diagnostics SystemHealth.php

Reporting: Settings: convert to MVC
DeltaFile
+0-311src/www/reporting_settings.php
+192-68src/opnsense/mvc/app/views/OPNsense/Diagnostics/health.volt
+59-11src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+53-3src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/SystemhealthController.php
+27-10src/opnsense/mvc/app/views/OPNsense/Diagnostics/netflow.volt
+35-0src/opnsense/mvc/app/models/OPNsense/Diagnostics/SystemHealth.php
+366-40314 files not shown
+473-40920 files

OPNSense/core 3ce5b08src/opnsense/mvc/app/models/OPNsense/Diagnostics/Migrations M1_0_0.php

safeguard post as well
DeltaFile
+4-0src/opnsense/mvc/app/models/OPNsense/Diagnostics/Migrations/M1_0_0.php
+4-01 files

OPNSense/core 438dcd9src/opnsense/mvc/app/models/OPNsense/Core/Menu Menu.xml, src/opnsense/mvc/app/models/OPNsense/Diagnostics/ACL ACL.xml

fix ACL and menu
DeltaFile
+0-1src/opnsense/mvc/app/models/OPNsense/Diagnostics/ACL/ACL.xml
+0-1src/opnsense/mvc/app/models/OPNsense/Core/Menu/Menu.xml
+0-22 files

OPNSense/core 3986018src/opnsense/www/js opnsense_ui.js

ui: SimpleActionButton exclude scope should apply to first active tab as well
DeltaFile
+13-2src/opnsense/www/js/opnsense_ui.js
+13-21 files

OPNSense/core 1c643dasrc/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Newline sneaked in
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+0-11 files

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

Firewall: Rules [new]: Always show automatic and legacy rules, even without Inspect enabled.
DeltaFile
+54-35src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+5-7src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+59-422 files

OPNSense/core 09654casrc/opnsense/mvc/app/controllers/OPNsense/Diagnostics InterfaceController.php, src/opnsense/mvc/app/models/OPNsense/Diagnostics/ACL ACL.xml

ACL: some missing references and using camelcase pointers instead of snakecase [ref: https://github.com/opnsense/core/issues/10351]
DeltaFile
+6-6src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/InterfaceController.php
+3-0src/opnsense/mvc/app/models/OPNsense/Diagnostics/ACL/ACL.xml
+9-62 files

OPNSense/core dcb0179src/www firewall_scrub.php

Firewall: Settings: Normalization - add missing exclamation mark for "not" rules, closes https://github.com/opnsense/core/issues/10349
DeltaFile
+2-0src/www/firewall_scrub.php
+2-01 files

OPNSense/core 6ffad1bsrc/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api InterfaceController.php, src/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes InterfaceField.php

Firewall - fix interface sortng by value for live-log and groups, closes https://github.com/opnsense/core/issues/10348

We might consider moving the sorting logic to BaseListField at some point as most cases expect sort by value anyway and we only have a couple of exceptions to that logic.
DeltaFile
+2-1src/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/InterfaceField.php
+2-1src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/InterfaceController.php
+4-22 files

OPNSense/core e209de9src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv4.php

Kea: Hook up reservation.next_server (#10344)

This field was added to the Kea dialogReservation4.xml form in
https://github.com/opnsense/core/pull/8890, however this specific option
was not properly hooked up and did not generate the expected config,
preventing netboot scenarios that rely on next-server from being set on
a per-reservation basis (the per-subnet variant of this option does work
fine).

This commit hooks it up to generate the expected "next-server" Kea
config entry on a per-reservation basis.
DeltaFile
+5-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+4-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+9-12 files

OPNSense/core 5348cb1src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Make banner even more obvious
DeltaFile
+1-2src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-21 files

OPNSense/core 2f82935src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Firewall: Rules [new]: Add hint banner about Inspect button to explain it also unhides automatic rules
DeltaFile
+8-0src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+8-01 files

OPNSense/core 720c791src/opnsense/mvc/app/controllers/OPNsense/Kea/forms ddnsSettings.xml, src/opnsense/mvc/app/views/OPNsense/Kea ddns.volt dhcpv4.volt

Services: Kea DHCPv4/6: Fix missing visual cues for manual mode in DDNS and DHCPv4/6 (#10340)
DeltaFile
+18-0src/opnsense/mvc/app/views/OPNsense/Kea/ddns.volt
+8-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/ddnsSettings.xml
+1-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+28-24 files

OPNSense/core e38a698src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes ModelRelationField.php

mvc: remove grouped ModelRelationField option handling (#10339)

The group option collapsed multiple related model rows into a single
display entry while still storing the UUID of one concrete source row.
This makes the selected relation dependent on iteration order and is not
a stable representation of the grouped object.

References:
https://github.com/opnsense/core/commit/fe571ac442efe76c3a1efd3e6f90b8ec4cb6e7bd

Frr was the only consumer (I could grep in core and plugins, don't know if external ones exist), I reworked how the relationship is displayed there to make it more obvious to the user how items relate to each other, and also prevent that the wrong items get deleted. Configs should be more coherent now.

It's also not perfect, but more "obvious" lets say.
It also helps with the addition of internalModelUseSafeDelete in FRR.

opnsense/plugins at 0798cde
opnsense/plugins at d3c3e79
opnsense/plugins at cb9a5d6
DeltaFile
+0-8src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php
+0-81 files

OPNSense/core 3992d34src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes ModelRelationField.php

mvc: remove grouped ModelRelationField option handling

The group option collapsed multiple related model rows into a single
display entry while still storing the UUID of one concrete source row.
This makes the selected relation dependent on iteration order and is not
a stable representation of the grouped object.

References:
https://github.com/opnsense/core/commit/fe571ac442efe76c3a1efd3e6f90b8ec4cb6e7bd
DeltaFile
+0-8src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/ModelRelationField.php
+0-81 files

OPNSense/core a8cc73bsrc/etc/inc filter.lib.inc

firewall: use safe iteration over rules in filter_core_rules_user()

(cherry picked from commit 51361af843ecbdd98f161b108fe45251fe37b718)
DeltaFile
+25-28src/etc/inc/filter.lib.inc
+25-281 files

OPNSense/core e4b80cbsrc/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogSettings.xml, src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes DUIDField.php

interfaces: wrong DUID-UUID format for #10218

(cherry picked from commit 0513f26235900a6c8c4a818549dd7c2ec4e11139)
(cherry picked from commit 7c8a426bbef7122fbfb2c0c68d07956b80029392)
DeltaFile
+5-1src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/DUIDField.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogSettings.xml
+1-1src/opnsense/scripts/interfaces/gen_duid.php
+7-33 files