OPNSense/core 6ba0884 — src/opnsense/scripts/unbound blocklists.py, src/opnsense/scripts/unbound/blocklists __init__.py

Services: Unbound DNS: Blocklists - fix regression in https://github.com/opnsense/core/commit/09f40f0e335abec865c708046db134d4dcacc8a6, closes https://github.com/opnsense/core/issues/11168

Originally the lock was located in blocklists.py, which seemed to be accidentally moved to the class constructor.
Relocate the lock to where it belonged.
DeltaFile
+0-9src/opnsense/scripts/unbound/blocklists/__init__.py
+9-0src/opnsense/scripts/unbound/blocklists.py
+9-92 files

OPNSense/core 1418f25 — src/opnsense/mvc/app/controllers/OPNsense/Auth/Api UserController.php, src/opnsense/mvc/app/models/OPNsense/Auth ApiKey.xml

users: api: add descriptions and created timestamps, refactor https://github.com/opnsense/core/pull/11056

final bits and pieces.

The 27.1 release should remove some actions as mentioned in the comments, rest should work as planned, performance might not be the highest in the world, but given the expected request volume that's unlikely an issue.
DeltaFile
+4-1src/opnsense/mvc/app/models/OPNsense/Auth/ApiKey.xml
+2-2src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserController.php
+6-32 files

OPNSense/core dc77d98 — . plist, src/opnsense/mvc/app/controllers/OPNsense/Auth/Api UserController.php

v2
DeltaFile
+61-86src/opnsense/mvc/app/models/OPNsense/Auth/FieldTypes/ApiKeyField.php
+18-35src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserController.php
+15-34src/opnsense/mvc/app/views/OPNsense/Auth/user.volt
+39-0src/opnsense/mvc/app/models/OPNsense/Auth/ApiKey.php
+10-0src/opnsense/mvc/app/models/OPNsense/Auth/ApiKey.xml
+2-0plist
+145-1556 files

OPNSense/core f3c8f0c — src/opnsense/mvc/app/controllers/OPNsense/Auth/Api UserController.php UserApiKeyController.php, src/opnsense/mvc/app/models/OPNsense/Auth ApiKey.xml ApiKey.php

users: api: add descriptions and created timestamps, refactor https://github.com/opnsense/core/pull/11056

(work in progress)
DeltaFile
+61-0src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserApiKeyController.php
+7-40src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserController.php
+42-0src/opnsense/mvc/app/models/OPNsense/Auth/ApiKey.php
+5-5src/opnsense/mvc/app/views/OPNsense/Auth/user.volt
+5-5src/opnsense/mvc/app/models/OPNsense/Auth/FieldTypes/ApiKeyField.php
+6-3src/opnsense/mvc/app/models/OPNsense/Auth/ApiKey.xml
+126-531 files not shown
+127-537 files

OPNSense/core 13265b9 — . plist, src/opnsense/mvc/app/controllers/OPNsense/Auth UserController.php

users: api: add descriptions
DeltaFile
+80-11src/opnsense/mvc/app/models/OPNsense/Auth/FieldTypes/ApiKeyField.php
+46-17src/opnsense/mvc/app/views/OPNsense/Auth/user.volt
+57-1src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserController.php
+18-0src/opnsense/mvc/app/controllers/OPNsense/Auth/forms/dialogApiKey.xml
+1-0src/opnsense/mvc/app/controllers/OPNsense/Auth/UserController.php
+1-0plist
+203-296 files

OPNSense/core e99ad3c — src/etc/inc/plugins.inc.d radvd.inc, src/opnsense/mvc/app/controllers/OPNsense/Radvd/forms dialogEntry.xml

radvd: add lifetime setting for PREF64
DeltaFile
+10-0src/opnsense/mvc/app/controllers/OPNsense/Radvd/forms/dialogEntry.xml
+5-0src/opnsense/mvc/app/models/OPNsense/Radvd/Radvd.xml
+3-0src/etc/inc/plugins.inc.d/radvd.inc
+18-03 files

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