Aller au contenu

Authentification : se connecter à SilenceWatch

La connexion à SilenceWatch dépend d’un seul réglage de l’instance, AUTH_MODE. Le mode décide quelles méthodes existent : celles qu’il ne nomme pas n’ont aucun point d’entrée. Les clés d’API et les adresses de heartbeat sont un système à part, que rien de tout cela ne touche. Cette page résume ; le guide complet, en anglais détaille chaque réglage.

AUTH_MODE On se connecte avec À choisir quand
passkey (défaut) Une passkey : empreinte, visage ou code de l’appareil. Des codes de récupération si toutes les passkeys sont perdues N’importe qui peut joindre l’instance et vous ne voulez rien qui se hameçonne ou qui fuite
password Une adresse e-mail et un mot de passe de 12 caractères au moins Une instance privée où les passkeys en demandent plus que l’équipe n’en veut
full Google, Microsoft, ou une passkey ajoutée après la première connexion Les gens ont déjà un compte Google ou Microsoft et vous préférez ne pas détenir d’identifiant pour eux

Toute autre valeur arrête le serveur au démarrage et liste les valeurs valides. En passkey et full, le serveur refuse aussi de démarrer sans https:// (ou localhost), avec un domaine de passkey (AUTH_RP_ID) qui ne correspond pas à BASE_URL, ou en full sans les identifiants des deux fournisseurs.

ADMIN_EMAIL est obligatoire : le serveur ne démarre pas sans. Le compte qui porte cette adresse est celui de l’administrateur, le seul à voir les statistiques de l’instance (Réglages › Statistiques) et son état interne (GET /api/v1/status) ; tout autre compte reçoit 404, et une clé d’API 401.

Il ne peut être créé qu’avec un lien à usage unique, affiché dans le journal du serveur à chaque démarrage tant qu’il n’existe pas, que les inscriptions soient ouvertes ou non : il vaut 30 minutes, une seule fois, pour cette adresse seulement. Pour en obtenir un tout de suite :

Fenêtre de terminal
docker compose exec silencewatch silencewatch create-admin

Les autres comptes se créent librement tant que SIGNUP_ENABLED=true. À false, seul le compte administrateur peut être créé.

Une session dure 30 jours et se prolonge à l’usage. Supprimer le compte, créer ou révoquer une clé d’API, ajouter ou retirer une passkey demandent une connexion de moins de dix minutes : la page vous redemande de vous connecter, puis continue.

Rien de ce qui suit n’est un point d’entrée de l’API : cela se fait sur le serveur.

Mode Situation Que faire
passkey Passkeys perdues, codes de récupération conservés Ils utilisent un code sur la page de connexion
passkey Passkeys et codes perdus cli.js recovery-codes --email … affiche une nouvelle série, une fois
password Mot de passe oublié cli.js reset-password --email …
full Passkey perdue Ils se connectent avec Google ou Microsoft

La même ligne de commande (silencewatch <commande> --email <adresse>, dans le conteneur, par exemple docker compose exec silencewatch silencewatch show --email jane@example.com) répond aux demandes courantes. Lancée sans argument, elle affiche cette liste. L’ancienne forme node packages/server/dist/auth/cli.js fonctionne toujours.

Commande Ce qu’elle fait
show Affiche le compte : plan, abonnement, méthodes de connexion, sessions ouvertes, verrouillage, projets. Ne change rien et n’affiche aucun secret.
create-admin Le lien d’installation à usage unique qui crée le compte administrateur (ADMIN_EMAIL), seul moyen de le créer. Sans --email.
recovery-codes De nouveaux codes de récupération, une seule fois ; les anciens ne marchent plus. AUTH_MODE=passkey uniquement.
reset-password Un nouveau mot de passe aléatoire, une seule fois ; ferme les sessions du compte. AUTH_MODE=password uniquement.
unlock Lève un verrouillage après trop de mots de passe erronés.
end-sessions Déconnecte le compte partout.
disable Ferme la porte à un compte qui ressemble à un abus. Plus aucune connexion, par aucune méthode (mot de passe, passkey, code de récupération, Google ou Microsoft), ses sessions sont fermées et les clés d’API des projets dont il est seul propriétaire sont refusées. Rien n’est supprimé. Ses checks continuent de tourner et d’alerter, et un abonnement Stripe continue d’être facturé : à traiter dans le projet et dans Stripe.
enable Annule disable.
verify-email Marque l’adresse comme vérifiée. Google ne se rattache qu’à un compte dont l’adresse est vérifiée, et un compte créé par passkey n’a rien pour le prouver.
reseal Sans --email. Chiffre la configuration de tous les canaux de notification avec la SECRET_KEY actuelle. Après un changement de SECRET_KEY, lancez-la avec OLD_SECRET_KEY=<l’ancienne valeur>, sinon les canaux sont illisibles. Sans danger si on la relance : elle indique ce qu’elle a chiffré, rechiffré ou laissé.
set-plan --plan <nom> Place le compte sur un plan de PLAN_LIMITS ; --plan none retire les limites. Un compte avec un abonnement Stripe retrouve son plan au prochain événement.

Chaque commande qui modifie quelque chose écrit une ligne operator.change dans le journal d’audit, avec la commande et le compte (jamais un mot de passe ni un code).

Changer AUTH_MODE plus tard ne supprime jamais un compte ; il faut en revanche redonner à chacun un moyen d’entrer. La procédure, mode par mode, est dans le guide complet.