URL: https://linuxfr.org/news/regles-de-perennite-des-comptes-linuxfr-org-donnees-a-caractere-personnel-et-effet-un-an Title: Règles de pérennité des comptes LinuxFr.org, données à caractère personnel et effet un an Authors: Benoît Sibaud Date: 2024-06-01T11:05:13+02:00 License: CC By-SA Tags: linuxfr, linuxfrorg, données_personnelles, rgpd et nettoyage_de_données Score: 3 En février 2023, nous annoncions la mise en place d’une durée de conservation des données à caractère personnel (DCP) sur LinuxFr.org, avec à partir du 28 juin 2023 : - fermeture des comptes inactifs pendant trois ans et suppression de leurs données conservées inutiles au service ; - suppression des données associées inutiles au service pour les comptes fermés depuis plus d’un an. L’aide du site explique : - [Quelles sont les données à caractère personnel (DCP) traitées par le site ?](https://linuxfr.org/aide#aide-dcp) - [Quelles sont les données sans caractère personnel relatives au compte traitées par le site ?](https://linuxfr.org/aide#aide-donneesautres) - [Quelles sont les données inutiles au service qui sont supprimées des comptes fermés ?](https://linuxfr.org/aide#aide-donneesinutiles) Depuis [le 31 mai 2023](https://linuxfr.org/suivi/pouvoir-determiner-si-un-compte-a-eu-de-l-activite-recemment), une information de date de dernière activité est associée à chaque compte. Ajoutons que depuis [septembre 2023](https://github.com/linuxfrorg/linuxfr.org/commit/36353241732244ca873c7fce9b72891a98c882f9) l’accès à cette information est aussi réduite au besoin du service (on peut connaître l’info de son propre compte ; les admins ont seulement besoin de savoir si la dernière activité date de moins d’un mois, d’un an, trois ans ou plus, en raison des règles précitées). Nous voici donc un an après, et cette partie de la règle s’applique donc pour la première fois. Nous détaillerons les effets dans la seconde partie de la dépêche. ---- [Règles de pérennité des comptes LinuxFr.org et données à caractère personnel (dépêche février 2023)](https://linuxfr.org/news/regles-de-perennite-des-comptes-linuxfr-org-et-donnees-a-caractere-personnel) [Aide du site pour connaître les données à caractère personnel (ou sans) des comptes](https://linuxfr.org/aide) ---- # Script de minimisation des données et semaine normale La suppression des données inutiles au service repose actuellement sur un script de minimisation externe, lancé manuellement. Une des raisons de l’aspect manuel est notamment le fait que l’on n’avait pas encore passé la première année, qui marque un seuil comme nous le verrons plus tard. La précédente exécution du script ayant eu lieu le 19 mai 2024 à 11h (Paris), voyons ce que ça donne sur 12 jours et quelques heures : ``` Started at vendredi 31 mai 2024, 22:19:15 (UTC+0200) Dry run mode 13 inactive accounts never used to purge 0 users to minimize 0 accounts to minimize because inactive and not seen since 1 year 0 active accounts not seen since 3 years to inactivate and minimize 12 users without comments/contents to purge 12 accounts to purge 6 logs to purge 12 friendly_id_slugs to purge 0 taggings to purge 0 oauth_access_grants for an oauth_application to purge 0 oauth_access_tokens for an oauth_application to purge 0 oauth_applications to purge 0 oauth_access_grants to purge 0 oauth_access_tokens to purge 0 deleted comments to minimize 0 comments from non-public contents to purge 0 taggings from non-public contents to purge 0 wiki_versions from non-public wiki_pages to purge 0 slugs from non-public wiki_pages to purge 0 non-public wiki_pages to purge 0 slugs from non-public trackers to purge 0 non-public trackers to purge 0 slugs from non-public posts to purge 0 non-public posts to purge 0 poll_answers to from non-public polls to purge 0 slugs from non-public polls to purge 0 non-public polls to purge 0 slugs from non-public bookmarks to purge 0 non-public bookmarks to purge 0 slugs from non-public diaries to purge 0 diaries converted into non-public news to purge 0 non-public diaries to purge 1 news_versions from non-public news to purge 10 paragraphs from non-public news to purge 0 links from non-public news to purge 1 slugs from non-public news to purge 1 non-public news to purge 1 non-public contents to purge ``` En fonctionnement pré-« 1 an », on a seulement quelques comptes créés mais jamais utilisés à nettoyer (ainsi que tout ce qui y est associé, donc les comptes « accounts », les individus « users », les logs associés « logs » s’il y en a, les raccourcis pour les adresses du site « slugs ») et les contenus, commentaires et étiquetages associés non publics donc non visibles qui ne sont plus nécessaires. On parle donc d’une poignée de comptes et autres par semaine. # Effet « 1 an » Quelques heures plus tard, le résultat n’est plus du tout le même : ``` Started at Sat Jun 1 10:55:34 CEST 2024 Dry run mode 15 inactive accounts never used to purge 250 users to minimize 2616 accounts to minimize because inactive and not seen since 1 year 0 active accounts not seen since 3 years to inactivate and minimize 1412 users without comments/contents to purge 1412 accounts to purge 2285 logs to purge 1412 friendly_id_slugs to purge 6 taggings to purge 0 oauth_access_grants for an oauth_application to purge 0 oauth_access_tokens for an oauth_application to purge 0 oauth_applications to purge 15 oauth_access_grants to purge 47 oauth_access_tokens to purge 147 deleted comments to minimize 98 comments from non-public contents to purge 288 taggings from non-public contents to purge 0 wiki_versions from non-public wiki_pages to purge 0 slugs from non-public wiki_pages to purge 0 non-public wiki_pages to purge 0 slugs from non-public trackers to purge 0 non-public trackers to purge 166 slugs from non-public posts to purge 165 non-public posts to purge 10 poll_answers to from non-public polls to purge 2 slugs from non-public polls to purge 2 non-public polls to purge 46 slugs from non-public bookmarks to purge 46 non-public bookmarks to purge 27 slugs from non-public diaries to purge 0 diaries converted into non-public news to purge 27 non-public diaries to purge 139 news_versions from non-public news to purge 1278 paragraphs from non-public news to purge 33 links from non-public news to purge 66 slugs from non-public news to purge 61 non-public news to purge 301 non-public contents to purge ``` On a certes gagné 2 comptes jamais utilisés de plus à nettoyer, mais surtout on va minimiser plusieurs milliers de comptes et supprimer ou minimiser des centaines de contenus, commentaires et étiquetages. C’est le moment où la main ne doit pas trembler et où l’on doit avoir confiance dans le script de nettoyage et dans nos sauvegardes de la base de données, parce qu’il va falloir l’exécuter pour de vrai, et pas juste en mode « dry run » ou répétition, test à vide. En pratique, quelques soucis très mineurs rencontrés sur la grosse transaction faite en base de données : un problème d’ordre de suppression et l’impossibilité de mettre une chaîne vide pour l’adresse de courriel, car il y a un index dessus qui demande l’unicité (une adresse `.invalid` propre à chaque compte sera donc utilisée). Après l’exécution, si on relance le script, on se retrouve juste avec le nombre de comptes encore ouverts mais sans activité depuis un an : ``` Started at Sat Jun 1 13:30:16 CEST 2024 Dry run mode 0 inactive accounts never used to purge 0 users to minimize 905 accounts to minimize because inactive and not seen since 1 year (…) ``` # Ça change quoi ? Regardons les statistiques des comptes avant et après le nettoyage « 1 an » (les évolutions ont été mises en visibilité avec un point rouge) : ![Avant/après sur les statistiques des comptes](https://linuxfr.org/images/historique/images_perdues/regles-de-perennite-des-comptes-linuxfr-org-donnees-a-caractere-personnel-et-effet-un-an-statistiques.png) Interprétation : il s’agit des états des comptes par ordre d’identifiant en base de données (temporellement dans l’ordre de création), regroupés par paquets de 10 000 consécutifs. Quasiment pas de modification sur les comptes très anciens (il y en a beaucoup moins), et les changements se concentrent sur les comptes des dernières années. On a moins de comptes fermés après (on a pu en purger) et donc plus de comptes purgés (c’est-à-dire d’identifiants qui ne sont plus utilisés en base). Et le reste des changements correspond aux visites nominales du site. On peut comparer les statistiques juste avant : > 53667 utilisatrices et utilisateurs ayant ou ayant eu des comptes (et encore présents en base de données) > 33216 comptes > 2205 comptes utilisés sur le site au cours des trois derniers mois avec 20.2 jours de moyenne sans visite et 25.3 jours d’écart‑type > 10 comptes en attente > 2809 comptes fermés Et les actuelles (au moment de la rédaction de cet article) : > 51943 utilisatrices et utilisateurs ayant ou ayant eu des comptes (et encore présents en base de données) > 31492 comptes > 2208 comptes utilisés sur le site au cours des trois derniers mois avec 20.0 jours de moyenne sans visite et 25.3 jours d’écart‑type > 1 compte en attente > 1089 comptes fermés Nous avons aussi réoptimisé les tables de la base de données (enfin on a dit à la base d’optimiser ce qu’elle pouvait avec un _OPTIMIZE TABLE_ quoi). Ça devrait avoir entre une absence d’effet et un effet imperceptible sur les performances, a priori. Et côté sauvegarde, on est passé d’un _dump_ compressé gzip de 2 088 253 834 octets avant à 2 086 608 391 octets après, soit un gain faramineux de 0,08 %, bref rien. # Et après ? Une fois « 1 an » passé, on aura chaque semaine les quelques comptes créés mais jamais utilisés à nettoyer, ainsi que les quelques contenus, commentaires et étiquetages associés non publics non nécessaires. Mais aussi les comptes qui auront atteint l’année d’inactivité dans la semaine courante (probablement une ou deux dizaines). Et ce jusqu’aux « 3 ans ». À partir des « 3 ans », on va commencer à fermer des comptes et il y aura encore plus de données concernées chaque semaine. Et ensuite on aura atteint le rythme nominal de fermeture de comptes et de minimisation de données associées. Rendez-vous pour les « 3 ans » en juin 2026 donc.