Paquete io.github.devbpm.linneo.processing — exportado, @since 0.1.0
Las anotaciones y el Classifier dicen qué contiene cada campo. El registro de
actividades de tratamiento del RGPD (artículo 30) trata de procesos: para qué se tratan los datos, de quién son,
con qué base jurídica, durante cuánto tiempo y quién los recibe. Este paquete describe esos procesos, los comprueba
frente a la taxonomía y la clasificación del modelo, y genera el registro.
| Tipo | Declaración | Papel | Página |
|---|---|---|---|
ProcessingActivity |
record, con un Builder |
Una actividad de tratamiento tal como se declara: finalidades, interesados, datos personales, bases, conservación, destinatarios, transferencias | ProcessingActivity |
Transfer |
record | Una transferencia a un tercer país o a una organización internacional | ProcessingActivity |
LegalBasis |
enum | La base jurídica (artículo 6.1) | Bases jurídicas |
SpecialCategoryCondition |
enum | La excepción para categorías especiales de datos (artículo 9.2) | Bases jurídicas |
CriminalDataBasis |
enum | Lo que permite tratar datos penales (artículo 10) | Bases jurídicas |
TransferSafeguard |
enum | Lo que permite una transferencia (capítulo V) | Bases jurídicas |
ProcessingChecker |
clase | Comprueba las actividades y construye el registro | ProcessingChecker |
CheckedActivity |
record | Una actividad con sus términos resueltos, sus datos personales, la protección que requieren y los problemas encontrados | ProcessingChecker |
Jurisdiction |
enum | El derecho nacional que un comprobador aplica además del RGPD (EU, SPAIN) |
ProcessingChecker |
ProcessingViolation |
record, con Severity y Code |
Un problema encontrado en una actividad | ProcessingChecker |
ProcessingException |
excepción | La lanza verify con todos los errores |
ProcessingChecker |
ProcessingRecord |
record | El registro de actividades de tratamiento, en Markdown o JSON | ProcessingRecord |
Una Taxonomy tiene tres dimensiones. Las anotaciones solo usan la primera; una actividad de tratamiento usa las
tres:
| Dimensión de la taxonomía | En una ProcessingActivity |
Contenido del registro |
|---|---|---|
Usos de datos (DataUses) |
purposes: para qué se tratan los datos |
fines del tratamiento (art. 30.1.b) |
Sujetos de datos (DataSubjects) |
dataSubjects: de quién son los datos |
categorías de interesados (art. 30.1.c) |
Categorías de datos (Categories) |
dataCategories (claves) y entities (clases del modelo clasificadas) |
categorías de datos personales (art. 30.1.c) |
Los datos personales de una actividad pueden indicarse como claves de categoría, como clases del modelo o de ambas
formas. Para una clase, el comprobador ejecuta el Classifier y toma las categorías de
sus campos personales, con los niveles declarados en cada campo, de modo que el registro sigue al modelo: si se añade
un campo personal a una entidad, todas las actividades que la incluyen pasan a tratarlo. Una entidad que no esté
clasificada por completo y correctamente es un error de la actividad. La naturaleza jurídica de las categorías
(ordinaria, categoría especial, datos penales; consulta Niveles de protección) decide qué
bases necesita la actividad.
Los vocabularios de las bases siguen las declaraciones de privacidad de fideslang: LegalBasis,
SpecialCategoryCondition y TransferSafeguard llevan en fideslangName() los valores de
legal_basis_for_processing, special_category_legal_basis y legal_basis_for_transfers.
El ProcessingChecker sigue el mismo enfoque de fallo seguro que el clasificador, con una regla para
la gravedad:
Jurisdiction.SPAIN, también el consentimiento explícito como única
condición para las categorías especiales del artículo 9.1 de la LOPDGDD. verify lanza una ProcessingException y no se genera ningún
registro.La lista completa está en la tabla de códigos.
Linneo comprueba declaraciones: que cada actividad nombra una base donde el RGPD la exige, que sus claves existen y que sus entidades están clasificadas. No decide si el consentimiento es válido, si un interés prevalece sobre los derechos de los interesados o si una ley ampara realmente el tratamiento, y no ofrece asesoramiento jurídico. El registro que genera sirve de apoyo a la evaluación del propio responsable del tratamiento y al consejo de su delegado de protección de datos, y no los sustituye. Las leyes que aparecen en los ejemplos de esta documentación («Higher Education Act», «Child Protection Act») son ficticias.
ProcessingActivity newsletter = ProcessingActivity.builder("alumni-newsletter", "Alumni newsletter")
.purposes(DataUses.MARKETING_COMMUNICATIONS_EMAIL)
.dataSubjects(DataSubjects.ALUMNUS)
.dataCategories(Categories.USER_NAME, Categories.USER_CONTACT_EMAIL)
.legitimateInterest("Keeping former students informed about university events")
.retention("Until the alumnus unsubscribes")
.build();
ProcessingRecord record = new ProcessingChecker(Taxonomy.load()).verify(newsletter);
String markdown = record.toMarkdown("Example University");
Véase también: ProcessingActivity · Bases jurídicas · ProcessingChecker · ProcessingRecord · curso: Actividades de tratamiento y el registro