Journal d'audit
Journal d'audit
Chinaski conserve plusieurs pistes côte à côte : une piste d'audit de qui a changé quoi, un journal d'événements opérationnel, un journal d'authentification, plus les logs de build et l'historique des réglages. Réservé aux admins dans tous les cas, donc tout ce qui suit est pour les administrateurs du site.
La piste d'audit
Chaque mutation de contenu (créer, mettre à jour ou supprimer des pages, posts, blocks, documents, catégories, media, thèmes, utilisateurs, réglages, formulaires, nav items, et plus) est enregistrée avec l'acteur (le nom d'utilisateur connecté), l'action, le type et l'ID d'entité, une courte ligne de détail et un timestamp. Les opérations de backup (restore, push, erreurs) y apparaissent aussi.
Vous pouvez la parcourir sous l'entrée d'audit dans la zone admin. Les entrées sont paginées cinquante à la fois, et vous pouvez faire une recherche en texte libre sur les détails et les noms, ou filtrer par acteur, action, type d'entité, ID d'entité, ou toute combinaison. La page montre aussi l'âge de la plus ancienne entrée, c'est-à-dire combien d'historique vous avez réellement. Un export CSV télécharge l'ensemble actuellement filtré.
Limites honnêtes : la piste d'audit enregistre ce qui s'est passé mais n'est pas un coffre à l'épreuve des falsifications. C'est une simple table dans la base de données. Le texte de détail de plus de 4000 caractères est tronqué.
Le journal d'événements
Les messages opérationnels (avertissements, erreurs, notices) atterrissent dans le journal d'événements. Il est affiché sur la page Health dans la zone admin, paginé cinquante à la fois avec un filtre de niveau : avertissements plus erreurs, ou erreurs seulement.
Effacez-le librement quand il devient bruyant : un contrôle sur la page Health supprime les entrées de plus de 30 jours par défaut, ou tout si vous le choisissez. Effacer le journal est lui-même consigné dans la piste d'audit, donc le nettoyage n'est pas invisible.
Journal d'authentification
L'issue de chaque tentative de connexion, succès, échec ou blocage (compte suspendu ou lockout IP), est enregistrée avec le nom d'utilisateur, l'adresse IP et le timestamp.
- Une vue par utilisateur (l'historique de connexion de n'importe quel compte) vit sur la page de chaque utilisateur dans la zone admin.
- La page Health montre les 100 dernières entrées d'authentification.
- Les échecs répétés depuis une même IP déclenchent des lockouts croissants : 60 secondes après 5 échecs consécutifs, 5 minutes après 10, et 30 minutes après 20. Des taux d'échec soutenus lèvent une alerte dans le journal d'événements.
Rétention
Les anciennes entrées sont élaguées automatiquement de façon continue, environ toutes les 15 minutes :
| Piste | Conservé |
|---|---|
| Piste d'audit | les 50 000 dernières entrées |
| Journal d'authentification | les 10 000 dernières entrées |
| Journal d'événements | les 5 000 dernières entrées |
| Révisions de réglages | les 50 derniers snapshots |
| Journal de build | les ~100 derniers builds terminés |
Les tokens de réinitialisation de mot de passe expirent au bout de 7 jours, et les sessions utilisateur expirées sont nettoyées. Si vous avez besoin que des enregistrements survivent à cette rétention, utilisez l'export CSV ou un journal de sécurité externe (ci-dessous) avant que les entrées ne défilent.
Historique des réglages
Chaque sauvegarde dans les réglages snapshotte tous les réglages non secrets vers un historique de révisions avant l'écriture. Vous pouvez consulter et restaurer depuis les derniers snapshots sur l'onglet Settings → History. Les valeurs secrètes (mot de passe SMTP, secrets de webhook, client secret SSO, clé Turnstile, secret Spaces) sont exclues des snapshots ; elles sont toujours stockées chiffrées et n'apparaissent jamais en clair dans l'historique.
Journal de sécurité structuré
À des fins d'analyse forensique, Chinaski émet aussi des lignes JSON structurées pour les événements de sécurité à fort signal : succès de connexion, échec de connexion, lockout et suspension de connexion, connexion SSO, effacements de session périmée, rate limiting d'inscription, et activations de honeypot. Ceux-ci vont dans votre journal système (journald sur une installation systemd standard : journalctl -u chinaski@1 pour les lire).
Si vous définissez la destination du journal de sécurité (Settings → Security) vers un chemin de fichier, ces événements sont également ajoutés là : JSON séparé par des retours à la ligne, fichier en mode 0600 : de sorte qu'un enregistrement survit même si la base de données elle-même est compromise. Pointez-le vers un emplacement exclu de tout nettoyage automatisé du répertoire de l'instance si cette durabilité compte pour vous.