Un plugin pour supprimer les logs trop vieux

Bonjour,
Je viens de créer rapidement un plugin afin de supprimer les entrées trop anciennes dans les logs. En effet, ces entrées qui ne sont à priori pas nettoyées, à moins d’être écrasées par de nouvelles entrées, peuvent être relativement anciennes, ce qui pose problème car elles sont accompagnées d’adresses IP qui sont des données personnelles. Si l’on veut respecter le RGPD à la lettre, il convient donc de nettoyer les fichiers de log régulièrement des entrées anciennes. J’ai regardé les différents articles disponibles sur le sujet des logs et je n’ai rien vu qui permette de nettoyer les logs des anciennes entrées tout en conservant les entrées les plus récentes respectant une durée de conservation fixée. Bref, j’ai développé un petit plugin pour le faire.
Ma question est la suivante : est-ce que je mets ce plugin à disposition sur le Git SPIP ou est-ce inutile car ce type de développement est déjà prévu et je serais passé à côté ?
Bonne journée les dev !

3 « J'aime »

Finalement, je l’ai placé ici : spip-contrib-extensions / NettoieLogs · GitLab ; si certains peuvent tester et me faire un retour, je vous remercie.

Cf La CNIL publie une recommandation relative aux mesures de journalisation | CNIL

Pour la durée par défaut, je me demande s’il vaudrait pas mieux 6 mois… (du moins si c’était par défaut dans SPIP, car quelqu’un⋅e qui fait le choix de l’installer comme plugin saura probablement ce qu’il veut pour cette durée).

Mais surtout, j’ai l’impression que ton code confonds la « durée max de rétention des logs » (le $delais configuré et utilisé par genie_nettoielogs_dist) et la « périodicité du ménage fait » (que taches_generales_cron spécifie pour la gestion du cron). Cette périodicité du cron devrait être plus courte : un jour, une semaine ou un mois par exemple, et pas nécessairement configurable, ou par define par exemple.

Bonjour et merci pour ce lien vers la CNIL,

Concernant la durée du cron, c’est mal codé comme tu l’indiques (un mélange de développement initial dans lequel je pensais laisser les admins fixer la durée du cron avec la fin du dév où je voulais fixer 7 jours et je ne suis pas revenu sur le code).
Je vais donc procéder de la façon suivante et simplifier en suivant les recommandations de la CNIL, à savoir une conservation minimale de 6 mois, 12 mois maximum pour des logs que l’on peut considérer comme « standards » : je vais fixer par défaut 6 mois, les options 9 mois et 12 mois seront proposées, le cron tournera tous les 7 jours avec suppression des logs datant de moins de 6 mois moins 7 jours, 9 mois moins 7 jours ou 12 mois moins 7 jours selon la durée de conservation choisie.
Je pousse ça sur le Git dans la matinée.

A+, Olivier.