OPNSense/core 3ffdf5csrc/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml, src/opnsense/mvc/app/models/OPNsense/Interfaces NetworkInterface.php NetworkInterface.xml

Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568

Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.

Skip wireless and other advanced settings for now, only implement a minimal set of validations.
DeltaFile
+418-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+176-1src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.xml
+146-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/NetworkInterfaceField.php
+104-10src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.php
+58-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/GatewayField.php
+23-1src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+925-123 files not shown
+963-159 files

OPNSense/core 8966c55src/opnsense/mvc/app/controllers/OPNsense/Auth UserController.php, src/opnsense/mvc/app/controllers/OPNsense/Wireguard GeneralController.php

Clean QR codes (#10737)

- Update Kazuhiko Arase's QR Code generation library
- Use built-in image generation for accurate renders
- Simpler jQuery plugin
DeltaFile
+2,023-963src/opnsense/www/js/qrcode.js
+16-101src/opnsense/www/js/jquery.qrcode.js
+26-0src/opnsense/www/js/qrcode_UTF8.js
+0-20src/opnsense/www/js/jquery.qrcode.js.LICENSE
+2-1src/opnsense/mvc/app/controllers/OPNsense/Wireguard/GeneralController.php
+2-1src/opnsense/mvc/app/controllers/OPNsense/Auth/UserController.php
+2,069-1,0862 files not shown
+2,072-1,0888 files

OPNSense/core ca2e9b9src/opnsense/www/js opnsense_theme.js

ui: sidebar fixes and rework

Fixes

* Upon loading, (window).height() and (window).width() are immediately checked – the same condition as in the resize handler (navHeight / 760px).
* If the viewport is too small → the sidebar is hidden, mouse events are disabled, and the toggle button is hidden.
* If the viewport is large enough → normal behavior as usual (including the localStorage preset).
* Viewport on Safari/iPad (correctly considers tab and address bars)
* iOS window.innerHeight instead of $(window).height()
* Add selectable horizontal dropdown menu themes >> #9891

Readability & Structure

* var consistently replaced with const/let
* Helpful functions like isSidebarLeft() and isSidebarHidden() extracted to avoid duplicate hasClass calls transition_duration → setTransitionDuration, mouse_events_off → offMouseEvents (clearer names)

Performance

* jQuery selectors are cached only once (e.g., toggle_btn, allLayers, aLayers, divLayers)

    [8 lines not shown]
DeltaFile
+147-152src/opnsense/www/js/opnsense_theme.js
+147-1521 files

OPNSense/core 8916ec9src/etc/inc/plugins.inc.d captiveportal.inc

captive portal: annotate this use
DeltaFile
+2-0src/etc/inc/plugins.inc.d/captiveportal.inc
+2-01 files

OPNSense/core 12d7bf1src/etc/inc/plugins.inc.d captiveportal.inc

captive portal: merge cleanups
DeltaFile
+4-6src/etc/inc/plugins.inc.d/captiveportal.inc
+4-61 files

OPNSense/core 6dfa4a9src/etc/inc/plugins.inc.d captiveportal.inc

captive portal: merge cleanups
DeltaFile
+3-6src/etc/inc/plugins.inc.d/captiveportal.inc
+3-61 files

OPNSense/core 5c128a8src/etc/inc/plugins.inc.d captiveportal.inc

captiveportal: restructure the rules generation
DeltaFile
+126-138src/etc/inc/plugins.inc.d/captiveportal.inc
+126-1381 files

OPNSense/core 376a8d7src/etc/inc/plugins.inc.d pf.inc, src/opnsense/service/conf/actions.d actions_filter.conf

firewall: adjust name for destination nat rules too
DeltaFile
+1-1src/opnsense/service/conf/actions.d/actions_filter.conf
+1-1src/etc/inc/plugins.inc.d/pf.inc
+2-22 files

OPNSense/core 5b9dff6src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms dialogSNatRule.xml dialogOneToOneRule.xml, src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes JsonAuditField.php

Add userdata container and note inside the JsonAuditField, so users can keep a small changelog if they want
DeltaFile
+24-2src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/JsonAuditField.php
+13-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogSNatRule.xml
+13-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogOneToOneRule.xml
+13-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogNptRule.xml
+13-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
+13-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogDNatRule.xml
+89-21 files not shown
+100-37 files

OPNSense/core 6a4b8c9src/etc/inc filter.lib.inc, src/etc/inc/plugins.inc.d pf.inc openvpn.inc

firewall: also change outbound_net now that it is becoming a permanent thing
DeltaFile
+1-1src/etc/inc/plugins.inc.d/pf.inc
+1-1src/etc/inc/plugins.inc.d/openvpn.inc
+1-1src/etc/inc/plugins.inc.d/ipsec.inc
+1-1src/etc/inc/filter.lib.inc
+4-44 files

OPNSense/core ed7a00dsrc/etc/inc/plugins.inc.d pf.inc, src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api SourceNatController.php

firewall: change 'outbound_nat' to 'source_nat' for consistency
DeltaFile
+2-2src/opnsense/service/conf/actions.d/actions_filter.conf
+1-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php
+1-1src/etc/inc/plugins.inc.d/pf.inc
+4-43 files

OPNSense/core d3e6232src/etc/inc filter.inc, src/etc/inc/plugins.inc.d captiveportal.inc pf.inc

firewall: use the new register functions Destination/Static/Source
DeltaFile
+4-4src/etc/inc/filter.inc
+2-2src/etc/inc/plugins.inc.d/pf.inc
+1-1src/etc/inc/plugins.inc.d/captiveportal.inc
+7-73 files

OPNSense/core dce5976src/etc/inc/plugins.inc.d captiveportal.inc

captiveportal.inc rename rdr_port to localport since thats better here
DeltaFile
+3-3src/etc/inc/plugins.inc.d/captiveportal.inc
+3-31 files

OPNSense/core af44d9csrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api DNatController.php

Firewall: NAT: Destination NAT: include automatic rules in recordset pipeline
DeltaFile
+49-23src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/DNatController.php
+49-231 files

OPNSense/core 267eb8dsrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api DNatController.php

Ensure getDescription() is called for fields
DeltaFile
+9-3src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/DNatController.php
+9-31 files

OPNSense/core 686f1e3src/etc/inc filter.inc, src/etc/inc/plugins.inc.d pf.inc captiveportal.inc

Firewall: NAT: Destination NAT: expose automatic rules similar to Source NAT
DeltaFile
+79-45src/etc/inc/plugins.inc.d/captiveportal.inc
+48-24src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/DNatController.php
+20-0src/etc/inc/plugins.inc.d/pf.inc
+2-10src/etc/inc/filter.inc
+7-0src/opnsense/service/conf/actions.d/actions_filter.conf
+156-795 files

OPNSense/core bc7dad0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml, src/opnsense/mvc/app/models/OPNsense/Interfaces NetworkInterface.php NetworkInterface.xml

Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568

Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.
DeltaFile
+404-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+167-1src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.xml
+146-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/NetworkInterfaceField.php
+88-10src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.php
+23-1src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+20-1src/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt
+848-132 files not shown
+865-158 files

OPNSense/core e5f0151src/www fbegin.inc

menu: make legacy pages consistent for Favorites on touch devices
DeltaFile
+1-1src/www/fbegin.inc
+1-11 files

OPNSense/core dd050b6src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml, src/opnsense/mvc/app/models/OPNsense/Interfaces NetworkInterface.php NetworkInterface.xml

Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568

Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.
DeltaFile
+367-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+151-1src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.xml
+148-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/NetworkInterfaceField.php
+88-10src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.php
+23-1src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+20-1src/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt
+797-132 files not shown
+814-158 files

OPNSense/core 24b997esrc/opnsense/mvc/app/views/layout_partials base_form.volt

mvc: fix typo in base_form.volt advanced/help toggle ids (#10734)
DeltaFile
+2-2src/opnsense/mvc/app/views/layout_partials/base_form.volt
+2-21 files

OPNSense/core 8430c7asrc/opnsense/mvc/app/views/layout_partials base_form.volt

mvc: fix typo in advanced/help toggle ids
DeltaFile
+2-2src/opnsense/mvc/app/views/layout_partials/base_form.volt
+2-21 files

OPNSense/core 7cf8d56src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml, src/opnsense/mvc/app/models/OPNsense/Interfaces NetworkInterface.php NetworkInterface.xml

Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568

Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.
DeltaFile
+191-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+123-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/NetworkInterfaceField.php
+91-1src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.xml
+66-10src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.php
+18-1src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+16-1src/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt
+505-132 files not shown
+517-158 files

OPNSense/core 5c6f650src/opnsense/www/js opnsense_ui.js

ui: Add shortcut key f for ShowMaximized() modal
DeltaFile
+7-0src/opnsense/www/js/opnsense_ui.js
+7-01 files

OPNSense/core 0a13322src/opnsense/mvc/app/library/OPNsense/Firewall Plugin.php

firewall: deprecate old register function names due to overlaps
DeltaFile
+25-7src/opnsense/mvc/app/library/OPNsense/Firewall/Plugin.php
+25-71 files

OPNSense/core 61b93e7src/opnsense/mvc/app/library/OPNsense/Firewall Plugin.php

firewall: deprecate old register function names due to overlaps
DeltaFile
+24-6src/opnsense/mvc/app/library/OPNsense/Firewall/Plugin.php
+24-61 files

OPNSense/core 2648cccsrc/opnsense/mvc/app/library/OPNsense/Firewall Plugin.php

firewall: use outbound definition here too
DeltaFile
+1-1src/opnsense/mvc/app/library/OPNsense/Firewall/Plugin.php
+1-11 files

OPNSense/core 625eb73src/opnsense/mvc/app/library/OPNsense/Firewall Plugin.php

firewall: fix/align comments

See seem to have some overlap in our terminology.  No need to fix
this now but at least make the comments match the GUI.
DeltaFile
+5-5src/opnsense/mvc/app/library/OPNsense/Firewall/Plugin.php
+5-51 files

OPNSense/core d3ec7b5src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms general.xml, src/opnsense/mvc/app/models/OPNsense/Dnsmasq Dnsmasq.xml

Services: Dnsmasq DNS & DHCP: add expand-hosts (#10731)
DeltaFile
+6-0src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/general.xml
+4-0src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf
+1-0src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml
+11-03 files

OPNSense/core 9a85430src/etc/inc/plugins.inc.d openssh.inc

system: add mldsa44-ed25519 to OpenSSH host keys

We need to add it to the default PubkeyAcceptedAlgorithms so that
it works out of the box.  The GUI specified value can select it
but overwrites any default changes we've done so it's safe to use.
DeltaFile
+4-2src/etc/inc/plugins.inc.d/openssh.inc
+4-21 files

OPNSense/core 88dc402src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes OptionField.php

mvc: OptionField: fix simplified opt group definition

Spotted by: @Monviech
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php
+1-11 files