OPNSense/core 1a3533d — src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv4.php

Services: Kea DHCPv4: Add a simple shared_networks option to subnets (#11115)

Subnets can now select an interface, subnets with the same interface will be put into a shared network.

This means its not decided by the interface IP of the receiving interface anymore, but by a mandatory client-classes membership
which is decided by matching a single DHCP option of the users choice as the gatekeeper to the subnet.

This way, multiple subnets can be served from the same interface.
DeltaFile
+56-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+56-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+50-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+8-2src/opnsense/scripts/kea/get_kea_leases.py
+6-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt
+176-45 files

OPNSense/core 1d8668f — src/opnsense/mvc/app/controllers/OPNsense/Auth/Api UserController.php, src/opnsense/mvc/app/controllers/OPNsense/Auth/forms dialogPriv.xml dialogUser.xml

System: Access - add "authority" option to ACLs (#11160)

(cherry picked from commit 107eb1ea69a147b4d3337670a968acb58f909d89)
(cherry picked from commit 109f23375c50edc433b2277663262901191be48d)
DeltaFile
+65-26src/opnsense/mvc/app/models/OPNsense/Core/ACL.php
+15-5src/opnsense/mvc/app/models/OPNsense/Core/ACL/ACL.php
+13-1src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserController.php
+8-0src/opnsense/mvc/app/controllers/OPNsense/Auth/forms/dialogUser.xml
+7-0src/opnsense/mvc/app/models/OPNsense/Core/ACL/ACL.xml
+5-0src/opnsense/mvc/app/controllers/OPNsense/Auth/forms/dialogPriv.xml
+113-322 files not shown
+117-328 files

OPNSense/core 6e638a9 — src/opnsense/mvc/app/models/OPNsense/Core ACL.php

System: Access: Groups - implement "source networks" check in hasPrivilege(), addendum to https://github.com/opnsense/core/issues/8754

PR: GHSA-2f7g-25f3-55v7
(cherry picked from commit 20504330acfe8e54bd21e5bb97e451e37f95c343)
DeltaFile
+3-2src/opnsense/mvc/app/models/OPNsense/Core/ACL.php
+3-21 files

OPNSense/core 109f233 — src/opnsense/mvc/app/models/OPNsense/Core/ACL ACL.xml

system: page-all is of unrestricted authority
DeltaFile
+1-0src/opnsense/mvc/app/models/OPNsense/Core/ACL/ACL.xml
+1-01 files

OPNSense/core 937fdd9 — src/opnsense/www/js/widgets Certificates.js

dashboard: certificate widget: change floor to ceil so that certificates with less than a day left are not expired (#11161)

(cherry picked from commit 3c004aeffb9f077f82ae15a6c31f971f8441f373)
DeltaFile
+1-1src/opnsense/www/js/widgets/Certificates.js
+1-11 files

OPNSense/core 3c004ae — src/opnsense/www/js/widgets Certificates.js

dashboard: certificate widget: change floor to ceil so that certificates with less than a day left are not expired (#11161)
DeltaFile
+1-1src/opnsense/www/js/widgets/Certificates.js
+1-11 files

OPNSense/core b0963f3 — . plist

pkg: fix plist

(cherry picked from commit 701d3ce7654e5df5d699ea6324c6dababa6b2527)
DeltaFile
+2-0plist
+2-01 files

OPNSense/core 2a415ab — src/opnsense/mvc/app/controllers/OPNsense/Core/Api SystemController.php

System Status - use standard throwReadOnly() on dismiss action.

PR: GHSA-2w8j-hpp2-8rfj
(cherry picked from commit 04a7feb89c714367eb76c4c309938453bef4fb63)
DeltaFile
+2-4src/opnsense/mvc/app/controllers/OPNsense/Core/Api/SystemController.php
+2-41 files

OPNSense/core 283463a — src/opnsense/mvc/app/controllers/OPNsense/Core/forms hasyncSettings.xml

Fix typo in HA sync services help text (#11156)

(cherry picked from commit 5159ae2d1886153e020b15b1bccaadd77142c5c2)
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Core/forms/hasyncSettings.xml
+1-11 files

OPNSense/core 5f159c0 — src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api AccessController.php, src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/forms dialogZone.xml

captive portal: add configurable CORS policy per zone (#11108)

(cherry picked from commit b341b07bb21e4f1f6f1c37a5690de004cf5129d2)
DeltaFile
+123-0src/opnsense/mvc/app/models/OPNsense/CaptivePortal/FieldTypes/OriginField.php
+96-0src/opnsense/mvc/tests/app/models/OPNsense/CaptivePortal/FieldTypes/OriginFieldTest.php
+26-7src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/AccessController.php
+22-0src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/forms/dialogZone.xml
+13-0src/opnsense/mvc/app/views/OPNsense/CaptivePortal/index.volt
+11-1src/opnsense/mvc/app/models/OPNsense/CaptivePortal/CaptivePortal.xml
+291-86 files

OPNSense/core 824e3c4 — src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes OptionField.php

mvc:model - optimize OptionField, deduplicate equal setters

(cherry picked from commit 1b07441bdea76f6028cda9cc4f5fb6afd56ff9e5)
DeltaFile
+18-11src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php
+18-111 files

OPNSense/core 5feed5c — . plist, src/opnsense/mvc/app/controllers/OPNsense/Core/Api DashboardController.php

firmware: fetch dashboard widget RSS feed from backend

PR: https://github.com/opnsense/core/issues/11140

(cherry picked from commit 61937589e819e64b50a44c57921ed2a9552c27ac)
(cherry picked from commit 85e0d4e8641c52254ffe5a68c491e06868c5f6f7)
(cherry picked from commit 77be865c98987366cb47919db3401d99f9b03d5c)
(cherry picked from commit 53ec2ef976b3b7bf568825ff31a89bdf87995148)
DeltaFile
+29-0src/opnsense/scripts/firmware/feed.sh
+2-4src/opnsense/mvc/app/controllers/OPNsense/Core/Api/DashboardController.php
+6-0src/opnsense/service/conf/actions.d/actions_firmware.conf
+1-1src/opnsense/scripts/firmware/hostnames.sh
+1-0src/opnsense/scripts/firmware/config.sh
+1-0plist
+40-56 files

OPNSense/core 7d8628b — src/etc/inc filter.inc, src/opnsense/scripts/filter list_non_mvc_rules.php

firewall: NAT: add same query performance fix for automatic rules as in 889bcde (#11102)

(cherry picked from commit 3bb365e21f02ba484e0560349b5c19edf0658553)
DeltaFile
+17-2src/opnsense/scripts/filter/list_non_mvc_rules.php
+5-7src/opnsense/service/conf/actions.d/actions_filter.conf
+5-1src/etc/inc/filter.inc
+27-103 files

OPNSense/core b16e44a — src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules - fix decoration magic in searchRuleAction(), partly reverts https://github.com/opnsense/core/commit/c96610594dc770023047441d3657989f6ea9b7ad

Initial the meta fields where added in https://github.com/opnsense/core/pull/9121 because of missing tooltips, but because the $filter_funct_rs method already parsed the data, it was a convenience to place it inside the block (so we only need to loop through the set once).

Given the loop is much cheaper than the filter action added later, we better move this out of there and only return that data to the user for the output he actually receives (after filtering).

(cherry picked from commit ea38a1b1e91ee9a71c1ab5e5a0f401b094ce09a2)
DeltaFile
+4-14src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+4-141 files

OPNSense/core 9677a91 — src/etc/inc system.inc, src/opnsense/scripts/system sysctl.py

system: invalidate sysctl cache on apply; closes #11109

As mentioned in 41ab7fb9f57 this fixes the glaring issue of the
sysctl cache being stuck while trying to avoid reloads during
normal operation.  The performance hit is solely in the apply
path with is already slow, but now at least syncs up with the
system each time which also means there is no more boot race.

Move the cache to the configd end, which is a more flexible
alternative nowadays.  We may want to support an indefinite
cache TTL, but that's not for the scope here.

(cherry picked from commit dffa9086c7245265eebd28e119fac8ddbdd8b478)
(cherry picked from commit 50105e67ed9ea901d79442804e573bbaf9d9b03b)
DeltaFile
+3-14src/opnsense/scripts/system/sysctl.py
+2-1src/opnsense/service/conf/actions.d/actions_system.conf
+2-0src/etc/inc/system.inc
+7-153 files

OPNSense/core 6a19568 — src/www interfaces.php

interfaces: fix track6 assoc_pd comparison typo

(cherry picked from commit 6262188221583dbe6d4060ecbc51f01c69fe6436)
DeltaFile
+1-1src/www/interfaces.php
+1-11 files

OPNSense/core d425724 — src/opnsense/service/modules/actions script_output.py

configd: support indefinite TTL, closes https://github.com/opnsense/core/issues/11113

(cherry picked from commit 23949d1b5aa9a85faa170c3c4d8588b8ed64f5f8)
DeltaFile
+2-1src/opnsense/service/modules/actions/script_output.py
+2-11 files

OPNSense/core 8afa765 — src/opnsense/mvc/app/models/OPNsense/Base BaseModel.php

mvc:model - revert part of https://github.com/opnsense/core/commit/54aa99b2d0fda5ea836724f17963d04ba7e6a061 as later commits remove the need for it

(cherry picked from commit 1461509d1ddd84158f31ff83d10ca6e8c43de191)
DeltaFile
+8-16src/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php
+8-161 files

OPNSense/core ffc15a9 — src/opnsense/mvc/app/views/layout_partials base_dialog.volt, src/opnsense/www/js opnsense_bootgrid.js

ui: prefix edit/new/copy dialog with associated icon

PR: https://github.com/opnsense/core/pull/11080

(cherry picked from commit dbfc65a539c720825f7e00b048bb5d2368fda485)
(cherry picked from commit 1ce08c09d8c9f8fa3dafe60328da63ebced7b492)
DeltaFile
+2-1src/opnsense/mvc/app/views/layout_partials/base_dialog.volt
+3-0src/opnsense/www/js/opnsense_bootgrid.js
+5-12 files

OPNSense/core 64b8cac — src/opnsense/www/js opnsense_bootgrid.js

ui: delegate bootgrid cell handlers

(cherry picked from commit 70843d2f98ecab4608005a297ac5d2e65316dbb7)
DeltaFile
+55-36src/opnsense/www/js/opnsense_bootgrid.js
+55-361 files

OPNSense/core e2675ba — src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api DNatController.php

firewall: DNAT - decorate rules after filtering

Decorating only the returned rows avoids unnecessary presentation metadata work.

(cherry picked from commit dfb125bd16d8472bc0314b0b3168b44551c41f25)
DeltaFile
+12-5src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/DNatController.php
+12-51 files

OPNSense/core dfc82cd — src/etc/inc/plugins.inc.d tap.inc, src/opnsense/mvc/app/controllers/OPNsense/Interfaces TapController.php

Interfaces: Devices: TAP - add support for TAP devices which can be practical for Virtual machine networking (bhyve/QEMU). (#11110)

(cherry picked from commit c6a3d9819b08e2d7565ec507a90e654ea445f27b)
(cherry picked from commit 7ee53976b6313f62cce1496141466e4778c8d690)
(cherry picked from commit 167c468a93b89ed6adc21338f8864b91373b7912)
DeltaFile
+100-0src/etc/inc/plugins.inc.d/tap.inc
+74-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/TapSettingsController.php
+42-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Tap.php
+39-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/TapController.php
+23-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogTap.xml
+18-0src/opnsense/mvc/app/views/OPNsense/Interface/tap.volt
+296-05 files not shown
+332-011 files

OPNSense/core 8beeab5 — src/opnsense/scripts/suricata installRules.py rule-updater.py, src/opnsense/scripts/suricata/lib downloader.py metadata.py

ids: support Suricata datasets in rule metadata (#11073)

(cherry picked from commit f0115895c1ce37094666a90352d93a82b8b8b80c)
DeltaFile
+15-31src/opnsense/scripts/suricata/rule-updater.py
+28-4src/opnsense/scripts/suricata/installRules.py
+24-3src/opnsense/scripts/suricata/lib/metadata.py
+3-3src/opnsense/scripts/suricata/lib/downloader.py
+70-414 files

OPNSense/core 58b0eee — src/opnsense/mvc/app/models/OPNsense/Hostdiscovery/ACL ACL.xml, src/opnsense/mvc/app/views/OPNsense/Hostdiscovery settings.volt

Interfaces: Neighbors: Automatic Discovery: Lookup hostnames async via reverse dns

(cherry picked from commit 367e73bb58683b3374171e4a2f49b22e0534f7cd)
(cherry picked from commit 7761adda9a69cc21d1a0446c8792b92f85817eac)
DeltaFile
+65-1src/opnsense/mvc/app/views/OPNsense/Hostdiscovery/settings.volt
+1-0src/opnsense/mvc/app/models/OPNsense/Hostdiscovery/ACL/ACL.xml
+66-12 files

OPNSense/core 5a812c4 — src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api SourceNatController.php

firewall: SNAT - decorate rules after filtering

Decorating only the returned rows avoids unnecessary presentation metadata work.

(cherry picked from commit 502d1c763d1269ff80abde5453b7dffb789558d5)
DeltaFile
+13-5src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php
+13-51 files

OPNSense/core a8602a9 — src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

firewall: Avoid loading the rule model twice while the initial grid request is in progress

(cherry picked from commit 2db58e8b162add6f6c9358557abeca89ed138d42)
DeltaFile
+4-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+4-11 files

OPNSense/core ac396bc — src/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes FilterRuleField.php

firewall: only getPriority() once and reuse it

(cherry picked from commit 36f592aae9170ae3ab31c4908f6a83627a5d17d4)
DeltaFile
+3-2src/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/FilterRuleField.php
+3-21 files

OPNSense/core e68cd56 — src/etc/inc filter.inc, src/etc/inc/plugins.inc.d pf.inc

Firewall: Rules - fix query performance issue caused by earlier commit (#11061)

* Firewall: Rules - fix query performance issue caused by https://github.com/opnsense/core/commit/18533b4c60c27253f8c2ebbdfd9bc11d6450da1d

Always showing automatic rules has quite some performance impact, since we need to initialize the plugin system, we can't really speedup that part of the process.
This commit changes the view to show the currently active rules instead of calculating how it would look like after apply, in order to reach that state, we flush the non-mvc rules to /tmp/rules_internal.json which the list_non_mvc_rules.php can use to render the automatic (and legacy) rules quickly.

* Firewall: Rules - minor change in previous, move writing metadata to after successful apply

* pass origin into two other spots, remove cache_ttl as the work has already been done

---------

Co-authored-by: Monviech <gitacc at pischem.com>
(cherry picked from commit 889bcde615073cc17190dccff5ff4881291ada86)
DeltaFile
+4-23src/opnsense/scripts/filter/list_non_mvc_rules.php
+22-4src/opnsense/mvc/app/library/OPNsense/Firewall/Plugin.php
+12-1src/opnsense/mvc/app/library/OPNsense/Firewall/FilterRule.php
+7-0src/etc/inc/filter.inc
+1-1src/etc/inc/plugins.inc.d/pf.inc
+0-1src/opnsense/service/conf/actions.d/actions_filter.conf
+46-306 files

OPNSense/core 0c63b3b — src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

firewall: Be more selective which searches get decorated as well

(cherry picked from commit 11996e29a3f3b2868059145167cfdbf9f07cdd55)
DeltaFile
+5-4src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+5-41 files

OPNSense/core 642c670 — src/opnsense/mvc/app/models/OPNsense/Auth User.xml User.php

System: Access: Users - add small validation warning a user for scope changes including a note to explains its purpose and constraints.

(cherry picked from commit 5b9254a70fe236d010b7d4c9e4480b3b652af211)
(cherry picked from commit cdd7a38717b67ce90b673bd528ddaf2b2b42d8d7)
DeltaFile
+6-1src/opnsense/mvc/app/models/OPNsense/Auth/User.php
+1-0src/opnsense/mvc/app/models/OPNsense/Auth/User.xml
+7-12 files