26.4.0
(2026-04-19)
A big thank you to the following 36 contributors this last month:
- Jellyfrog (44)
- murrant (21)
- laf (18)
- dependabot (9)
- mpikzink (7)
- eskyuu (7)
- chris9951 (4)
- kakohegyi (4)
- eduardomozart (3)
- fbourqui (3)
- bdg-robert (2)
- Taarek (2)
- Lantizia (2)
- ciroiriarte (2)
- MelonicOverlord (1)
- anthonyp-cns (1)
- nsn-amagruder (1)
- base-zero (1)
- Palerm0 (1)
- shpokas (1)
- iliyavl (1)
- karrots (1)
- richard-ririe (1)
- Cormoran96 (1)
- Jannos-443 (1)
- redundantredundancy (1)
- Florent4C (1)
- as8net (1)
- JeevesTuxis (1)
- CKeckNorthIO (1)
- ShanethPatterson (1)
- VVelox (1)
- elherr (1)
- kivu8 (1)
- NightowlKr (1)
- shrank (1)
Thanks to maintainers and others that helped with pull requests this month:
- laf (61)
- murrant (56)
- Jellyfrog (22)
- copilot-pull-request-reviewer (4)
- VVelox (3)
Feature
Breaking Change
- Refactor api-access page to Laravel and improve security (#19431) - laf
- Added alerting operations (#19306) - laf
- Store raw date (#18026) - murrant
Security
- Fix XSS in alert template list (#19486) - murrant
- Escape libvirt cli commands (#19485) - murrant
- Escape nfsen cli command (#19484) - murrant
- Escape App status (#19483) - murrant
- Add device permission check to trigger_device_discovery api function (#19477) - laf
- Updated device inventory page to escape values (#19448) - laf
- Validate hostname for add_device API call (#19447) - laf
- Fix user role & misc permission cleanups (#19429) - murrant
Device
- Add Support for Dell FluidFS NAS Systems (#19455) - MelonicOverlord
- Added Meraki CW support (#19406) - nsn-amagruder
- Show temperature and power graphs in device overview (#19405) - chris9951
- Add support for Exeltech transfer switch (#19324) - murrant
- Added two new temperature sensors related to the battery for Riello UPS/Netman (#19312) - Taarek
- Add TRB160 to supported device list in YAML (#19297) - Cormoran96
- Add RoomAlert 12s support and fix sensor naming on 32s (#19288) - redundantredundancy
- OcNOS 7 uses vendor sysObjectID, add EdgeCore (#19277) - JeevesTuxis
- Remove explicit setting of SnmpQuery options to defaults in Zyxelnwa (#19226) - eskyuu
- Added detection for Unifi UCG devices (#19193) - laf
- Added OS Support for Huber+Suhner Cubo (#18988) - kivu8
- Add support for Alaxala OS and Sensors (#18703) - NightowlKr
Webui
- Improve visual space for device actions (#19469) - murrant
- Added severity buttons to Alert widget filter (#19466) - laf
- Updated Widgets controller to check for user access (#19465) - laf
- Fix unhandled Oxidized ConnectionException causing CRITICAL crash on device config tab (#19443) - eduardomozart
- Use localized timezone for Last Polled and Last Discovered in Device Edit view (#19426) - eduardomozart
- Add 90-day availability bar to device overview (#19342) - Palerm0
- FDB tables don’t show duplicate IPs (#19303) - murrant
- Permissions refinement (#19295) - murrant
- Remove duplicate font-size in geomap, improve accessibility (#19285) - as8net
- Added filter for sensors to filter for errors, warning, alert and unknown values (#18639) - shrank
- Add option for ports controller to use ARP/MAC table lookup for IPv4 neighbours (#16899) - eskyuu
Alerting
- Add alert rules for Windows resources, Zebra printer traps, and Dell DRAC sensors (#19397) - chris9951
- Enhance Microsoft Teams alert delivery: support new Workflow webhooks (#19293) - fbourqui
- Reset alerted flag when a new alert cycle begins (#19086) - ciroiriarte
- Add SNMP Trap alert transport (#19068) - ciroiriarte
- Add PagerTree Alert Transport (#19037) - elherr
Applications
- Update to support form factor, rpm, and over temp info from extend, update docs, minor poller fixes, and add more alert examples (#19169) - VVelox
Api
- Added ability to specify graph type to override system settings in api (#19343) - laf
- Device groups API: Allow device groups to contain an empty list of devices (#19299) - richard-ririe
Discovery
Authentication
- Socialite decouples token attribute lookup from OAuth scopes (#19296) - Jannos-443
Bug
- Fix poller modules perf graph error when a module has no override (#19490) - bdg-robert
- Fix wireless_rate graph missing $unit_long (#19489) - bdg-robert
- Fix edit ports page toggling checkboxes when pressing enter (#19475) - laf
- Added defaults to some OSPFv3 fields missing from Arista (#19473) - laf
- FIX Lenovo-xclarity FAN metrics (#19404) - kakohegyi
- Fix the new SSL page to show HTML on the days until expiry column (#19401) - base-zero
- Fix missing translations for SSL Certificates and Alert Map application settings (#19396) - chris9951
- Fix malformed builder fields in collection templates (#19376) - chris9951
- Fix the high/low limits for Ocnos sensors discovered via php (#19373) - laf
- Fix condition for logging topology change time (#19371) - Jellyfrog
- Correct services() relationship (#19369) - Jellyfrog
- Add access control for devices (#19367) - Jellyfrog
- Host variable assignment logic (#19366) - Jellyfrog
- Tunnel status label assignment logic (#19365) - Jellyfrog
- Fail2ban wrong variable in log message (#19363) - Jellyfrog
- Role name regex inconsistency (#19362) - Jellyfrog
- Check correct variable (#19361) - Jellyfrog
- Some fixes running commands outside dir (#19338) - murrant
- Fix Redis polling crash due to undefined array keys (#19335) - shpokas
- Fix hardcoded font color in device inventory tab for dark mode (#19328) - iliyavl
- Fix IPv4 address parsing error from malformed SNMP data (#19259) (#19326) - Jellyfrog
- More fixes to permissions PR (#19319) - murrant
- Fix show_services menu config (#19314) - murrant
- Fix bridge FDB discovery TypeError when dot1dBasePort is an array (#19248) (#19313) - Jellyfrog
- Fix MIB OID references in Equallogic (#19304) - Jellyfrog
- Fix OID name in Fortigate SNMP query (#19300) - eskyuu
- Fix ambiguous transport_id column in transport-groups query (#19294) - fbourqui
- Fix dynamic service templates not applied during device discovery (#19286) - Florent4C
- Fixed Axos sensor discovery due to capitalisation of OID (#19282) - laf
- Fix an issue with realtime graph (#19280) - murrant
- Fix ArpTable TypeError when Mac::parse() receives array instead of string (#19278) - Jellyfrog
- Cast ignore and disabled to integers in addService (#19276) - CKeckNorthIO
- Fix non-existent state name “dellme” for dell-powervault sensors (#19273) - Jellyfrog
- Fix TnmsneInfo model class not found in Coriant OS (#19272) - Jellyfrog
- Fix undefined variable $oids in MEF discovery (#19271) - Jellyfrog
- Fix undefined array key for HH3C transceiver bias threshold keys (#19268) - Jellyfrog
- Fix undefined array key 0 in commander-plus sensor state (#19267) - Jellyfrog
- Fix undefined array key in awplus NTP discovery (#19266) - Jellyfrog
- Fix undefined array key 1 in avtech sensor pre-cache (#19265) - Jellyfrog
- Fix undefined array key in arubaos FDB discovery (#19264) - Jellyfrog
- Fix Areca OS: isHex() receives null when serial is not set (#19263) - Jellyfrog
- Fix undefined variable $port in aos6 FDB table discovery (#19262) - Jellyfrog
- Fix undefined array key in adva_fsp3kr7 sensor pre-cache (#19261) - Jellyfrog
- Fix undefined array key 1 in adva_fsp150 sensor pre-cache (#19260) - Jellyfrog
- Fix dark mode readability for legacy tables (#19213) - ShanethPatterson
- Fix missing ENTITY-MIB parent index handling in cisco entity sensor d… (#19211) - kakohegyi
- Cisco CBQoS discovery against missing table keys (#19209) - kakohegyi
- Fix timezone override in outages DT picker (#19156) - murrant
- STP port discovery BUG : fix pvst discovery (#18771) - kakohegyi
Refactor
- IPMI refactor (#19424) - murrant
- Add IfOperStatus enum for port ifOperStatus/ifAdminStatus fields (#19400) - Jellyfrog
- Remove snmp_hexstring() and hex2str() (#19392) - mpikzink
- Replace deprecated Request::get() with input() (#19370) - Jellyfrog
- Remove unused state_draw_graph column from state_translations (#19356) - Jellyfrog
- Replace dbFetchCell() with Eloquent in alert rules and user perms (#19340) - Jellyfrog
- Replace dbFetchCell() value lookups with Eloquent (#19337) - Jellyfrog
- Replace dbFetchCell() COUNT queries with Eloquent (#19336) - Jellyfrog
- Replace dbUpdate() with Eloquent in two-column WHERE form handlers (#19331) - Jellyfrog
- Replace dbUpdate() with Eloquent in simple single-WHERE form handlers (#19330) - Jellyfrog
- Replace dbUpdate() with Eloquent in multi-field form handlers (#19329) - Jellyfrog
- Yaml, use SnmpQuery (#17371) - murrant
Cleanup
- Remove Oxidized config validation (#19476) - laf
- Cleanup device_by_name (#19434) - mpikzink
- Cleanup get_sensor_rrd (#19433) - mpikzink
- Cleanup step2 (#19428) - mpikzink
- Cleanup unused functions (#19422) - mpikzink
- Refractor gethostbyid (#19407) - mpikzink
- Add Collection generic type parameters under app/ (#19380) - Jellyfrog
- Convert Raisecom and Raisecom ROS sensors from PHP to YAML definitions (#19360) - Jellyfrog
- Convert nokia-isam temperature sensor from PHP to YAML (#19359) - Jellyfrog
- Improve IPv4 discovery detection for out of order OIDs (#19354) - eskyuu
- Fix OID order in snmprec files (#19353) - eskyuu
- Remove unused deviceArray function from SnmpQueryInterface (#19320) - eskyuu
- Migrate APC state discovery to modern API (#19301) - Jellyfrog
- Replace dbBulkInsert() with Eloquent (#19207) - Jellyfrog
- Convert all dbDelete() calls to Eloquent model methods (#19206) - Jellyfrog
Documentation
Tests
- Clear out phpunit bootstrap (#19412) - murrant
- Add PHPStan level 6 check on new PHP files in PRs (#19410) - Jellyfrog
- Add phpunit extension (#19402) - Jellyfrog
Misc
- Handle null last_polled and last_discovered values (#19450) - Taarek
- Update collation checks logic to use NOT IN and add utf8mb4_uca1400_a… (#19440) - anthonyp-cns
- Validate utf8mb4_uca1400_ai_ci (#19437) - Lantizia
- Remove del_dev_attrib (#19418) - mpikzink
- Add IPv6 cleanup to maintenance:cleanup-networks command (#19318) - karrots
Internal Features
Dependencies
- Bump follow-redirects from 1.15.11 to 1.16.0 (#19451) - dependabot
- Bump phpseclib/phpseclib from 3.0.50 to 3.0.51 (#19430) - dependabot
- Bump axios from 1.13.5 to 1.15.0 (#19421) - dependabot
- Bump lodash from 4.17.23 to 4.18.1 (#19399) - dependabot
- Bump vite from 6.4.1 to 6.4.2 (#19395) - dependabot
- Bump serialize-javascript and terser-webpack-plugin (#19352) - dependabot
- Bump picomatch (#19323) - dependabot
- PHP Dependency updates (#19305) - Jellyfrog
- Bump league/commonmark from 2.8.1 to 2.8.2 (#19283) - dependabot
- Bump phpseclib/phpseclib from 3.0.48 to 3.0.50 (#19279) - dependabot