System: Routes: Configuration - initial work on collecting the expected routes based on our configuration, for https://github.com/opnsense/core/issues/10569
This should partly replace exiting dpinger calls as we need the same information here, for now we migrate what we need so we can refactor system_routing_configure() later when our strategy is complete.
The basic idea is to gather the set we plan to update and compare all with the existing routing table, so we can easily drop the ones we don't need and add the ones that we miss.
Initially its not the intention to offer multiple active default routes via gateways, but eventually we could consider hooking monitors to static routes as well.
Historically, considering a route is singular, it kind of made sense to have defaults managed via "gateways", but when multiple could exist at the same time, the route configuration might have been a more logical spot.
(work in progress)
Reporting: Health: Improve graph metadata and formatting (#11038)
Add improved metadata types in the xml definitions, adjust front-end as needed. Also add a "logarithmic" checkbox. Port this behavior to the health graph widget(s) as well.
dashboard: support indirect widget endpoint declarations
Allow widget metadata to mark individual endpoints as indirect when
API calls are delegated to a shared helper, as is the case for
HealthGraph.js + opnsense_health.js
Exclude indirect endpoints from direct source-call matching, but
do not exempt indirect call from ACL validation.
Services: Kea DHCPv6: Add setup.sh that creates /var/log/kea so kea_prefix_watcher.py doesn't fail to daemonize on RAM disks during boot (#11053)
(cherry picked from commit 47fc15355f72c602586de42d548b3a70b9af447c)