Ir al contenido

Alta de fuentes

Una fuente de harvesting se puede crear desde la web, en /harvest/new y con una cuenta de administración, o mediante la API. Para dar de alta una fuente aislada alcanza con la web, mientras que para cargar muchas fuentes, o para dejar registro de cómo se configuraron, resulta más práctico usar la API con el script crear-fuente-harvest.sh.

CampoEjemploObservaciones
nameministerio-saludEs el identificador que aparece en la dirección y solo admite minúsculas, números y guiones.
titleMinisterio de SaludEs el nombre que se muestra en el portal.
urlhttps://datos.salud.gob.ar/catalog.xlsxNo puede repetirse entre las fuentes activas.
source_typexlsx_harvesterLos valores posibles se explican en Tipos de fuente.
owner_orgsaludEs la organización del portal a la que se asignan los datasets harvesteados.
frequencyDAILYAdmite MANUAL, ALWAYS, DAILY, WEEKLY, BIWEEKLY y MONTHLY.
config{"skip_rows": 0}Es un JSON escrito como texto, cuyas opciones dependen del tipo de fuente.

Todas las opciones son optativas; si no se indican, se aplica el valor por defecto de la tabla.

OpciónTipoValor por defectoPara qué sirve
dataset_sheettextodataset, en mayúsculas o minúsculas y en singular o pluralIndica el nombre de la hoja que contiene los datasets.
distribution_sheettextodistribution, con las mismas variantesIndica el nombre de la hoja que contiene los recursos.
skip_rowsnúmero entero0Indica cuántas filas hay que saltear antes de los encabezados.
default_owner_orgtextovacíoDefine la organización que se asigna cuando una fila no indica ninguna.
default_tagslistavacíaAgrega etiquetas a todos los datasets, aunque hoy no funciona (ver la nota).
user_agenttextockanext-harvest-xlsx/1.0Define cómo se identifica la descarga ante el servidor de la fuente, algo útil cuando ese servidor bloquea el valor por defecto.

Un ejemplo de configuración:

{
"skip_rows": 0,
"default_owner_org": "salud",
"user_agent": "portal-provincial/1.0"
}
La opción default_tags no se puede usar por ahora

La validación de la configuración exige una lista de objetos, como [{"name": "salud"}], mientras que la etapa de import la interpreta como una lista de textos, como ["salud"]. Con cualquiera de los dos formatos el harvesting falla en alguna de esas etapas, por lo que conviene no incluir esta opción hasta que se corrija en ckanext-gobar-harvest.

Algunas opciones se aceptan pero no tienen efecto

default_extras, override_extras, force_all y read_only pasan la validación de xlsx_harvester porque provienen del harvester de CKAN, donde sí funcionan, pero el código de este harvester no las utiliza.

Los datasets sin recursos no se incorporan

Si una fila del archivo XLSX describe un dataset que no tiene ningún recurso con dirección, la importación de ese dataset falla. Es un comportamiento intencional, ya que el Perfil Nacional de Metadatos no admite datasets vacíos.

Estos dos tipos de fuente comparten las opciones del harvester de CKAN, entre las que las más utilizadas son las siguientes.

OpciónPara qué sirve
organizations_filter_includeLimita el harvesting a las organizaciones del portal remoto que se indican en la lista.
organizations_filter_excludeExcluye del harvesting las organizaciones remotas que se indican.
default_groupsAgrega todos los datasets harvesteados a los grupos indicados del portal propio.
remote_orgsCon el valor create, crea en el portal propio las organizaciones remotas que todavía no existen.
api_keyPermite indicar una clave de acceso cuando el portal remoto exige autenticación.
force_allCon el valor true, trae todos los datasets en cada harvesting y no solo los modificados.

La referencia completa está en la documentación de ckanext-harvest. Un ejemplo que harvestea una sola organización y asigna sus datasets a un grupo:

{
"organizations_filter_include": ["modernizacion"],
"default_groups": ["gobierno"]
}
Cómo cuenta gobar_ckan los datasets que no cambiaron

El harvester de CKAN solo solicita los datasets modificados desde el último harvesting exitoso, por lo que el resumen de cada harvesting muestra siempre cero datasets sin cambios. gobar_ckan también contabiliza esos datasets, de modo que el resumen refleja la cantidad real.

Reutilizar la dirección de una fuente eliminada

Sección titulada «Reutilizar la dirección de una fuente eliminada»

Cuando se elimina una fuente desde la web, CKAN la marca como borrada pero la conserva, y su dirección sigue reservada. Para volver a usarla en una fuente nueva hay que eliminar la anterior en forma definitiva:

Ventana de terminal
docker compose exec ckan ckan dataset purge <nombre-de-la-fuente>

Sin esperar a la frecuencia configurada, se puede crear un job de harvesting para una fuente con este comando:

Ventana de terminal
docker compose exec ckan ckan harvester job <nombre-de-la-fuente>

El trabajo se procesa en la siguiente revisión del cron, dentro de los cinco minutos, y su resultado se puede consultar en la página /harvest/<nombre-de-la-fuente> del portal.