v1.8.1 — April 2026
This release introduces new features in the alerts engine, notifications, and facility administration, along with significant performance improvements for environments with thousands of active alerts.
New features
Composite alerts (AND / OR)
It is now possible to combine up to 5 conditions in a single alert using AND or OR logical operators.
- Use case: trigger an alarm only when several conditions are met simultaneously (e.g. high temperature AND low humidity).
- Configuration: in the alert editor, select the operator from the Logic dropdown (Single / AND / OR) and add conditions with + Add condition.
- Constraint: all conditions of a composite alert must belong to endpoints of the same facility.
Browser push notifications (Monitor)
The Monitor module now supports direct browser push notifications via Firebase Cloud Messaging, even when the tab is in the background.
- Activation: bell icon in the top bar → Activate notifications → grant permission in the browser.
- Custom sound and
(OPEN)label for open alarms. - Multi-tenant support: each client can register their own Firebase project.
- Availability: Monitor module (the icon is intentionally hidden in Manager).
Per-facility Maintenance mode
Lets you temporarily suspend the creation of new alarms and the execution of automated actions on a facility, without affecting existing active alarms.
- Access: Manager → Facilities → edit facility → Operational Status tab.
- The Put in maintenance toggle opens a dialog where you can:
- Provide an optional reason — recorded in the history.
- Configure an auto-revert timeout in hours (
0 = no timeout).
- Change history: the History section shows previous toggles with date, author, and reason.
- While a facility is in Maintenance mode:
- New alarms are not created.
- Automated actions are not triggered.
- Previously active alarms remain open.
- Auto-revert: a scheduled job checks timeouts and returns the facility to Active automatically when they expire.
{SECTOR_NAME} variable in notifications
The description of the sector to which an endpoint belongs can now be used as a placeholder in any alarm notification template.
- Available in: Email, SMS, Voice, and WhatsApp, for both alarm open and close events.
- Resolution: if the endpoint is associated with a sector, the sector description is inserted. If not, an empty string is inserted (without affecting the rest of the template).
Grouped alerts view by device
The Manager → Alarms → Alerts screen now groups alerts by device, with a visual severity summary.
- Per device: total + colored severity badges (High red, Medium orange, Low yellow, Information blue).
- Expandable: click on a device to view the alerts list with Endpoint / Alert / Severity / Status columns.
- Performance: the list supports server-side pagination — facilities with thousands of alerts load instantly.
Default permissions for the "Everyone" group
When a new client is created, the Everyone group automatically receives:
Client.Read(access to the Monitor module)Client.ReadAllFacilities(read access to all facilities of the client)
Note for existing clients: the permission is automatically backfilled on the next app pool restart. If you need strict compartmentalization between facilities (a user should only see a specific facility), do not assign the Everyone group to that user; create custom groups with per-facility permissions instead.
Performance improvements
Alerts list paginated in the database
The alerts view in Manager now uses a paginated stored procedure that filters and sorts in SQL. Previously this was done in memory, which caused TTFB > 10 seconds in large facilities.
- Result: sub-second load for facilities with thousands of alerts.
- Inline search: filtering by description, address, or DeviceID is executed in the DB.
Reduced queries for composite alerts
The conditions of composite alerts (AND/OR) are now loaded in a single batched query instead of one query per alert. Previously: N+1 query pattern.
- Result: pages with many composite alerts load ~40% faster.
Stability and hardening
- Null safety in critical operations of the alerts and dashboards engine (defensive guards on legacy data mappings).
- Cross-server coordination for Maintenance cache invalidation: a Redis message is published when the status changes, ensuring that servers in a load-balanced topology refresh their local cache immediately.
- Automatic cleanup of token files in the Camera widget cache — a new job removes
.tokenfiles older than 7 days. - Defensive handling of missing devices when a dashboard widget requests a deleted device: the frontend now receives a structured error instead of a generic failure.
Technical updates
Transparent changes for end users:
- Microsoft IdentityModel updated to
8.12.0(JWT/Auth0 token handling). - Newtonsoft.Json to
13.0.3. - MQTTnet to
3.1.2(internal IoT event bus). - Jint and Esprima to stable versions (JavaScript scripting engine).
- System.Runtime.CompilerServices.Unsafe consolidated to
6.0.0.
Recommended actions
- App pool restart (handled by the Cloud Studio team during deployment) — automatically backfills the
Client.ReadAllFacilitiespermission for all existing clients. - Enable the notifications bell from Monitor — each user must activate browser permission once per device.
- Review custom notification templates if you want to include the sector in the message — add the
{SECTOR_NAME}placeholder where appropriate.
Support
For inquiries, contact the Cloud Studio team: contacto@cloud.studio.