OPNSense/core beed8f1src/opnsense/mvc/app/controllers/OPNsense/Core/Api SnapshotsController.php, src/opnsense/mvc/app/controllers/OPNsense/Core/forms snapshot.xml

System: Snapshots - add note field to store comments. closes https://github.com/opnsense/core/issues/9764

One of the main issues with our previous bectl output was the variance of the (uuid) key, which we generated using the current name.
By using the create timestamp (acquired via zfs), we can keep our key stable on renames and offer access to simple json files on disk which contain additional notes.

Notes are stored in /conf/snapshots/ as json files, keyed by their generated uuid's.
DeltaFile
+62-4src/opnsense/mvc/app/controllers/OPNsense/Core/Api/SnapshotsController.php
+8-2src/opnsense/scripts/system/bectl.py
+5-0src/opnsense/mvc/app/controllers/OPNsense/Core/forms/snapshot.xml
+75-63 files

OPNSense/core 66261e1src/opnsense/www/js opnsense_bootgrid.js

bootgrid: fix curRowCount type conversion issue when stored in localstorage.
DeltaFile
+3-1src/opnsense/www/js/opnsense_bootgrid.js
+3-11 files

OPNSense/core 1669418src/opnsense/mvc/app/library/OPNsense/Base UIModelGrid.php

mvc: idea to add UUID to the fields that can be searched, but only if the searchPhrase contains a valid UUID. That way it won't match on partial strings.
DeltaFile
+19-0src/opnsense/mvc/app/library/OPNsense/Base/UIModelGrid.php
+19-01 files

OPNSense/core c0569f8src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php, src/opnsense/www/js opnsense_bootgrid.js

