INOWATCH surveille ce qui doit tourner. Deux surfaces se branchent depuis l'extérieur de CONTROL :
curl
Tout se lit dans CONTROL : https://plateforme.inovertix.com/inowatch.
https://plateforme.inovertix.com/inowatch
Un moniteur demande « réponds-tu ? ». Un heartbeat attend qu'on lui dise « j'ai tourné ».
C'est la seule façon de détecter une tâche morte : une tâche morte n'émet aucune erreur. Elle ne remplit aucun journal, ne déclenche aucun webhook, ne fait rien remonter. Elle disparaît, et on s'en aperçoit trois semaines plus tard en cherchant pourquoi une sauvegarde manque.
Déclarer la tâche — /inowatch/heartbeats → « Brancher une tâche externe ». Un nom, une cadence attendue (5 min, 1 h, 1 jour…). Une grâce de 5 minutes s'ajoute d'office : sur un hébergement mutualisé, « toutes les heures » veut dire « à peu près ».
/inowatch/heartbeats
Copier la ligne — elle s'affiche aussitôt, clé comprise. Elle reste consultable depuis la fiche (bouton « terminal »).
&&
curl -fsS -X POST 'https://messagerie.inovertix.com/api/inowatch/beat/mon-slug' \ -H 'X-Beat-Key: INOWTC_HB_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' >/dev/null
Vérifiez tout de suite : l'état de la tâche doit passer à « Actif » dans les secondes qui suivent.
cron.md
docker.md
laravel.md
api.md
&&, jamais ;. Avec &&, le battement ne part que si la tâche a réussi — un échec devient donc un silence, et INOWATCH le signale. Avec ;, il partirait quand même, et une tâche qui échoue tous les jours passerait pour parfaitement saine.
;
La clé n'autorise qu'une chose : dire « j'ai tourné ». Ni lecture, ni écriture, ni accès à quoi que ce soit d'autre dans CONTROL. C'est pourquoi elle est acceptée en paramètre d'URL (?k=…) pour les panneaux de cron qui n'offrent qu'un champ « URL à appeler ».
?k=…
-fsS dans la commande curl : -f fait échouer sur une erreur HTTP, -s silencieux, -S affiche quand même l'erreur. C'est ce qui fait remonter un problème de clé dans les logs du cron au lieu de le laisser passer inaperçu.
-fsS
-f
-s
-S
Signaler un échec sans perdre la preuve de vie : ?failed=1. La tâche est comptée comme vivante, mais l'interface affiche « dernière exécution en erreur ». Deux informations distinctes, toutes deux utiles.
?failed=1
Rythme. 60 battements par minute et par tâche au maximum — largement au-dessus de tout usage légitime.
curl -sS -X POST 'https://messagerie.inovertix.com/api/inowatch/beat/mon-slug' \ -H 'X-Beat-Key: INOWTC_HB_…'
{"ok":true,…}
missing_api_key
malformed_api_key
wrong_module_key
invalid_api_key
site_inactive
invalid_api_key couvre volontairement deux cas : une clé inventée, et une tâche qui n'existe pas. Les distinguer transformerait l'endpoint en annuaire — à partir d'une clé quelconque, on pourrait énumérer les tâches surveillées de CONTROL, donc déduire lesquelles ne le sont pas.
Rien à intégrer : /inowatch/pages-statut → composer → copier le lien.
/inowatch/pages-statut
https://plateforme.inovertix.com/status/mon-client
Aucune authentification, noindex, cache de 60 secondes. La page n'expose que le nom des services, leur état, la disponibilité sur 90 jours et la durée des interruptions — jamais une URL, jamais un code d'erreur, jamais un identifiant interne.
noindex