linneo

Actividades de tratamiento

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

Relación con la taxonomía

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.

Errores y avisos

El ProcessingChecker sigue el mismo enfoque de fallo seguro que el clasificador, con una regla para la gravedad:

La lista completa está en la tabla de códigos.

Lo que Linneo no hace

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.

Ejemplo

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