bootgrid: batch delete-selected by default (#9779)

* bootgrid: batch delete-selected by default

* ApiMutableModelControllerBase - simplify checkAndThrowSafeDelete in delBase a bit for https://github.com/opnsense/core/pull/9779

* use a descriptive name if available

---------

Co-authored-by: Ad Schellevis <ad at opnsense.org>
DeltaFile
+34-16src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+14-13src/opnsense/www/js/opnsense_bootgrid.js
+48-292 files

OPNSense/core d0d6de2src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

ApiMutableModelControllerBase - simplify checkAndThrowSafeDelete in delBase a bit for https://github.com/opnsense/core/pull/9779
DeltaFile
+18-19src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+18-191 files

OPNSense/core 63e0b92src/opnsense/mvc/app/views/OPNsense/Diagnostics fw_log.volt, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt dnat_rule.volt

Firewall: Rules [new]: Add a command button to open the live log with prefilled rule ID (#9770)

fw_log.volt:
Uses a url hash inside fw_log.volt to set a filter when opening it through a link from filter_rule.volt
The url hash can set any type of a single filter, so it can be reused in other pages as well.
Combine entry point of addCombinedFilter and addFilter, decide via array in field what type it is.
Change init entrypoint to always go through the filterChange() pipeline, but have a fast path in there that initializes without a filter. This adds the filter immediately when loading with the page with the URL hash
Make sure we want for tableBuilt to prevent replaceData errors

filter_rule.volt
Only show the log search button when row.log is 1 or true
Change fa icon in the lookup rule reference button in dnat as well for consistency
Use URLSearchParams()

---------

Co-authored-by: Stephan de Wit <stephan.de.wit at deciso.com>
DeltaFile
+30-24src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_log.volt
+36-17src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+3-3src/opnsense/mvc/app/views/OPNsense/Firewall/dnat_rule.volt
+69-443 files

OPNSense/core 6fbde64src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php, src/opnsense/www/js opnsense_bootgrid.js

bootgrid: batch delete-selected by default
DeltaFile
+30-13src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+14-13src/opnsense/www/js/opnsense_bootgrid.js
+44-262 files

OPNSense/core c56ea09src/opnsense/mvc/app/views/OPNsense/Diagnostics fw_log.volt, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Use URLSearchParams() instead of JSON
DeltaFile
+8-9src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_log.volt
+1-3src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+9-122 files

OPNSense/core 4081092src/etc/inc interfaces.inc, src/opnsense/scripts/interfaces rtsold_script.sh

interfaces: multi-dhcp6c support and custom PD association #7647

This splits off rtsold and dhcp6c into separate processes
which frees us from the restrictions of faked iterative IDs
for PD associations.  For NA we simply default to 0 now.

I'm not entirely sure why we settled for a single deamon of
dhcp6c back in the day, but there are certianly downsides to
it and I don't see something that wasn't fixed in the meantime
that makes this not work.
DeltaFile
+22-58src/etc/inc/interfaces.inc
+58-4src/www/interfaces.php
+6-6src/opnsense/scripts/interfaces/rtsold_script.sh
+86-683 files

OPNSense/core c6db10fsrc/etc/pkg/repos OPNsense-aux.conf.shadow.in, src/opnsense/mvc/app/models/OPNsense/Core Firmware.xml

firmware: disable aux by default but enable when checked; closes #9275
DeltaFile
+26-16src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt
+9-1src/opnsense/scripts/firmware/repos/OPNsense.php
+1-1src/etc/pkg/repos/OPNsense-aux.conf.shadow.in
+1-0src/opnsense/mvc/app/models/OPNsense/Core/Firmware.xml
+37-184 files

OPNSense/core c145e5csrc/opnsense/scripts/kea kea_prefix_watcher.py

kea: Add scope ID to prefix watcher link local address to fix route add (#9778)

DeltaFile
+2-1src/opnsense/scripts/kea/kea_prefix_watcher.py
+2-11 files

OPNSense/core 827376dsrc/etc/pkg/repos OPNsense-aux.conf.shadow.in, src/opnsense/mvc/app/models/OPNsense/Core Firmware.xml

firmware: disable aux by default but enable when set #9275
DeltaFile
+26-16src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt
+9-1src/opnsense/scripts/firmware/repos/OPNsense.php
+1-1src/etc/pkg/repos/OPNsense-aux.conf.shadow.in
+1-0src/opnsense/mvc/app/models/OPNsense/Core/Firmware.xml
+37-184 files

OPNSense/core 1d06cf4src/opnsense/scripts/firmware/repos OPNsense.php

firmware: opnsense-update does aux if found now
DeltaFile
+0-4src/opnsense/scripts/firmware/repos/OPNsense.php
+0-41 files

OPNSense/core 31f6e89src/opnsense/mvc/app/models/OPNsense/Base/Menu MenuItem.php MenuSystem.php

firewall: override "Rules" name when we hide the old one
DeltaFile
+20-1src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuItem.php
+3-9src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php
+23-102 files

OPNSense/core af58c50src/opnsense/mvc/app/views/OPNsense/Diagnostics fw_log.volt

make sure we want for tableBuilt to prevent replaceData errors
DeltaFile
+11-9src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_log.volt
+11-91 files

OPNSense/core e4cc9e7src/opnsense/scripts/kea kea_prefix_watcher.py

kea: Add scope ID to prefix watcher link local address to fix route add
DeltaFile
+2-1src/opnsense/scripts/kea/kea_prefix_watcher.py
+2-11 files

OPNSense/core a5c1076src/opnsense/mvc/app/views/OPNsense/Core firmware.volt

firmware: shorten this message, spinner now back to same line
DeltaFile
+2-2src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt
+2-21 files

OPNSense/core 6cfd38csrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api CategoryController.php, src/opnsense/mvc/app/views/OPNsense/Firewall category.volt

Firewall: Categories - add simple import/export function and missing lock on set action.
DeltaFile
+29-2src/opnsense/mvc/app/views/OPNsense/Firewall/category.volt
+18-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/CategoryController.php
+47-32 files

OPNSense/core a971f4fsrc/etc/inc interfaces.inc, src/opnsense/scripts/interfaces rtsold_script.sh

interfaces: multi-dhcp6c support and custom PD association #7647

This splits off rtsold and dhcp6c into separate processes
which frees us from the restrictions of faked iterative IDs
for PD associations.  For NA we simply default to 0 now.

I'm not entirely sure why we settled for a single deamon of
dhcp6c back in the day, but there are certianly downsides to
it and I don't see something that wasn't fixed in the meantime
that makes this not work.
DeltaFile
+22-58src/etc/inc/interfaces.inc
+58-4src/www/interfaces.php
+6-6src/opnsense/scripts/interfaces/rtsold_script.sh
+86-683 files

OPNSense/core bc6035esrc/opnsense/scripts/firmware update.sh

firmware: this cleanup also moves to opnsense-update
DeltaFile
+1-2src/opnsense/scripts/firmware/update.sh
+1-21 files

OPNSense/core f55124a. plist, src/etc/rc.syshook.d/upgrade 90-cleanup.sh

firmware: move this to opnsense-update
DeltaFile
+0-4src/etc/rc.syshook.d/upgrade/90-cleanup.sh
+0-1plist
+0-52 files

OPNSense/core 7592d9dsrc/etc/inc interfaces.inc, src/opnsense/scripts/interfaces rtsold_script.sh

interfaces: multi-dhcp6c support and custom PD association #7647

This splits off rtsold and dhcp6c into separate processes
which frees us from the restrictions of faked iterative IDs
for PD associations.  For NA we simply default to 0 now.

I'm not entirely sure why we settled for a single deamon of
dhcp6c back in the day, but there are certianly downsides to
it and I don't see something that wasn't fixed in the meantime
that makes this not work.
DeltaFile
+22-58src/etc/inc/interfaces.inc
+58-4src/www/interfaces.php
+6-6src/opnsense/scripts/interfaces/rtsold_script.sh
+86-683 files

OPNSense/core 2a90bec. Makefile plist, src/etc/pkg/repos OPNsense-aux.conf.shadow.in OPNsense.conf.shadow.in

firmware: add aux repository for #9275

Not a toggle yet but also only on development for now.
DeltaFile
+7-0src/etc/pkg/repos/OPNsense-aux.conf.shadow.in
+2-2Makefile
+4-0src/opnsense/scripts/firmware/repos/OPNsense.php
+1-1src/etc/pkg/repos/OPNsense.conf.shadow.in
+1-0plist
+15-35 files

OPNSense/core 0b5f585src/opnsense/www/js/widgets Firewall.js

Lobby: Dashboard / Firewall - fix encoding issue, closes https://github.com/opnsense/core/issues/9729

Minor adjustment to https://github.com/opnsense/core/pull/9776
DeltaFile
+1-1src/opnsense/www/js/widgets/Firewall.js
+1-11 files

OPNSense/core 0ed6359src/opnsense/mvc/app/views/OPNsense/Core firmware.volt

firmware: fix this annoying UX bug not hiding advanced options
DeltaFile
+1-1src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt
+1-11 files

OPNSense/core 8297c7dsrc/opnsense/scripts/captiveportal/lib db.py

remove unused code
DeltaFile
+1-30src/opnsense/scripts/captiveportal/lib/db.py
+1-301 files

OPNSense/core fe4748bsrc/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt, src/opnsense/scripts/captiveportal/lib arp.py

captive portal: some more cleanups
DeltaFile
+8-9src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+0-11src/opnsense/scripts/captiveportal/lib/arp.py
+8-202 files

OPNSense/core c6d526fsrc/opnsense/scripts/captiveportal/lib ipfw.py pf.py

in fact, this documents itself
DeltaFile
+0-4src/opnsense/scripts/captiveportal/lib/ipfw.py
+0-4src/opnsense/scripts/captiveportal/lib/pf.py
+0-82 files

OPNSense/core 8be14b6src/opnsense/scripts/captiveportal/lib ipfw.py pf.py

captive portal: no scope stripping needed
DeltaFile
+1-3src/opnsense/scripts/captiveportal/lib/ipfw.py
+1-3src/opnsense/scripts/captiveportal/lib/pf.py
+2-62 files

OPNSense/core 43675ddsrc/opnsense/scripts/captiveportal cp-background-process.py, src/opnsense/scripts/captiveportal/lib arp.py

captive portal: simplify hostdiscovery output handling
DeltaFile
+20-80src/opnsense/scripts/captiveportal/lib/arp.py
+1-1src/opnsense/scripts/captiveportal/cp-background-process.py
+21-812 files