OPNSense/core f3315d2src/etc/rc.loader.d 20-zfs

rc: use newer min_auto_ashift variable

WARNING: sysctl vfs.zfs.min_auto_ashift is deprecated. Use vfs.zfs.vdev.min_auto_ashift instead.
DeltaFile
+1-1src/etc/rc.loader.d/20-zfs
+1-11 files

OPNSense/core b0e8dfc. plist, src/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php

mvc: Fix idassoc.php converting already decimal stored prefix_id via hexdec(), add unit test for idassoc.php (#10389)


---------

Co-authored-by: Franco Fichtner <franco at opnsense.org>
DeltaFile
+154-0src/opnsense/mvc/tests/app/library/OPNsense/Interface/IdassocTest.php
+2-2src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+1-0plist
+157-23 files

OPNSense/core 0b5eb6c. plist

plist-fix
DeltaFile
+1-0plist
+1-01 files

OPNSense/core 9a702a6src/opnsense/mvc/app/views/OPNsense/Firewall nat_rule.volt

Firewall: NAT: Destination NAT: Display effective port when local-port is omitted (#10237)
DeltaFile
+5-3src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+5-31 files

OPNSense/core 2c01f54. plist

pkg: of course, of course
DeltaFile
+1-0plist
+1-01 files

OPNSense/core e0fb60csrc/etc/pkg/fingerprints/OPNsense/trusted pkg.opnsense.org.20260608

firmware: add 26.7 fingerprint
DeltaFile
+2-0src/etc/pkg/fingerprints/OPNsense/trusted/pkg.opnsense.org.20260608
+2-01 files

OPNSense/core b5c737b. .gitignore

git: less ignore for our pkg files

This has been a problem for a decade.  Time to make this easier.
DeltaFile
+6-0.gitignore
+6-01 files

OPNSense/core 6e57f19src/opnsense/mvc/app/models/OPNsense/Core Firmware.php, src/opnsense/mvc/app/models/OPNsense/Core/repositories opnsense.xml

firmware: allow "local" business mirror subscription

While here remove the allow_custom softcoding which was always
enabled anyday.
DeltaFile
+33-39src/opnsense/mvc/app/models/OPNsense/Core/Firmware.php
+13-16src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt
+5-3src/opnsense/scripts/firmware/repos/OPNsense.php
+2-2src/opnsense/mvc/app/models/OPNsense/Core/repositories/opnsense.xml
+53-604 files

OPNSense/core 80e0209src/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php

Update src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php

Co-authored-by: Franco Fichtner <franco at opnsense.org>
DeltaFile
+1-1src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+1-11 files

OPNSense/core 7b1001esrc/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php

Update src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php

Co-authored-by: Franco Fichtner <franco at opnsense.org>
DeltaFile
+1-2src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+1-21 files

OPNSense/core 7e1183dsrc/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php, src/opnsense/mvc/tests/app/library/OPNsense/Interface IdassocTest.php

mvc: Fix idassoc.php converting already decimal stored prefix_id via hexdec(), adjust unit test
DeltaFile
+16-13src/opnsense/mvc/tests/app/library/OPNsense/Interface/IdassocTest.php
+3-2src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+19-152 files

OPNSense/core 446ef1asrc/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

mvc: style sweep
DeltaFile
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-11 files

OPNSense/core 10b13adsrc/opnsense/mvc/tests/app/library/OPNsense/Interface IdassocTest.php

mvc: Add test for idassoc.php
DeltaFile
+151-0src/opnsense/mvc/tests/app/library/OPNsense/Interface/IdassocTest.php
+151-01 files

OPNSense/core 89896cdsrc/opnsense/mvc/app/models/OPNsense/Core Firmware.php, src/opnsense/mvc/app/models/OPNsense/Core/repositories opnsense.xml

firmware: allow local business mirror
DeltaFile
+24-28src/opnsense/mvc/app/models/OPNsense/Core/Firmware.php
+2-2src/opnsense/mvc/app/models/OPNsense/Core/repositories/opnsense.xml
+1-1src/opnsense/scripts/firmware/repos/OPNsense.php
+27-313 files

OPNSense/core fb51421src/www firewall_rules.php

Firewall: Add migration assistant banner to legacy rules page (#10388)
DeltaFile
+9-0src/www/firewall_rules.php
+9-01 files

OPNSense/core 6402be8src/etc/inc filter.lib.inc, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Firewall: Rules: group rules by default and fix "select all" logic (#10372)

This commit adds top-level groups that are always shown and visible, such as automatically generated, floating, group & interface rules. This first-level tree is not subject to local storage persistence, but state is kept to make sure these trees don't collapse if there are data changes in the grid to improve overall UX. The "category view" (previously "Tree view") is moved to a tree nested under the top-level groups. This tree is subject to local storage persistence.

Whether a top-level tree expands by default is determined by the interface type selection. If a user selects "floating rules", the floating rules section will expand, if instead a user selects an interface, the interface rules section will expand, while all other groups are collapsed.

This commit also fixes the case of the "select all" header checkbox, which was removed in the initial implementation as it wasn't functional. If a user now presses it, all selectable rules are selected, but only if they are visible under an expanded tree.
DeltaFile
+183-103src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+6-3src/opnsense/www/js/opnsense_bootgrid.js
+1-1src/etc/inc/filter.lib.inc
+190-1073 files

OPNSense/core c7131a1src/www firewall_rules.php

Firewall: Add migration assistant banner to legacy rules page
DeltaFile
+9-0src/www/firewall_rules.php
+9-01 files

OPNSense/core b750397. plist, src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api AssignmentController.php

Interfaces: Assignments - change model name for clarity
DeltaFile
+0-171src/opnsense/mvc/app/models/OPNsense/Interfaces/NetInterface.php
+171-0src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.php
+0-23src/opnsense/mvc/app/models/OPNsense/Interfaces/NetInterface.xml
+23-0src/opnsense/mvc/app/models/OPNsense/Interfaces/NetworkInterface.xml
+2-2plist
+1-1src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php
+197-1976 files

OPNSense/core bab9a40src/opnsense/mvc/app/controllers/OPNsense/Base ControllerBase.php, src/opnsense/mvc/app/views/layout_partials base_dialog.volt

MVC:ui - [WIP] refactor base_dialog and parseFormNode to simplify the template for https://github.com/opnsense/core/issues/9955
DeltaFile
+32-81src/opnsense/mvc/app/views/layout_partials/base_dialog.volt
+33-3src/opnsense/mvc/app/controllers/OPNsense/Base/ControllerBase.php
+65-842 files

OPNSense/core fa7b7a8src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml

Interfaces: Assignments - rename "Interface" to "Device", but keep "if" as key to align with data underneath. for https://github.com/opnsense/core/pull/10366
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+1-11 files

OPNSense/core ee94f62src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms dialogAssignment.xml, src/opnsense/mvc/app/views/OPNsense/Interface assignment.volt

Interfaces: Assignments - fix empty descriptions, which should show as upper case id, for https://github.com/opnsense/core/pull/10366
DeltaFile
+7-0src/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt
+3-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+10-02 files

OPNSense/core ab099aasrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api SourceNatController.php, src/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes SNatModeField.php

Firewall: NAT: Source NAT: Add migration for Outbound NAT into Source NAT page (#10373)

Firewall: add Source NAT mode bridge and outbound NAT migration

Reflect legacy `nat.outbound.mode` into the Firewall MVC model as volatile
`general.snat_mode` and expose it in the new Source NAT view. Persist the value
back into the legacy configuration through `serializeToConfig()` using a scoped
general-section setter to avoid unrelated model validation.

Adjust the Source NAT grid output based on the selected mode. Automatic and
hybrid modes include synthetic automatic rule rows for display purposes, while
advanced mode only shows manual rules and disabled mode hides the grid.

Extend the migration assistant with an outbound NAT migration tab and add a
configd exporter for legacy `nat.outbound.rule` entries. Exported rows
use empty UUIDs so imports create fresh MVC rule identifiers.

Add missing Source NAT parity fields for `tag` and `nosync`, include them in
generated rows, and export them from legacy outbound NAT rules.

    [22 lines not shown]
DeltaFile
+169-10src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php
+115-26src/opnsense/mvc/app/views/OPNsense/Firewall/firewall_migration.volt
+134-0src/opnsense/scripts/filter/list_legacy_outbound_nat.php
+56-3src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+56-0src/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/SNatModeField.php
+20-5src/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.php
+550-4417 files not shown
+688-10823 files

OPNSense/core 857bb50src/opnsense/service/conf/actions.d actions_interface.conf

interfaces: another cleanup
DeltaFile
+0-2src/opnsense/service/conf/actions.d/actions_interface.conf
+0-21 files

OPNSense/core 456f2e9. LICENSE

LICENSE: sync
DeltaFile
+0-1LICENSE
+0-11 files

OPNSense/core 9a59cf7. plist, src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api AssignmentController.php

mvc: style sweep
DeltaFile
+2-2src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php
+1-2src/opnsense/mvc/app/models/OPNsense/Interfaces/NetInterface.php
+1-1src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+1-1plist
+0-1src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/DeviceField.php
+5-75 files

OPNSense/core 3020bf2src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api AssignmentController.php, src/opnsense/mvc/app/models/OPNsense/Interfaces NetInterface.php

Interfaces: Assignments - refactor to MVC closes https://github.com/opnsense/core/issues/9945 (#10366)

In order to migrate the interface assignments, we need to think of a way to use the differently named xml nodes for interfaces (wan, lan, ..) into something that closely resembles a standard model implementation.
Since we can't match these nodes in our statically defined model xmls, the main idea is to flush all via an in-memory model with a separate load [construct] and save hook [serializeToConfig].

The next challenge is to "stash" updates and wait for "apply" in certain cases, for this we add a temporary database holding the changes  which are synced after the actual system change has happend (pending_action, pending_if). When succesfully applied, the apply function cleans up the final stage of the configuration to make everything consistent again.

This database is a simple single json encoded file named /tmp/.interfaces.todo
DeltaFile
+0-498src/www/interfaces_assign.php
+172-0src/opnsense/mvc/app/models/OPNsense/Interfaces/NetInterface.php
+170-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php
+90-0src/opnsense/scripts/interfaces/list_assign_options.php
+73-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/DeviceField.php
+64-0src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+569-49810 files not shown
+751-50316 files

OPNSense/core 7536e52src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api AssignmentController.php, src/opnsense/mvc/app/models/OPNsense/Interfaces NetInterface.php

Interfaces: Assignments - refactor to MVC closes https://github.com/opnsense/core/issues/9945

In order to migrate the interface assignments, we need to think of a way to use the differently named xml nodes for interfaces (wan, lan, ..) into something that closely resembles a standard model implementation.
Since we can't match these nodes in our statically defined model xmls, the main idea is to flush all via an in-memory model with a separate load [construct] and save hook [serializeToConfig].

The next challenge is to "stash" updates and wait for "apply" in certain cases, for this we add a temporary database holding the changes  which are synced after the actual system change has happend (pending_action, pending_if). When succesfully applied, the apply function cleans up the final stage of the configuration to make everything consistent again.

This database is a simple single json encoded file named /tmp/.interfaces.todo
DeltaFile
+0-498src/www/interfaces_assign.php
+172-0src/opnsense/mvc/app/models/OPNsense/Interfaces/NetInterface.php
+170-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php
+90-0src/opnsense/scripts/interfaces/list_assign_options.php
+73-0src/opnsense/mvc/app/models/OPNsense/Interfaces/FieldTypes/DeviceField.php
+64-0src/opnsense/scripts/interfaces/apply_pending_if_changes.php
+569-49810 files not shown
+751-50316 files

OPNSense/core 162c415src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api SourceNatController.php

Validate setGeneralAction as well
DeltaFile
+9-3src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php
+9-31 files

OPNSense/core 1f5916esrc/opnsense/mvc/app/library/OPNsense/Core ConfigMaintenance.php

The nat.outbound.rule flush seems to work just fine, remove this comment
DeltaFile
+0-1src/opnsense/mvc/app/library/OPNsense/Core/ConfigMaintenance.php
+0-11 files

OPNSense/core fe45976src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api SourceNatController.php, src/opnsense/mvc/app/views/OPNsense/Firewall nat_rule.volt

Add a scoped setGeneralAction() that only saves the general section of the model
DeltaFile
+9-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+10-12 files