Nullify
Seguro. Transparente. Anulado.
Nullify es una plataforma de código abierto y modular para la retención, eliminación y gobernanza del ciclo de vida de los datos. Proporciona un marco centralizado para descubrir datos, evaluar políticas de retención, ejecutar acciones controladas sobre el ciclo de vida y mantener registros de auditoría verificables en entornos de datos distribuidos.
Nullify está diseñado en torno a una arquitectura basada en especificaciones. Los módulos principales proporcionan las capacidades fundamentales necesarias para la gobernanza del ciclo de vida de los datos, mientras que los módulos de complementos opcionales extienden Nullify con conectores adicionales, marcos de cumplimiento, inteligencia, integraciones, sistemas de almacenamiento y capacidades de despliegue.
Especificación
Nullify define una arquitectura de código abierto para la gestión centralizada del ciclo de vida de los datos.
La especificación se basa en varios principios:
- Coordinación centralizada de políticas
- Soporte de fuentes de datos distribuidas
- Retención y eliminación basadas en políticas
- Autorización y aprobación explícitas
- Flujos de trabajo de ejecución en seco (dry-run) y validación
- Auditoría inmutable y verificable
- Linaje y procedencia de los datos
- Conectores e integraciones modulares
- Supervisión humana para operaciones destructivas
- Ejecución segura por defecto
- Arquitectura neutral respecto al proveedor
- Despliegue local, en la nube, híbrido y federado
- Arquitectura de complementos extensible
- Evaluación transparente de políticas
- Decisiones de ciclo de vida reproducibles
Nullify no requiere que las organizaciones migren sus datos a un repositorio centralizado propietario. En su lugar, el sistema coordina las políticas y acciones del ciclo de vida en los entornos de datos existentes.
Arquitectura
Nullify se divide en dos capas arquitectónicas principales:
- Módulos principales
- Módulos de complementos opcionales
Los módulos principales contienen la funcionalidad fundamental necesaria para operar Nullify. Los complementos opcionales proporcionan funcionalidad especializada sin hacer que la plataforma base dependa de una base de datos, proveedor de nube, marco de cumplimiento, sistema de IA, plataforma de notificaciones o infraestructura específica.
Arquitectura principal
El flujo principal del ciclo de vida es:
Descubrimiento → Clasificación → Evaluación de políticas → Aprobación → Programación → Ejecución → Verificación → Auditoría
Cada etapa está representada por un módulo principal mantenible de forma independiente.
Módulos principales
1. Módulo de descubrimiento de datos
El Módulo de descubrimiento de datos identifica e inventariza los recursos de datos gestionados por Nullify.
Las características incluyen:
- Registro de fuentes de datos
- Descubrimiento de recursos
- Inventarios de conjuntos de datos y objetos
- Recopilación de metadatos
- Metadatos de propiedad de los datos
- Marcas de tiempo de creación y modificación
- Metadatos de acceso
- Seguimiento de la ubicación de almacenamiento
- Seguimiento del estado de los recursos
- Monitoreo de la salud de las fuentes de datos
- Programación del descubrimiento
El módulo proporciona el inventario requerido por las políticas de ciclo de vida posteriores sin necesidad de copiar los datos subyacentes en Nullify.
2. Módulo de clasificación de datos
El Módulo de clasificación de datos asigna metadatos estructurados a los recursos descubiertos.
Las características incluyen:
- Asignación de categorías de datos
- Clasificación de sensibilidad
- Clasificación de PII
- Clasificación de datos financieros
- Clasificación de datos de salud
- Clasificación interna y pública
- Clasificaciones definidas por el usuario
- Confianza de la clasificación
- Historial de clasificación
- Clasificación manual
- Anulaciones de clasificación
Los resultados de la clasificación se convierten en entradas para el proceso de evaluación de políticas.
3. Módulo del motor de políticas
El Motor de políticas es el componente central de toma de decisiones de Nullify.
Las características incluyen:
- Políticas de retención
- Políticas de eliminación
- Políticas de archivado
- Políticas de anonimización
- Reglas de retención legal
- Reglas de excepción
- Prioridades de políticas
- Herencia de políticas
- Versionado de políticas
- Activación y caducidad de políticas
- Simulación de políticas
- Detección de conflictos de políticas
- Validación de políticas
- Reversión de políticas
Las políticas deben ser declarativas y legibles por máquina.
Nullify debe admitir múltiples formatos de políticas mientras mantiene un modelo de política interno normalizado.
4. Módulo de decisiones de ciclo de vida
El Módulo de decisiones de ciclo de vida convierte las evaluaciones de políticas en decisiones explícitas de ciclo de vida.
Las decisiones admitidas incluyen:
- Retener
- Revisar
- Archivar
- Anonimizar
- Eliminar
- Retención legal
- Excepción
- Diferir
Cada decisión debe contener metadatos suficientes para explicar:
- Qué decisión se tomó
- Qué recurso se vio afectado
- Qué política produjo la decisión
- Qué versión de la política se utilizó
- Cuándo se creó la decisión
- Cuándo debe ejecutarse la decisión
- Si se requiere aprobación
5. Módulo de aprobación y supervisión humana
Nullify no debe asumir que toda operación destructiva puede automatizarse por completo.
El Módulo de aprobación proporciona una supervisión humana controlada.
Las características incluyen:
- Colas de aprobación
- Aprobación multipersona
- Aprobación basada en roles
- Delegación de aprobación
- Caducidad de la aprobación
- Flujos de trabajo de rechazo
- Flujos de trabajo de escalamiento
- Retenciones de emergencia
- Anulaciones manuales
- Historial de aprobaciones
Las organizaciones pueden configurar qué acciones requieren aprobación humana y cuáles pueden ejecutarse automáticamente.
6. Módulo de programación
El Módulo de programación gestiona cuándo ocurren las acciones del ciclo de vida.
Las características incluyen:
- Eliminación programada
- Archivado programado
- Anonimización programada
- Procesamiento por lotes
- Colas de prioridad
- Ventanas de mantenimiento
- Programación consciente de recursos
- Reintentos programados
- Ejecución consciente de dependencias
- Equilibrio de cargas de trabajo
- Limitación de ejecución
La programación debe separar la decisión de realizar una acción de la ejecución real de esa acción.
7. Módulo de ejecución de acciones
El Módulo de ejecución de acciones realiza las operaciones aprobadas del ciclo de vida contra las fuentes de datos registradas.
Las acciones de ciclo de vida admitidas incluyen:
- Eliminar
- Archivar
- Anonimizar
- Redactar
- Poner en cuarentena
- Mover
- Expirar
- Revocar acceso
Las características incluyen:
- Ejecución en seco (dry-run)
- Validación previa a la ejecución
- Confirmación de ejecución
- Operaciones conscientes de transacciones cuando sean compatibles
- Manejo de reintentos
- Detección de fallos
- Seguimiento de fallos parciales
- Estado de ejecución
- Recibos de ejecución
- Ejecución idempotente
- Controles de ejecución segura
Las acciones destructivas deben requerir autorización explícita de acuerdo con la política configurada.
8. Módulo de verificación
El Módulo de verificación confirma si las acciones del ciclo de vida se completaron con éxito.
Las características incluyen:
- Verificación de eliminación
- Verificación de archivado
- Verificación de anonimización
- Confirmación de la fuente
- Verificación de réplicas
- Verificación de reintentos
- Detección de acciones fallidas
- Detección de datos residuales
- Informes de verificación
La verificación debe distinguir entre:
- Solicitado
- Autorizado
- Programado
- Ejecutado
- Verificado
- Fallido
- Parcialmente completado
9. Módulo de auditoría y evidencia
El Módulo de auditoría y evidencia registra el ciclo de vida completo de cada acción importante del sistema.
Las características incluyen:
- Eventos de auditoría inmutables
- Integridad criptográfica de eventos
- Registros de decisiones de políticas
- Registros de aprobación
- Registros de ejecución
- Registros de verificación
- Registros de actividad de usuarios
- Historial de configuración
- Historial de políticas
- Exportación de auditoría
- Paquetes de evidencia
- Registros de cadena de custodia
Los registros de auditoría deben permitir reconstruir por qué ocurrió una decisión de ciclo de vida y qué sucedió después.
10. Módulo de linaje de datos
El Módulo de linaje de datos rastrea las relaciones entre los recursos de datos.
Las características incluyen:
- Linaje de origen
- Linaje de destino
- Linaje de transformación
- Relaciones de copia
- Relaciones de replicación
- Relaciones de datos derivados
- Relaciones padre-hijo
- Historial de movimiento de datos
- Propagación del ciclo de vida
El linaje permite a Nullify identificar recursos relacionados que también pueden requerir retención, archivado, anonimización o eliminación.
11. Módulo de control de acceso
El Módulo de control de acceso protege las operaciones administrativas y del ciclo de vida.
Las características incluyen:
- Control de acceso basado en roles (RBAC)
- Control de acceso basado en atributos (ABAC)
- Gestión de permisos
- Permisos a nivel de recurso
- Permisos a nivel de acción
- Permisos de aprobación
- Separación administrativa
- Gestión de sesiones
- Integración de autenticación
- Auditoría de autorización
Las operaciones destructivas deben utilizar autorización de privilegio mínimo.
12. Módulo de notificaciones
El Módulo de notificaciones proporciona notificaciones del sistema y del ciclo de vida.
Las características incluyen:
- Alertas de violación de políticas
- Alertas de ejecución fallida
- Notificaciones de aprobación
- Notificaciones de acciones programadas
- Fallos de verificación
- Fallos de fuentes de datos
- Alertas de cumplimiento
- Notificaciones administrativas
El módulo principal debe exponer una interfaz de notificaciones mientras que los mecanismos de entrega permanecen reemplazables.
13. Módulo de API
El Módulo de API proporciona acceso programático a Nullify.
Las características incluyen:
- API REST
- API GraphQL
- Autenticación
- Autorización
- Gestión de recursos
- Gestión de políticas
- Gestión del ciclo de vida
- Consultas de auditoría
- Informes
- Gestión de complementos
- Operaciones administrativas
Las API deben exponer interfaces versionadas estables.
14. Módulo de panel de control
El Panel de control proporciona la interfaz administrativa principal.
Las características incluyen:
- Inventario de datos
- Estado de retención
- Acciones pendientes
- Estado de políticas
- Colas de aprobación
- Estado de ejecución
- Estado de verificación
- Historial de auditoría
- Conflictos de políticas
- Métricas de cumplimiento
- Salud del sistema
- Estado de complementos
El panel de control debe proporcionar visibilidad sin requerir que los usuarios interactúen directamente con las bases de datos subyacentes o los sistemas de ejecución.
El Módulo de informes convierte los datos del ciclo de vida en informes operativos y de cumplimiento.
Las características incluyen:
- Informes de retención
- Informes de eliminación
- Informes de políticas
- Informes de auditoría
- Informes de excepciones
- Informes de retención legal
- Informes de ejecución
- Informes de verificación
- Informes de inventario de datos
- Paquetes de evidencia de cumplimiento
Los formatos de exportación admitidos deben incluir:
- JSON
- CSV
- PDF
- Formatos de evidencia estructurados legibles por máquina
16. Módulo multiinquilino
El Módulo multiinquilino permite a Nullify operar en múltiples entornos organizativos.
Las características incluyen:
- Aislamiento de organizaciones
- Políticas específicas del inquilino
- Administradores específicos del inquilino
- Registros de auditoría específicos del inquilino
- Conectores específicos del inquilino
- Reglas de retención específicas del inquilino
- Informes específicos del inquilino
- Configuración a nivel de inquilino
Los límites del inquilino deben aplicarse en las capas de autorización y acceso a datos.
17. Módulo de federación
El Módulo de federación coordina múltiples instalaciones de Nullify.
Las características incluyen:
- Coordinación multi-clúster
- Políticas federadas
- Ejecución distribuida
- Aplicación regional del ciclo de vida
- Coordinación de auditoría entre entornos
- Visibilidad centralizada
- Ejecución local
- Verificación federada
La federación debe permitir a las organizaciones mantener el control local sobre sus datos mientras coordinan la gobernanza del ciclo de vida de forma centralizada.
Módulos de complementos opcionales
Los complementos extienden Nullify sin ampliar los requisitos de dependencia de la plataforma principal.
Los complementos deben utilizar interfaces y API documentadas y deben poder instalarse, actualizarse, habilitarse y deshabilitarse de forma independiente.
Complementos de fuentes de datos
Los conectores opcionales pueden incluir:
- PostgreSQL
- MySQL
- MariaDB
- Microsoft SQL Server
- Oracle Database
- MongoDB
- Redis
- Elasticsearch
- OpenSearch
- Snowflake
- BigQuery
- Databricks
- Apache Cassandra
- Almacenamiento compatible con S3
- Google Cloud Storage
- Azure Blob Storage
- Sistemas de archivos en red
- Sistemas de almacenamiento de objetos
- API REST personalizadas
Complementos de proveedores de nube
Las integraciones opcionales pueden incluir:
- AWS
- Microsoft Azure
- Google Cloud
- Cloudflare
- DigitalOcean
- Otra infraestructura compatible con S3
Los complementos de nube deben seguir siendo opcionales para que Nullify permanezca neutral respecto al proveedor.
Complementos de cumplimiento
Los paquetes de políticas de cumplimiento opcionales pueden incluir:
- GDPR
- CCPA
- CPRA
- HIPAA
- GLBA
- FERPA
- PCI DSS
- SOX
- Requisitos de privacidad regionales
- Marcos de cumplimiento específicos de la organización
Los complementos de cumplimiento deben proporcionar plantillas de políticas y mapeos en lugar de codificar requisitos regulatorios en el motor principal.
Complementos de IA e inteligencia
La funcionalidad de IA debe seguir siendo opcional.
Los posibles complementos incluyen:
- Clasificación de datos sensibles
- Detección de PII
- Clasificación de documentos
- Reconocimiento de entidades
- Recomendaciones de retención
- Análisis de conflictos de políticas
- Optimización de políticas
- Detección de anomalías
- Análisis de eliminaciones fallidas
- Asistencia de cumplimiento
- Creación de políticas en lenguaje natural
Las recomendaciones generadas por IA deben seguir sujetas a los controles de políticas y a la supervisión humana.
Complementos de flujos de trabajo
Las integraciones de flujos de trabajo opcionales pueden incluir:
- Apache Airflow
- Dagster
- Temporal
- Kubernetes Jobs
- GitLab CI/CD
- Otras plataformas de orquestación de flujos de trabajo
Complementos de bus de eventos
Las integraciones de eventos opcionales pueden incluir:
- Apache Kafka
- RabbitMQ
- NATS
- Redis Streams
- MQTT
- Sistemas de eventos en la nube
Complementos de identidad
Las integraciones opcionales de autenticación e identidad pueden incluir:
- LDAP
- Active Directory
- OAuth
- OpenID Connect
- SAML
- Proveedores de identidad empresarial
Complementos de notificación
Las integraciones de notificación opcionales pueden incluir:
- Email
- Slack
- Microsoft Teams
- Webhooks
- PagerDuty
- Otros servicios de notificación
Complementos de almacenamiento
Nullify puede admitir backends de almacenamiento opcionales para registros de auditoría, evidencia, metadatos y estado del sistema.
Los posibles complementos incluyen:
- PostgreSQL
- SQLite
- MariaDB
- Almacenamiento de objetos compatible con S3
- MinIO
- Bases de datos distribuidas
- Sistemas de almacenamiento empresarial
Complementos de despliegue
Los módulos de despliegue opcionales pueden proporcionar:
- Docker
- Docker Compose
- Kubernetes
- Helm
- Terraform
- Ansible
- Plantillas de despliegue en la nube
Arquitectura de seguridad
La seguridad es un requisito principal en lugar de un complemento opcional.
Nullify debe proporcionar:
- Cifrado en tránsito
- Cifrado en reposo
- Autorización de privilegio mínimo
- Manejo seguro de credenciales
- Integración con gestión de secretos
- Autenticación
- Autorización
- Registro de auditoría
- Integridad de auditoría criptográfica
- Limitación de velocidad
- Seguridad de API
- Separación administrativa
- Aislamiento seguro de complementos
- Validación de configuración
- Valores predeterminados seguros
Nullify nunca debe requerir que se almacenen credenciales en texto plano en la configuración de la aplicación.
Arquitectura de eliminación segura
Debido a que la eliminación es potencialmente destructiva, Nullify separa las decisiones del ciclo de vida de la ejecución.
El ciclo de vida recomendado es:
- Descubrir el recurso
- Clasificar el recurso
- Evaluar las políticas aplicables
- Generar una decisión de ciclo de vida
- Comprobar excepciones y retenciones legales
- Solicitar aprobación cuando sea necesario
- Programar la acción
- Ejecutar la acción
- Verificar el resultado
- Registrar la evidencia
- Actualizar el estado del ciclo de vida
- Informar del resultado
El modo de ejecución en seco (dry-run) debe permitir a las organizaciones evaluar el resultado esperado antes de ejecutar acciones destructivas.
Retenciones legales y excepciones
Nullify debe admitir excepciones del ciclo de vida que impidan la eliminación automática.
Los ejemplos incluyen:
- Retenciones legales
- Investigaciones
- Disputas activas
- Requisitos de conservación regulatoria
- Investigaciones de seguridad
- Excepciones organizativas
- Extensiones temporales de retención
Una retención legal o una excepción aprobada debe tener prioridad sobre las políticas de eliminación ordinarias de acuerdo con la jerarquía de políticas configurada.
Detección de conflictos de políticas
Nullify debe identificar situaciones en las que las políticas producen decisiones de ciclo de vida contradictorias.
Los ejemplos incluyen:
- Eliminar frente a retener
- Eliminar frente a retención legal
- Archivar frente a eliminar
- Períodos de retención conflictivos
- Políticas organizativas conflictivas
- Políticas jurisdiccionales conflictivas
El sistema debe explicar el conflicto e identificar qué políticas contribuyeron a él.
Transparencia
Cada decisión importante del ciclo de vida debe ser explicable.
Nullify debe proporcionar un registro de decisión que contenga:
- Recurso
- Clasificación de datos
- Políticas aplicables
- Versiones de políticas
- Evaluación de políticas
- Excepciones
- Requisitos de aprobación
- Decisión final
- Estado de ejecución
- Estado de verificación
- Eventos de auditoría relevantes
Esto crea una cadena auditable desde la definición de la política hasta el resultado del ciclo de vida.
Arquitectura tecnológica
Nullify está diseñado para permanecer tecnológicamente neutral a nivel de especificación.
Una implementación de referencia puede utilizar:
- Python
- FastAPI
- React
- PostgreSQL
- Open Policy Agent
- Apache Airflow
- Dagster
- Docker
- Kubernetes
- MinIO
- Apache Kafka
- RabbitMQ
- NATS
Estas tecnologías son elecciones de implementación en lugar de requisitos obligatorios de la especificación de Nullify.
Diseño modular
Nullify sigue una arquitectura modular para que las organizaciones puedan desplegar solo la funcionalidad que necesitan.
La plataforma principal debe proporcionar:
- Descubrimiento
- Clasificación
- Evaluación de políticas
- Decisiones de ciclo de vida
- Aprobación
- Programación
- Ejecución
- Verificación
- Auditoría
- Linaje
- Control de acceso
- Notificaciones
- API
- Panel de control
- Informes
- Multiinquilinato
- Federación
La funcionalidad opcional debe entregarse a través de complementos.
Esta arquitectura evita que la plataforma principal quede fuertemente acoplada a proveedores, proveedores de nube, bases de datos, sistemas de IA, marcos de cumplimiento o plataformas de infraestructura específicos.
Requisitos de los complementos
Los complementos deben:
- Utilizar interfaces documentadas
- Mantener una configuración independiente
- Declarar dependencias
- Proporcionar comprobaciones de salud
- Admitir operaciones de habilitación y deshabilitación
- Proporcionar informes de errores claros
- Respetar la autorización de Nullify
- Emitir los eventos de auditoría apropiados
- Evitar omitir la evaluación de políticas central
- Mantener la compatibilidad con las versiones de API admitidas
- Incluir documentación
- Incluir pruebas
Los complementos no deben eludir las políticas del ciclo de vida ni los controles de autorización.
Observabilidad
Nullify debe exponer telemetría operativa para:
- Descubrimiento de datos
- Evaluación de políticas
- Profundidad de colas
- Acciones programadas
- Rendimiento de ejecución
- Fallos de ejecución
- Fallos de verificación
- Rendimiento de API
- Salud de complementos
- Salud de fuentes de datos
- Salud del sistema
Los complementos de observabilidad opcionales pueden integrarse con plataformas externas de monitoreo y registro.
Fiabilidad
Nullify debe admitir:
- Reintentos
- Acciones idempotentes
- Recuperación de fallos
- Persistencia de colas
- Puntos de control de ejecución
- Comprobaciones de salud
- Recuperación de servicios
- Copia de seguridad y restauración
- Recuperación ante desastres
- Manejo de fallos parciales
Una eliminación fallida nunca debe informarse silenciosamente como exitosa.
Modelos de despliegue
Nullify debe admitir:
- Desarrollo local
- Despliegue en un solo servidor
- Despliegue con Docker
- Despliegue con Kubernetes
- Despliegue local (on-premises)
- Despliegue en la nube
- Despliegue híbrido
- Despliegue multi-región
- Despliegue federado
Las organizaciones deben poder operar Nullify sin depender de un servicio alojado propietario.
Hoja de ruta de funcionalidades
Principal
Seguridad
Gobernanza
Fiabilidad
Complementos opcionales- [ ] Conectores SQL
Desarrollo de código abierto
Nullify está pensado para desarrollarse como un proyecto de código abierto impulsado por la comunidad.
Los contribuyentes pueden participar:
- Desarrollando módulos principales
- Creando plugins
- Construyendo conectores
- Escribiendo paquetes de políticas
- Mejorando la documentación
- Creando pruebas
- Reportando errores
- Mejorando la seguridad
- Desarrollando integraciones
- Proponiendo mejoras a las especificaciones
La arquitectura modular permite a los contribuyentes ampliar Nullify sin modificar el motor fundamental del ciclo de vida cuando una funcionalidad puede implementarse como plugin.
Objetivos de diseño
Nullify está diseñado para proporcionar:
- Transparencia frente a automatización opaca del ciclo de vida
- Gobernanza basada en políticas frente a procesos manuales
- Arquitectura modular frente a dependencias monolíticas
- Neutralidad de proveedor frente al bloqueo de plataforma
- Evidencia verificable frente a afirmaciones no verificables
- Supervisión humana frente a automatización no controlada
- Extensibilidad de código abierto frente a integraciones propietarias
- Gobernanza centralizada con ejecución distribuida
- Eliminación segura frente a destrucción no controlada
Licencia de Marca de Especificaciones (SBL)
Estándar
- Sistema totalmente compatible con AGPL-3.0+
- Copyleft aplicado para despliegues de red
- Atribución requerida:
Opcional
- Licencia de Marca de Especificaciones (SBL)
📄 Licencia y Requisitos de Aviso
Nullify se publica bajo la GNU Affero General Public License v3.0 o posterior (AGPL-3.0+).
Al contribuir a este proyecto, aceptas que tus contribuciones también se publiquen bajo esta licencia.
Ten en cuenta lo siguiente:
- Todas las contribuciones deben cumplir con los términos de AGPL-3.0+.
- Según la Sección 7 de la licencia, todas las redistribuciones, bifurcaciones y obras derivadas deben conservar la atribución a:
Roxanne Ardary y roxanneardary.com.
- Las especificaciones de Nullify son de uso libre con atribución. Se puede negociar una Licencia de Marca de Especificaciones a petición.
- El archivo notice.md del proyecto realiza un seguimiento de los requisitos de atribución y los reconocimientos a los contribuyentes.
Cualquier actualización que añada nuevos contribuyentes o modifique la atribución también debe actualizar notice.md.
- Al enviar una solicitud de pull request, asegúrate de que cualquier archivo nuevo conserve los encabezados de atribución cuando corresponda.
- Las versiones de este software desplegadas en red también deben seguir siendo totalmente compatibles con AGPL-3.0+, incluida la exposición de las modificaciones del código fuente cuando corresponda según la licencia.
Para obtener todos los detalles legales, consulta la licencia AGPL-3.0+ y el archivo notice.md del proyecto.
Open Arsenal Hub
https://gitlab.com/Roxanne_Ardary/open-arsenal-specs