io.github.devbpm.linneo.catalog.openmetadata.OpenMetadataMapping — public record, @since 0.1.0
Los nombres con los que se publica la taxonomía en OpenMetadata, y a partir de qué nivel una columna personal se
considera sensible. Se pasa a OpenMetadataCatalog.of(taxonomy, mapping).
public record OpenMetadataMapping(String categories, String personalData, String pii, String confidentiality,
String integrity, String identifiability, String handling,
Confidentiality sensitiveFrom)
| Componente | Por defecto | ¿Lo crea Linneo? | Significado |
|---|---|---|---|
categories |
DataCategory |
sí | Clasificación que contiene la jerarquía de categorías como etiquetas anidadas. |
personalData |
PersonalData |
no (predefinida) | Clasificación predefinida con las etiquetas Personal y SpecialCategory. |
pii |
PII |
no (predefinida) | Clasificación predefinida con las etiquetas None, NonSensitive y Sensitive. |
confidentiality |
Confidentiality |
sí | Clasificación de los niveles de confidencialidad. |
integrity |
Integrity |
sí | Clasificación de los niveles de integridad. |
identifiability |
Identifiability |
sí | Clasificación de la identificabilidad de las columnas personales. |
handling |
DataHandling |
sí | Clasificación que contiene la etiqueta Secret. |
sensitiveFrom |
Confidentiality.MEDIUM |
— | Confidencialidad mínima de los datos personales que se etiquetan PII.Sensitive; los niveles inferiores son PII.NonSensitive. |
personalData y pii nombran clasificaciones predefinidas de OpenMetadata: se reutilizan y
OpenMetadataCatalog.classifications() nunca las devuelve. Los nombres de etiqueta dentro de cada clasificación son
fijos.
El constructor canónico comprueba todos los componentes:
| Problema | Excepción |
|---|---|
Un nombre es null |
NullPointerException (classification name) |
| Un nombre está en blanco o contiene un punto | IllegalArgumentException (Invalid OpenMetadata classification name '<name>') |
| Dos de los siete nombres son iguales | IllegalArgumentException (Duplicate OpenMetadata classification name '<name>') |
sensitiveFrom es null |
NullPointerException (sensitiveFrom) |
Además, cada nombre debe ser un nombre de entidad válido en OpenMetadata; Linneo no lo comprueba más allá de lo anterior.
| Método | Descripción |
|---|---|
static OpenMetadataMapping defaults() |
Los valores por defecto anteriores. |
OpenMetadataMapping withCategories(String name) |
Una copia con otro nombre para la clasificación de categorías. |
OpenMetadataMapping withConfidentiality(String name) |
Una copia con otro nombre para la clasificación de confidencialidad. |
OpenMetadataMapping withSensitiveFrom(Confidentiality level) |
Una copia con otro umbral para PII.Sensitive. |
Los métodos with… validan igual que el constructor. No hay métodos with… para personalData, pii,
integrity, identifiability ni handling: usa el constructor canónico.
OpenMetadataMapping mapping = OpenMetadataMapping.defaults()
.withCategories("Categoria")
.withConfidentiality("Confidencialidad")
.withSensitiveFrom(Confidentiality.LOW);
OpenMetadataCatalog catalog = OpenMetadataCatalog.of(Taxonomy.standard(), mapping);
catalog.tagsOf(Taxonomy.standard().requireCategory(Categories.USER_NAME));
// [Categoria.user.name, PersonalData.Personal, PII.Sensitive, Confidencialidad.Low, Integrity.Medium]
Para renombrar todas las clasificaciones de Linneo:
OpenMetadataMapping mapping = new OpenMetadataMapping("Categoria", "PersonalData", "PII", "Confidencialidad",
"Integridad", "Identificabilidad", "Tratamiento", Confidentiality.MEDIUM);
Véase también: Catálogo de OpenMetadata · Niveles de protección · curso: OpenMetadata