Nullify
Sécurisé. Transparent. Nullifié.
Nullify est une plateforme open source et modulaire de conservation, de suppression et de gouvernance du cycle de vie des données. Elle fournit un cadre centralisé pour découvrir les données, évaluer les politiques de conservation, exécuter des actions de cycle de vie contrôlées et maintenir des enregistrements d'audit vérifiables sur des environnements de données distribués.
Nullify est conçu autour d'une architecture axée sur les spécifications. Les modules de base fournissent les capacités fondamentales nécessaires à la gouvernance du cycle de vie des données, tandis que les modules d'extension optionnels enrichissent Nullify avec des connecteurs supplémentaires, des cadres de conformité, de l'intelligence, des intégrations, des systèmes de stockage et des capacités de déploiement.
Spécification
Nullify définit une architecture open source pour la gestion centralisée du cycle de vie des données.
La spécification repose sur plusieurs principes :
- Coordination centralisée des politiques
- Prise en charge de sources de données distribuées
- Conservation et suppression pilotées par les politiques
- Autorisation et approbation explicites
- Workflows de simulation (dry-run) et de validation
- Audit immuable et vérifiable
- Lignage et provenance des données
- Connecteurs et intégrations modulaires
- Supervision humaine pour les opérations destructives
- Exécution sécurisée par défaut
- Architecture neutre vis-à-vis des fournisseurs
- Déploiement local, cloud, hybride et fédéré
- Architecture de plugins extensible
- Évaluation transparente des politiques
- Décisions de cycle de vie reproductibles
Nullify n'exige pas que les organisations migrent leurs données vers un référentiel centralisé propriétaire. Le système coordonne plutôt les politiques et les actions de cycle de vie sur les environnements de données existants.
Architecture
Nullify est divisé en deux couches architecturales principales :
- Modules de base
- Modules d'extension optionnels
Les modules de base contiennent les fonctionnalités fondamentales nécessaires au fonctionnement de Nullify. Les plugins optionnels fournissent des fonctionnalités spécialisées sans rendre la plateforme de base dépendante d'une base de données, d'un fournisseur cloud, d'un cadre de conformité, d'un système d'IA, d'une plateforme de notification ou d'un environnement d'infrastructure particulier.
Architecture de base
Le flux de cycle de vie principal est :
Découverte → Classification → Évaluation des politiques → Approbation → Planification → Exécution → Vérification → Audit
Chaque étape est représentée par un module de base maintenable de manière indépendante.
Modules de base
1. Module de découverte de données
Le module de découverte de données identifie et inventorie les ressources de données gérées par Nullify.
Les fonctionnalités comprennent :
- Enregistrement des sources de données
- Découverte des ressources
- Inventaires des ensembles de données et des objets
- Collecte des métadonnées
- Métadonnées de propriété des données
- Horodatages de création et de modification
- Métadonnées d'accès
- Suivi de l'emplacement de stockage
- Suivi de l'état des ressources
- Surveillance de la santé des sources de données
- Planification de la découverte
Le module fournit l'inventaire requis par les politiques de cycle de vie en aval sans exiger que les données sous-jacentes soient copiées dans Nullify.
2. Module de classification des données
Le module de classification des données attribue des métadonnées structurées aux ressources découvertes.
Les fonctionnalités comprennent :
- Attribution de catégories de données
- Classification de sensibilité
- Classification des données personnelles (PII)
- Classification des données financières
- Classification des données de santé
- Classification interne et publique
- Classifications définies par l'utilisateur
- Niveau de confiance de la classification
- Historique des classifications
- Classification manuelle
- Remplacements de classification
Les résultats de classification deviennent des entrées du processus d'évaluation des politiques.
3. Module de moteur de politiques
Le moteur de politiques est le composant central de prise de décision de Nullify.
Les fonctionnalités comprennent :
- Politiques de conservation
- Politiques de suppression
- Politiques d'archivage
- Politiques d'anonymisation
- Règles de conservation légale (legal hold)
- Règles d'exception
- Priorités des politiques
- Héritage des politiques
- Versioning des politiques
- Activation et expiration des politiques
- Simulation de politiques
- Détection de conflits entre politiques
- Validation des politiques
- Retour arrière des politiques
Les politiques doivent être déclaratives et lisibles par machine.
Nullify devrait prendre en charge plusieurs formats de politiques tout en maintenant un modèle de politique interne normalisé.
4. Module de décisions de cycle de vie
Le module de décisions de cycle de vie convertit les évaluations de politiques en décisions explicites de cycle de vie.
Les décisions prises en charge comprennent :
- Conserver
- Examiner
- Archiver
- Anonymiser
- Supprimer
- Conservation légale
- Exception
- Différer
Chaque décision doit contenir suffisamment de métadonnées pour expliquer :
- Quelle décision a été prise
- Quelle ressource a été affectée
- Quelle politique a produit la décision
- Quelle version de politique a été utilisée
- Quand la décision a été créée
- Quand la décision doit être exécutée
- Si une approbation est requise
5. Module d'approbation et de supervision humaine
Nullify ne doit pas supposer que chaque opération destructive peut être entièrement automatisée.
Le module d'approbation fournit une supervision humaine contrôlée.
Les fonctionnalités comprennent :
- Files d'approbation
- Approbation multi-personnes
- Approbation basée sur les rôles
- Délégation d'approbation
- Expiration des approbations
- Workflows de rejet
- Workflows d'escalade
- Blocages d'urgence
- Remplacements manuels
- Historique des approbations
Les organisations peuvent configurer quelles actions nécessitent une approbation humaine et lesquelles peuvent s'exécuter automatiquement.
6. Module de planification
Le module de planification gère le moment où les actions de cycle de vie se produisent.
Les fonctionnalités comprennent :
- Suppression planifiée
- Archivage planifié
- Anonymisation planifiée
- Traitement par lots
- Files de priorité
- Fenêtres de maintenance
- Planification tenant compte des ressources
- Nouvelle tentative planifiée
- Exécution tenant compte des dépendances
- Équilibrage de la charge de travail
- Limitation de l'exécution
La planification doit séparer la décision d'effectuer une action de l'exécution réelle de cette action.
7. Module d'exécution des actions
Le module d'exécution des actions effectue les opérations de cycle de vie approuvées sur les sources de données enregistrées.
Les actions de cycle de vie prises en charge comprennent :
- Supprimer
- Archiver
- Anonymiser
- Masquer (redact)
- Mettre en quarantaine
- Déplacer
- Expirer
- Révoquer l'accès
Les fonctionnalités comprennent :
- Exécution en mode simulation (dry-run)
- Validation avant exécution
- Confirmation d'exécution
- Opérations tenant compte des transactions lorsque c'est pris en charge
- Gestion des nouvelles tentatives
- Détection des échecs
- Suivi des échecs partiels
- État d'exécution
- Reçus d'exécution
- Exécution idempotente
- Contrôles d'exécution sécurisés
Les actions destructives doivent nécessiter une autorisation explicite conformément à la politique configurée.
8. Module de vérification
Le module de vérification confirme si les actions de cycle de vie ont été menées à bien.
Les fonctionnalités comprennent :
- Vérification de la suppression
- Vérification de l'archivage
- Vérification de l'anonymisation
- Confirmation de la source
- Vérification des réplicas
- Vérification des nouvelles tentatives
- Détection des actions échouées
- Détection des données résiduelles
- Rapports de vérification
La vérification doit distinguer entre :
- Demandé
- Autorisé
- Planifié
- Exécuté
- Vérifié
- Échoué
- Partiellement terminé
9. Module d'audit et de preuve
Le module d'audit et de preuve enregistre le cycle de vie complet de chaque action système importante.
Les fonctionnalités comprennent :
- Événements d'audit immuables
- Intégrité cryptographique des événements
- Enregistrements des décisions de politique
- Enregistrements d'approbation
- Enregistrements d'exécution
- Enregistrements de vérification
- Enregistrements d'activité des utilisateurs
- Historique de la configuration
- Historique des politiques
- Export d'audit
- Paquets de preuve
- Enregistrements de chaîne de garde
Les enregistrements d'audit doivent permettre de reconstituer pourquoi une décision de cycle de vie a eu lieu et ce qui s'est passé ensuite.
10. Module de lignage des données
Le module de lignage des données suit les relations entre les ressources de données.
Les fonctionnalités comprennent :
- Lignage source
- Lignage destination
- Lignage de transformation
- Relations de copie
- Relations de réplication
- Relations de données dérivées
- Relations parent-enfant
- Historique des mouvements de données
- Propagation du cycle de vie
Le lignage permet à Nullify d'identifier les ressources connexes qui peuvent également nécessiter une conservation, un archivage, une anonymisation ou une suppression.
11. Module de contrôle d'accès
Le module de contrôle d'accès protège les opérations administratives et de cycle de vie.
Les fonctionnalités comprennent :
- Contrôle d'accès basé sur les rôles (RBAC)
- Contrôle d'accès basé sur les attributs (ABAC)
- Gestion des permissions
- Permissions au niveau des ressources
- Permissions au niveau des actions
- Permissions d'approbation
- Séparation administrative
- Gestion des sessions
- Intégration de l'authentification
- Audit de l'autorisation
Les opérations destructives doivent utiliser une autorisation de moindre privilège.
12. Module de notification
Le module de notification fournit des notifications système et de cycle de vie.
Les fonctionnalités comprennent :
- Alertes de violation de politique
- Alertes d'échec d'exécution
- Notifications d'approbation
- Notifications d'actions planifiées
- Échecs de vérification
- Échecs de source de données
- Alertes de conformité
- Notifications administratives
Le module de base doit exposer une interface de notification tandis que les mécanismes de livraison restent remplaçables.
13. Module API
Le module API fournit un accès programmatique à Nullify.
Les fonctionnalités comprennent :
- API REST
- API GraphQL
- Authentification
- Autorisation
- Gestion des ressources
- Gestion des politiques
- Gestion du cycle de vie
- Requêtes d'audit
- Rapports
- Gestion des plugins
- Opérations administratives
Les API doivent exposer des interfaces versionnées stables.
14. Module de tableau de bord
Le tableau de bord fournit l'interface administrative principale.
Les fonctionnalités comprennent :
- Inventaire des données
- État de conservation
- Actions en attente
- État des politiques
- Files d'approbation
- État d'exécution
- État de vérification
- Historique d'audit
- Conflits de politiques
- Indicateurs de conformité
- Santé du système
- État des plugins
Le tableau de bord doit offrir une visibilité sans exiger que les utilisateurs interagissent directement avec les bases de données ou les systèmes d'exécution sous-jacents.
15. Module de rapports
Le module de rapports convertit les données de cycle de vie en rapports opérationnels et de conformité.
Les fonctionnalités comprennent :
- Rapports de conservation
- Rapports de suppression
- Rapports de politiques
- Rapports d'audit
- Rapports d'exceptions
- Rapports de conservation légale
- Rapports d'exécution
- Rapports de vérification
- Rapports d'inventaire des données
- Paquets de preuve de conformité
Les formats d'exportation pris en charge doivent comprendre :
- JSON
- CSV
- PDF
- Formats de preuve structurés lisibles par machine
16. Module multi-tenant
Le module multi-tenant permet à Nullify de fonctionner sur plusieurs environnements organisationnels.
Les fonctionnalités comprennent :
- Isolation des organisations
- Politiques spécifiques au locataire
- Administrateurs spécifiques au locataire
- Enregistrements d'audit spécifiques au locataire
- Connecteurs spécifiques au locataire
- Règles de conservation spécifiques au locataire
- Rapports spécifiques au locataire
- Configuration au niveau du locataire
Les limites des locataires doivent être appliquées au niveau de l'autorisation et de l'accès aux données.
17. Module de fédération
Le module de fédération coordonne plusieurs installations de Nullify.
Les fonctionnalités comprennent :
- Coordination multi-cluster
- Politiques fédérées
- Exécution distribuée
- Application régionale du cycle de vie
- Coordination de l'audit entre environnements
- Visibilité centralisée
- Exécution locale
- Vérification fédérée
La fédération doit permettre aux organisations de conserver le contrôle local de leurs données tout en coordonnant la gouvernance du cycle de vie de manière centralisée.
Modules d'extension optionnels
Les plugins étendent Nullify sans élargir les exigences de dépendances de la plateforme de base.
Les plugins doivent utiliser des interfaces et des API documentées et doivent pouvoir être installés, mis à niveau, activés et désactivés de manière indépendante.
Plugins de sources de données
Les connecteurs optionnels peuvent comprendre :
- PostgreSQL
- MySQL
- MariaDB
- Microsoft SQL Server
- Oracle Database
- MongoDB
- Redis
- Elasticsearch
- OpenSearch
- Snowflake
- BigQuery
- Databricks
- Apache Cassandra
- Stockage compatible S3
- Google Cloud Storage
- Azure Blob Storage
- Systèmes de fichiers réseau
- Systèmes de stockage d'objets
- API REST personnalisées
Plugins de fournisseurs cloud
Les intégrations optionnelles peuvent comprendre :
- AWS
- Microsoft Azure
- Google Cloud
- Cloudflare
- DigitalOcean
- Autre infrastructure compatible S3
Les plugins cloud doivent rester optionnels afin que Nullify demeure neutre vis-à-vis des fournisseurs.
Les packs de politiques de conformité optionnels peuvent comprendre :
- GDPR
- CCPA
- CPRA
- HIPAA
- GLBA
- FERPA
- PCI DSS
- SOX
- Exigences régionales de confidentialité
- Cadres de conformité spécifiques à l'organisation
Les plugins de conformité doivent fournir des modèles de politiques et des correspondances plutôt que de coder en dur les exigences réglementaires dans le moteur de base.
Plugins d'IA et d'intelligence
Les fonctionnalités d'IA doivent rester optionnelles.
Les plugins possibles comprennent :
- Classification des données sensibles
- Détection des données personnelles (PII)
- Classification de documents
- Reconnaissance d'entités
- Recommandations de conservation
- Analyse des conflits de politiques
- Optimisation des politiques
- Détection d'anomalies
- Analyse des échecs de suppression
- Assistance à la conformité
- Création de politiques en langage naturel
Les recommandations générées par l'IA doivent rester soumises aux contrôles des politiques et à la supervision humaine.
Plugins de workflow
Les intégrations de workflow optionnelles peuvent comprendre :
- Apache Airflow
- Dagster
- Temporal
- Kubernetes Jobs
- GitLab CI/CD
- Autres plateformes d'orchestration de workflows
Plugins de bus d'événements
Les intégrations d'événements optionnelles peuvent comprendre :
- Apache Kafka
- RabbitMQ
- NATS
- Redis Streams
- MQTT
- Systèmes d'événements cloud
Plugins d'identité
Les intégrations d'authentification et d'identité optionnelles peuvent comprendre :
- LDAP
- Active Directory
- OAuth
- OpenID Connect
- SAML
- Fournisseurs d'identité d'entreprise
Plugins de notification
Les intégrations de notification optionnelles peuvent comprendre :
- Email
- Slack
- Microsoft Teams
- Webhooks
- PagerDuty
- Autres services de notification
Plugins de stockage
Nullify peut prendre en charge des backends de stockage optionnels pour les enregistrements d'audit, les preuves, les métadonnées et l'état du système.
Les plugins possibles comprennent :
- PostgreSQL
- SQLite
- MariaDB
- Stockage d'objets compatible S3
- MinIO
- Bases de données distribuées
- Systèmes de stockage d'entreprise
Plugins de déploiement
Les modules de déploiement optionnels peuvent fournir :
- Docker
- Docker Compose
- Kubernetes
- Helm
- Terraform
- Ansible
- Modèles de déploiement cloud
Architecture de sécurité
La sécurité est une exigence fondamentale plutôt qu'un plugin optionnel.
Nullify doit fournir :
- Chiffrement en transit
- Chiffrement au repos
- Autorisation de moindre privilège
- Gestion sécurisée des identifiants
- Intégration de la gestion des secrets
- Authentification
- Autorisation
- Journalisation d'audit
- Intégrité cryptographique de l'audit
- Limitation du débit
- Sécurité des API
- Séparation administrative
- Isolation sécurisée des plugins
- Validation de la configuration
- Paramètres sécurisés par défaut
Nullify ne doit jamais exiger que des identifiants en clair soient stockés dans la configuration de l'application.
Architecture de suppression sécurisée
Étant donné que la suppression est potentiellement destructive, Nullify sépare les décisions de cycle de vie de l'exécution.
Le cycle de vie recommandé est :
- Découvrir la ressource
- Classifier la ressource
- Évaluer les politiques applicables
- Générer une décision de cycle de vie
- Vérifier les exceptions et les conservations légales
- Demander une approbation lorsque requise
- Planifier l'action
- Exécuter l'action
- Vérifier le résultat
- Enregistrer la preuve
- Mettre à jour l'état du cycle de vie
- Rapporter le résultat
Le mode simulation (dry-run) doit permettre aux organisations d'évaluer le résultat attendu avant d'exécuter des actions destructives.
Conservations légales et exceptions
Nullify doit prendre en charge les exceptions de cycle de vie qui empêchent la suppression automatique.
Les exemples comprennent :
- Conservations légales
- Enquêtes
- Litiges en cours
- Exigences réglementaires de préservation
- Enquêtes de sécurité
- Exceptions organisationnelles
- Extensions temporaires de conservation
Une conservation légale ou une exception approuvée doit prévaloir sur les politiques de suppression ordinaires conformément à la hiérarchie de politiques configurée.
Détection des conflits de politiques
Nullify doit identifier les situations où les politiques produisent des décisions de cycle de vie contradictoires.
Les exemples comprennent :
- Supprimer contre conserver
- Supprimer contre conservation légale
- Archiver contre supprimer
- Périodes de conservation conflictuelles
- Politiques organisationnelles conflictuelles
- Politiques juridictionnelles conflictuelles
Le système doit expliquer le conflit et identifier les politiques qui y ont contribué.
Transparence
Chaque décision importante de cycle de vie doit être explicable.
Nullify doit fournir un enregistrement de décision contenant :
- Ressource
- Classification des données
- Politiques applicables
- Versions des politiques
- Évaluation des politiques
- Exceptions
- Exigences d'approbation
- Décision finale
- État d'exécution
- État de vérification
- Événements d'audit pertinents
Cela crée une chaîne auditable de la définition de la politique au résultat du cycle de vie.
Architecture technologique
Nullify est conçu pour rester technologiquement neutre au niveau de la spécification.
Une implémentation de référence peut utiliser :
- Python
- FastAPI
- React
- PostgreSQL
- Open Policy Agent
- Apache Airflow
- Dagster
- Docker
- Kubernetes
- MinIO
- Apache Kafka
- RabbitMQ
- NATS
Ces technologies sont des choix d'implémentation plutôt que des exigences obligatoires de la spécification Nullify.
Conception modulaire
Nullify suit une architecture modulaire afin que les organisations puissent déployer uniquement les fonctionnalités dont elles ont besoin.
La plateforme de base doit fournir :
- Découverte
- Classification
- Évaluation des politiques
- Décisions de cycle de vie
- Approbation
- Planification
- Exécution
- Vérification
- Audit
- Lignage
- Contrôle d'accès
- Notifications
- API
- Tableau de bord
- Rapports
- Multi-tenance
- Fédération
Les fonctionnalités optionnelles doivent être fournies via des plugins.
Cette architecture empêche la plateforme de base d'être étroitement couplée à des fournisseurs, des clouds, des bases de données, des systèmes d'IA, des cadres de conformité ou des plateformes d'infrastructure spécifiques.
Exigences relatives aux plugins
Les plugins doivent :
- Utiliser des interfaces documentées
- Maintenir une configuration indépendante
- Déclarer leurs dépendances
- Fournir des contrôles de santé
- Prendre en charge les opérations d'activation et de désactivation
- Fournir des rapports d'erreur clairs
- Respecter l'autorisation de Nullify
- Émettre les événements d'audit appropriés
- Éviter de contourner l'évaluation des politiques de base
- Maintenir la compatibilité avec les versions d'API prises en charge
- Inclure une documentation
- Inclure des tests
Les plugins ne doivent pas contourner les politiques de cycle de vie ni les contrôles d'autorisation.
Observabilité
Nullify doit exposer la télémétrie opérationnelle pour :
- La découverte de données
- L'évaluation des politiques
- La profondeur des files d'attente
- Les actions planifiées
- Les performances d'exécution
- Les échecs d'exécution
- Les échecs de vérification
- Les performances des API
- La santé des plugins
- La santé des sources de données
- La santé du système
Des plugins d'observabilité optionnels peuvent s'intégrer à des plateformes externes de surveillance et de journalisation.
Fiabilité
Nullify doit prendre en charge :
- Les nouvelles tentatives
- Les actions idempotentes
- La récupération après échec
- La persistance des files d'attente
- Les points de contrôle d'exécution
- Les contrôles de santé
- La récupération des services
- La sauvegarde et la restauration
- La reprise après sinistre
- La gestion des échecs partiels
Une suppression échouée ne doit jamais être signalée silencieusement comme réussie.
Modèles de déploiement
Nullify doit prendre en charge :
- Le développement local
- Le déploiement sur serveur unique
- Le déploiement Docker
- Le déploiement Kubernetes
- Le déploiement sur site
- Le déploiement cloud
- Le déploiement hybride
- Le déploiement multi-région
- Le déploiement fédéré
Les organisations doivent pouvoir utiliser Nullify sans dépendre d'un service hébergé propriétaire.
Feuille de route des fonctionnalités
Base
Sécurité
Gouvernance
Fiabilité
Plugins optionnels- [ ] Connecteurs SQL
Développement open source
Nullify est destiné à être développé comme un projet open source communautaire.
Les contributeurs peuvent participer en :
- en développant des modules de base
- en créant des plugins
- en construisant des connecteurs
- en rédigeant des packs de politiques
- en améliorant la documentation
- en créant des tests
- en signalant des bogues
- en améliorant la sécurité
- en développant des intégrations
- en proposant des améliorations de spécifications
L’architecture modulaire permet aux contributeurs d’étendre Nullify sans modifier le moteur de cycle de vie fondamental lorsqu’une fonctionnalité peut être implémentée sous forme de plugin.
Objectifs de conception
Nullify est conçu pour offrir :
- La transparence plutôt que l’automatisation opaque du cycle de vie
- Une gouvernance pilotée par les politiques plutôt que des processus manuels
- Une architecture modulaire plutôt que des dépendances monolithiques
- La neutralité vis-à-vis des fournisseurs plutôt que le verrouillage de plateforme
- Des preuves vérifiables plutôt que des affirmations non vérifiables
- Une supervision humaine plutôt qu’une automatisation incontrôlée
- Une extensibilité open source plutôt que des intégrations propriétaires
- Une gouvernance centralisée avec une exécution distribuée
- Une suppression sécurisée plutôt qu’une destruction incontrôlée
Specification Branding License (SBL)
Standard
- Système entièrement conforme à l’AGPL-3.0+
- Copyleft appliqué pour les déploiements réseau
- Attribution requise :
Optionnel
- Specification Branding License (SBL)
📄 Licence et exigences de mentions
Nullify est publié sous la GNU Affero General Public License v3.0 ou ultérieure (AGPL-3.0+).
En contribuant à ce projet, vous acceptez que vos contributions soient également publiées sous cette licence.
Veuillez noter ce qui suit :
- Toutes les contributions doivent être conformes aux conditions de la AGPL-3.0+.
- En vertu de la Section 7 de la licence, toutes les redistributions, forks et œuvres dérivées doivent conserver l’attribution à :
Roxanne Ardary et roxanneardary.com.
- Les spécifications de Nullify sont libres d’utilisation avec attribution. Une Specification Branding License peut être négociée sur demande.
- Le fichier notice.md du projet suit les exigences d’attribution et les remerciements des contributeurs.
Toute mise à jour qui ajoute de nouveaux contributeurs ou modifie l’attribution doit également mettre à jour notice.md.
- Lors de la soumission d’une pull request, assurez-vous que tout nouveau fichier conserve les en-têtes d’attribution le cas échéant.
- Les versions de ce logiciel déployées en réseau doivent également rester entièrement conformes à l’AGPL-3.0+, y compris l’exposition des modifications du code source lorsque cela est applicable en vertu de la licence.
Pour tous les détails juridiques, veuillez vous référer à la licence AGPL-3.0+ et au fichier notice.md du projet.
Open Arsenal Hub
https://gitlab.com/Roxanne_Ardary/open-arsenal-specs