-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Contexto
Hay campos que no esperamos que los nodos completen o utilicen correctamente, generalmente porque son tediosos de mantener y deberían ser automatizados.
Propuesta
Implementar como parte de la rutina de lectura de catálogos de django-datajsonar, el cálculo de algunos campos de metadatos adicionales (y los auxiliares que sea necesario) y su agregado a los catálogos que se leen (ie. estos metadatos nuevos deben servir para su uso dentro de monitoreo, pero también deben llegar al nodo central, cuando se federan).
Campos de manejo de fechas (aplicar a nivel catalog, dataset y distribution):
-
issued
: este campo viene de los nodos, si está vacío y no había ningún valor generado, se completa con la fecha de hoy (se considera que la entidad fue publicada por primera vez, cuando django-datajsonar lo lee). -
dataModified
: este campo no existe en el perfil nacional de metadatos. Se llena con la última fecha en la que el hash de la distribución descargada fue distinto que el anterior (donde se verifica una modificación de los datos). Se "hereda" hacia arriba: un dataset cambia sudataModified
cuando alguna de las distribuciones contenidas en él lo cambia. Un catálogo cambia sudataModified
cuando alguno de los datasets contenidos en él lo cambia. Atención! Para esto se usa un hash interno calculado por monitoreo apertura, pero no el hash que viene (o no viene) de los metadatos. -
metadataModified
: este campo no existe en el perfil nacional de metadatos. Sigue un comportamiento igual adataModified
, pero sólo con los cambios en metadatos. -
modified
: este campo existe en el perfil nacional de metadatos. Si viene de los nodos, se respeta el valor que ellos pusieron. Si está vacío, se usa la fecha más reciente entremetadataModified
ydataModified
.
Estos 4 campos deben calcularse a nivel de catálogo, dataset y distribución. Siempre siguen la misma lógica y se "heredan hacia arriba".
Hay que implementarlos siempre como "lo busco en el data.json y, si no está, actúo por mi cuenta para completarlo".
Otros campos
Implementar el campo byteSize
a nivel de distribución. Si el nodo no especifica el tamaño del archivo, este se calcula automáticamente a partir del archivo descargado y se completa el metadato.