SecuAAS Docs
SecuMon

Status pages

Publish a public status page: slug, components, visibility, custom domain, badges and RSS feed.

What it's for

A status page communicates the state of your services to your users. It is publicly accessible via a slug (e.g. status.secumon.secuaas.dev/web-prod), shows the state of your components and the incident history. You manage it from the portal or the API, and your visitors consult it without authentication.

The status page model

FieldTypeRequiredDescription
iduuid(generated)Unique identifier.
slugstringURL identifier (web-prod).
titlestringDisplayed title.
descriptionstringPage description.
custom_domainstringCustom domain (status.my-company.com).
logo_urlstringURL of a logo.
custom_cssstringCustom CSS.
is_publicbooleanPage publicly accessible. Default: true.
show_history_daysintegerHistory depth displayed. Default: 90.
componentsJSON arrayTracked components (initialized to []).
created_at / updated_atdate(managed)Timestamps.

A component's state takes one of the values: operational, degraded, partial_outage, major_outage, maintenance.

Using it from the portal

The Status pages section lists your pages. You can create a page (slug, title, visibility), edit its appearance and components, and delete it. Once published and public, it is viewable by your users.

Listing and viewing: all roles. Create, edit, delete: owner and admin.

Using it through the API (management)

List

GET /api/v2/status-pages

curl -s https://api.secumon.secuaas.ovh/api/v2/status-pages \
  -H "Authorization: Bearer $SECUMON_TOKEN"
{
  "count": 1,
  "status_pages": [
    {
      "id": "abcd1234-5678-4abc-9def-0011aabbccdd",
      "slug": "web-prod",
      "title": "Web services status",
      "is_public": true,
      "show_history_days": 90
    }
  ]
}

Create

POST /api/v2/status-pagesslug and title required.

curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/status-pages \
  -H "Authorization: Bearer $SECUMON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "web-prod",
    "title": "Web services status",
    "description": "Availability of our production web services.",
    "is_public": true,
    "show_history_days": 90
  }'

Response: 201 Created with the page.

View, edit, delete

# Detail
curl -s https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
  -H "Authorization: Bearer $SECUMON_TOKEN"

# Edit (partial fields)
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
  -H "Authorization: Bearer $SECUMON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Status — Web Services", "show_history_days": 60 }'

# Delete
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/status-pages/abcd1234-5678-4abc-9def-0011aabbccdd \
  -H "Authorization: Bearer $SECUMON_TOKEN"

Deletion returns 204 No Content.

Public pages (consultation)

Once a page is created with is_public: true, it is served publicly, without a token, via its slug:

  • Page: GET /status/<slug> — returns the page (JSON, or a redirect to the web display if the browser requests HTML).
  • Public API: GET /status/<slug>/api — always JSON.
  • Badge: GET /status/<slug>/badge/<component> — an SVG badge (shields.io compatible) reflecting a component's state.
  • RSS feed: GET /status/<slug>/rss — recent incidents in RSS 2.0 format.
# Example: SVG badge of the "api" component
curl -s https://api.secumon.secuaas.ovh/status/web-prod/badge/api

These public routes are not under /api/v2 and require no authentication: they are intended for your visitors.

Use cases

  • Incident communication: show in real time the degraded state of a service and the incident history to your customers.
  • Badge in a README: embed a component's SVG badge in your documentation or repository.
  • RSS subscription: let your users follow incidents through a feed reader.

Tips

  • Set is_public: false while the page is being prepared: it then stays invisible to the public (the public routes return a refusal).
  • Choose a short, stable slug: it becomes the page's public URL.
  • Adjust show_history_days according to what you want to expose (30, 60 or 90 days of history).

On this page