v1.1.0#
07/04/2026
Attention
Reply CMP v1.1.0 is now available v1.1.0 delivers the native Monitoring module — fully reimagined operational dashboards built on top of Azure Monitor, AWS CloudWatch, and GCP Cloud Monitoring APIs, alongside a complete Alert Rules engine with email and in-app notifications.
What’s Changed#
🚀 New Features#
Native Monitoring Dashboards#
The legacy Grafana-embedded monitoring experience has been replaced with a first-class native dashboard engine that queries cloud metrics and logs directly through provider APIs — no external dependency required.
Dashboards
Free-form 12-column grid canvas with drag-and-drop widget layout
Import / export dashboards as
.welkin-dashboardJSON files to share configurations across tenants or environmentsSet a default dashboard as the landing page when opening Monitoring
Per-tenant dashboard library with name, description, and timestamps
Widget types: Timeseries, Stat, Table, Alert List
Supported query types:
Provider |
Query types |
|---|---|
Azure |
Azure Monitor Metrics, Log Analytics (KQL), Azure Alerts Management |
AWS |
CloudWatch Metrics, CloudWatch Alarms, CloudWatch Logs Insights |
GCP |
Cloud Monitoring Metrics, Alert Policies |
Query features:
Multi-connection queries: target the same metric across multiple connections in a single widget
Configurable time range per widget (presets + custom absolute range)
Query results cached for 5 minutes for low-latency dashboard refresh
Auto-type-detection for Log Analytics workspaces; selectable workspaces for cross-workspace KQL
Dimension filtering for Azure Metrics; alignment period and reducer selection for GCP Metrics
Alert Rules#
Automated threshold monitoring across all three cloud providers.
Configure a query, an evaluation condition (Gt / Gte / Lt / Lte / Eq / Any Result), and a schedule (minimum 1-minute interval)
State machine: Unknown → OK → Firing → OK with automatic resolution
Evaluation targets: Last Value, Average, Count — reduce any query result to a single comparable number
On-demand evaluation: trigger an immediate evaluation from the rule detail page without waiting for the next scheduled run
Alert history: last 50 state transitions recorded per rule (Firing / Resolved / Error), with evaluated value and message
Quota: 50 rules per tenant
Notifications (per-rule):
In-app notification on fire and resolve (enabled by default)
Email notification with HTML and plain-text templates, fired-state colour coding, human-readable condition summary, and contextual next-steps guidance
Webhook and Microsoft Teams channels via registered Webhooks
Cooldown: per-rule 30-minute delivery cooldown prevents notification storms during sustained firing; spurious Unknown → OK resolved notifications are suppressed
Create an alert from a dashboard widget: use the widget context menu → “Create Alert” to pre-fill the query configuration automatically.
Webhooks#
A new Webhooks management section (Administration → Webhooks) lets you register outbound webhook endpoints and Microsoft Teams connectors that can be targeted by Alert Rules.
Supports two channel types: Webhook (generic HTTPS POST, HMAC-SHA256 request signing) and Microsoft Teams (Adaptive Card / MessageCard)
Per-channel delivery history shows the last 200 delivery attempts with HTTP status codes and error messages
Test delivery sends a sample payload to verify connectivity before attaching a channel to a rule
Outbound URLs are validated for HTTPS and must not resolve to private IP ranges (SSRF protection)
Channels can be temporarily disabled without removing them from configured rules
DataIngestion & Discovery improvements (backend)#
Cooldown guard fix: failed or cancelled operations no longer block re-scheduling; only a
Completedoperation triggers the cooldown windowConcurrent operation detection: reworked to distinguish between a superseded operation (own ID was cancelled by a newer run — silently skip) and a genuinely concurrent operation (different ID still running — emit Cancelled and return an error)
Bulk scheduling performance:
BulkScheduleIngestionAsyncnow batches the status query for all connections into a single DB round-trip instead of N individual queriesExpiration check: connections with a past
ExpirationDatenow returnInvalidOperationError("Connection expired")immediately instead of attempting to run
🔐 Permissions#
New permission resources added in v1.1.0:
Permission |
Who needs it |
|---|---|
|
View dashboards, run widget queries |
|
Create, edit, import, export, set default dashboards |
|
View alert rules and alert history |
|
Create, edit, toggle, and evaluate alert rules |
|
Delete alert rules |
|
View webhook and Teams channels and delivery history |
|
Create, edit, test, enable/disable, and delete webhooks |
The built-in Monitoring Reader and Monitoring Contributor roles have been updated to include the Monitoring permissions automatically. The new Onboarding.Webhook permissions are included in the Owner and Contributor roles — no manual role updates required.
🐛 Bug Fixes#
Fixed scheduled alert evaluation failing silently in the Azure Functions background worker due to missing HTTP user context (background worker now passes
tenantIddirectly, bypassing the HTTP user context requirement)Fixed
AlertListqueries with 0 active alerts returningNoDatainstead ofOKforAnyResultand threshold conditions, preventing automatic resolutionFixed
CreateDashboardwithIsDefault = trueleaving the tenant without a default dashboard when the insert step failed (now atomic via a database transaction)
📚 Documentation#
Monitoring Dashboards guide — completely rewritten for the native dashboard engine
New Webhooks guide
Roles & Permissions reference updated with new Monitoring and Onboarding.Webhook resources