github kOlapsis/maintenant v1.11.0
Heartbeat editing and email subject labels

4 hours ago

maintenant 1.11.0 lets you edit a heartbeat from the dashboard, adds a subject label to email channels, and opens by IP address without any setting.

Heartbeats

  • The heartbeat detail has an Edit button. It opens the creation form, prefilled. The id, the ping URL and the history are kept, and an interval set through the API outside the presets stays selectable.
  • Changing the interval or the grace period now moves the next deadline of an up or started heartbeat, counted from the last ping, the start of the run or the resume. A new, paused or down heartbeat keeps its deadline.
  • The detail shows the next expected ping time, grace period included.
  • Other open dashboards see the change at once, through a new SSE event heartbeat.updated.
  • PUT /api/v1/heartbeats/{id} with only an interval_seconds lower than the current grace period now answers 400 INVALID_INPUT, instead of storing a grace period longer than the interval.

Email channels

  • An email channel can carry a subject label, set in the channel wizard, the edit form, the API (config.subject_label) or the MCP channel tools. It replaces maintenant between the brackets: [prod-paris] ALERT: …, [prod-paris] RESOLVED: …, [prod-paris] TEST: Test notification.
  • The label is trimmed and limited to 64 characters. A control character (line break, tab, NUL) is refused with 400 VALIDATION_ERROR and the channel keeps its previous label.
  • Without a label, alert and resolution subjects do not change. The test email subject becomes [maintenant] TEST: Test notification, like the alerts, so one mail rule catches both.
  • The edit form shows the error returned by the server instead of closing silently.

Accepted hosts

  • An IP address in the Host header, IPv4 or IPv6, is always accepted. A fresh install with MAINTENANT_ADDR=0.0.0.0:8080 and no MAINTENANT_BASE_URL now opens at http://<server-ip>:8080 instead of answering 421.
  • Host names such as nas.lan still have to be declared in MAINTENANT_BASE_URL or MAINTENANT_ALLOWED_HOSTS. The 421 message now names both variables.

MCP

  • Each tool description says which tool provides the IDs it takes and which tool to use instead. For write tools, it also gives the side effects (emails to subscribers, notices to channels, escalations stopped) and the answer to an unknown, already handled or repeated call.
  • Write tools declare destructiveHint, idempotentHint and openWorldHint. Which tools need the write scope does not change.
  • Descriptions no longer announce fields the tools do not return: endpoint uptime, certificate issuer and expiry, container labels, a stopped container state.

Interface

  • Header menus no longer open behind the sticky toolbar of list pages.

Deployment

  • New guide: deploying on Coolify, with a filtering proxy in front of the Docker socket and basic authentication in Traefik.
  • The Helm chart moves to 1.11.0, the same as the application version.

The full documentation is at docs.maintenant.dev.

Don't miss a new maintenant release

NewReleases is sending notifications on new releases.