Gardes (on-call)
Définissez qui est de service et quand : plannings de rotation, membres, dérogations et garde courante.
À quoi ça sert
Une garde (on-call) détermine qui doit être notifié à un instant donné. Vous définissez un planning de rotation : une liste de membres qui se relaient selon un rythme (par ex. hebdomadaire), dans un fuseau horaire donné, avec d'éventuelles dérogations ponctuelles. Les politiques d'alerte s'appuient sur la garde courante pour router les notifications vers la bonne personne.
Le modèle d'un planning
| Champ | Type | Requis | Description |
|---|---|---|---|
id | uuid | (généré) | Identifiant unique. |
name | string | ✅ | Nom du planning (Astreinte web). |
timezone | string | — | Fuseau horaire. Défaut : America/Toronto. |
rotation_type | string | — | Type de rotation. Défaut : weekly. |
members | tableau JSON | — | Membres de la rotation, dans l'ordre. Défaut : []. |
overrides | tableau JSON | — | Dérogations ponctuelles (remplacements). Défaut : []. |
Utilisation via le portail
La section On-call affiche la garde courante (« On-Call Now ») et la liste de vos plannings. Vous pouvez créer, éditer et supprimer un planning, définir l'ordre des membres et ajouter des dérogations.
Lister et consulter : tous les rôles. Créer, éditer, supprimer :
owneretadmin.
Utilisation via l'API
Lister les plannings
GET /api/v2/oncall-schedules
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall-schedules \
-H "Authorization: Bearer $SECUMON_TOKEN"[
{
"id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff",
"name": "Astreinte web",
"timezone": "America/Toronto",
"rotation_type": "weekly"
}
]Créer un planning
POST /api/v2/oncall-schedules — name requis. Les valeurs par défaut
(timezone: America/Toronto, rotation_type: weekly, members: [],
overrides: []) s'appliquent si vous les omettez.
curl -s -X POST https://api.secumon.secuaas.ovh/api/v2/oncall-schedules \
-H "Authorization: Bearer $SECUMON_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Astreinte web",
"timezone": "America/Toronto",
"rotation_type": "weekly",
"members": [
{ "name": "Alice", "email": "alice@example.com" },
{ "name": "Bob", "email": "bob@example.com" }
]
}'Réponse : 201 Created avec le planning.
Consulter un planning (avec la garde courante)
GET /api/v2/oncall-schedules/:id renvoie le planning et le membre
actuellement de garde.
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall-schedules/5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff \
-H "Authorization: Bearer $SECUMON_TOKEN"{
"schedule": { "id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff", "name": "Astreinte web", "...": "..." },
"current_oncall": { "name": "Alice", "email": "alice@example.com" }
}Modifier et supprimer
# Modifier
curl -s -X PUT https://api.secumon.secuaas.ovh/api/v2/oncall-schedules/5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff \
-H "Authorization: Bearer $SECUMON_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Astreinte web",
"timezone": "America/Toronto",
"rotation_type": "weekly",
"members": [ { "name": "Alice", "email": "alice@example.com" } ]
}'
# Supprimer
curl -s -X DELETE https://api.secumon.secuaas.ovh/api/v2/oncall-schedules/5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff \
-H "Authorization: Bearer $SECUMON_TOKEN"La modification et la suppression renvoient 204 No Content.
Garde courante de tous les plannings
GET /api/v2/oncall/current renvoie, pour chaque planning, le membre de garde
au moment de l'appel.
curl -s https://api.secumon.secuaas.ovh/api/v2/oncall/current \
-H "Authorization: Bearer $SECUMON_TOKEN"[
{
"schedule_id": "5b4a3c2d-aaaa-4bbb-9ccc-ddddeeeeffff",
"schedule_name": "Astreinte web",
"on_call": { "name": "Alice", "email": "alice@example.com" }
}
]Cas d'usage
- Rotation hebdomadaire : alterner l'astreinte entre membres d'une équipe, chacun couvrant une semaine.
- Remplacement ponctuel : utiliser
overridespour couvrir une absence (congé, déplacement) sans modifier la rotation de base. - Tableau d'astreinte : afficher
GET /oncall/currentpour savoir en un coup d'œil qui est joignable maintenant.
Astuces
- Renseignez le bon
timezone: la rotation et les dérogations sont calculées dans ce fuseau, ce qui évite les confusions horaires. - Couplez la garde à une politique d'alerte pour que les notifications atteignent automatiquement la personne de service.
- Vérifiez
current_oncallaprès une modification de la rotation pour confirmer que la bonne personne est désormais de garde.