ckanext-siu-harvester

SIU Harvest


Keywords
CKAN, harvest, SIU, Universid
License
MIT
Install
pip install ckanext-siu-harvester==0.1.9

Documentation

Build Status Docker Pulls Docker Automated

SIU Harvester

Esta extensi贸n de CKAN permite cosechar (harvest) datos expuestos en sistemas SIU.
El Sistema de Informaci贸n Universitaria es un conjunto de aplicaciones que permite de manera gratuita a las Universidades argentinas contar con las herramientas de software para su gesti贸n integral.

Esta extensi贸n de CKAN esta pensada para obtener estos datos y publicarlos en formatos reutilizables para darles mayor accesibilidad al p煤blico general.

Portal de transparencia

SIU incluye un portal de transparencia que incluye un API.
Estos datos se toman de la base SIU-Wichi, que contiene datos provenientes de los m贸dulos SIU-Pilaga (Presupuesto), SIU-Mapuche (RRHH), SIU-Diaguita (Compras y Patrimonio) y SIU-Araucano (Acad茅micos).

Consultas

Las consultas a la base de datose se definen en archivos CDA

<?xml version="1.0" encoding="UTF-8"?>
<CDADescriptor>
   <DataSources>
      <Connection id="myconnection" type="sql.jndi">
         <Jndi>transparencia</Jndi>
      </Connection>
   </DataSources>

   <DataAccess 
       access="public" 
       cache="true" 
       cacheDuration="7200" 
       connection="myconnection" 
       id="IdParaUsarComDataAccessID" 
       type="sql">
      <Columns/>

      <Parameter name="prm_anio" type="Numeric" default="0"/>
      
      <Query>SELECT field_a, field_b, field_c 
                      FROM xtable
                      where field_a = ${anio}
      </Query>

   </DataAccess>
</CDADescriptor>

Este harvester lee los enpoints del API que expone cada archivo CDA. Los archivos CDA incluidos en el Portal de Transparencia ya est谩n cubiertos en este harvester. Esta listo para consumir y republicar datos.

Es posible tambien definir archivos CDA personalizados y agregarlos al harvester para consumir estos datos de manera automtizada y peri贸dicamente.

Instalaci贸n

Disponible en Pypi o v铆a GitHub.

pip install ckanext-siu-harvester
贸
pip install -e git+https://github.com/avdata99/ckanext-siu-harvester.git#egg=ckanext-siu-harvester

+
pip install -r https://raw.githubusercontent.com/avdata99/ckanext-siu-harvester/master/requirements.txt

Agregar origen

La URL los harvest sources de este tipo son de la forma:

http://wichi.siu.edu.ar/pentaho/plugin/cda/api/doQuery

Debe elegir la URL de la instancia de la que desea obtener datos

Configuraci贸n

Para conectarse es requisito que para cada harvest source definir una configuraci贸n.
La configuraci贸n m铆nima y bigatoria es solo el usuario y a contrase帽a del API del portal de transparencia al que este harvester se va a conectar

{
    "username": "user",
    "password": "password"    
}

Datos a extraer

Estos endpoints pueden incluir multiples recursos. Cada recurso es un query al endpoint ya listo para usar.
Estos ya est谩n configurados en el directorio queries de la librer铆a siu-data

Por ejemplo egresados-pos-facultad.json

{
    "name": "evolucion-de-cargos-activos-por-escalafon",
    "title": "Evoluci贸n de cargos activos por escalaf贸n",
    "notes": "",
    "internals": "Describir mejor",
    "iterables": {
        "sub_list": {
            "help": "Necesitamos primero obtener la lista de unidades acad茅micas con otra consulta",
            "name": "lista-de-unidades-academicas",
            "params": {
                "paramprm_tablero_visible": "18",
                "dataAccessId": "param_ua_cargos",
                "sortBy": ""
            },
            "apply_to": "paramprm_ua_cargos"
        }
    },
    "tags": [
        "Cargos", "Personal"
    ],
    "params": {
        "paramprm_ua_cargos": "",
        "path": "/home/SIU-Wichi/Portal Transparencia/cda/4_rrhh.cda",
        "dataAccessId": "tablero_18",
        "outputIndexId": 1,
        "pageSize": 0,
        "pageStart": 0,
        "sortBy": "2D"
        }
}

De esta forma este harvester va a iterar por los a帽os disponibles y crear谩 un dataset para cada a帽o.
Es posible agregar m谩s queries para consumir m谩s datos.

Configuraciones adicionales

Limitar los archivos de queries usadas

La librer铆a siu-data a la que se conecta este harvester incluye todos los archivos de consulta disponibles (descriptos m谩s abajo).
De manera predeterminada todos los archivos se usar谩n pero es posible limitar los archivos usados en la configuracion con only_files de esta forma:

"only_files": [
    "1-PRESUPUESTO-tablero_01.json",
    "1-PRESUPUESTO-tablero_02.json"
    ]

Los archivos a usar se identifican con la propiedad name de cada archivo de consulta.

Sobreescribir configuraciones

Los archivos de consulta permiten definir tags, grupos y otros metadatos que cada dataset cosechado va a usar.
Es tambien posible configurar cambios desde la configuracion del harvester.
Ejemplo:

"override": {
    "1-PRESUPUESTO-tablero_01.json": {
        "notes": "Esta es una nueva descripcion para todos los datasets cosechados desde este archivo",
        "tags": ["nuevo_tag_01", "nuevo_tag_02"]
    },
    "1-PRESUPUESTO-tablero_02.json": {
        "tags": ["nuevo_tag_02", "nuevo_tag_03"],
        "groups": ["group_01", "group_02"]
    }
}

Agregar extras a los datasets

Si se requiere que en cada cosecha (adem谩s de los tags, grupos, notas, etc) se agreguen m谩s metadatos a los datasets cosechados

"override": {
    "4-RRHH-tablero_18.json": {

        "extras": {
            "my_custom_extra": "999",
            "dataset_preview": {
                "chart": {
                    "height": "250",
                    "chart_type": "Column",
                    "chart_color": "#30AA71",
                    "fields": "['Facultad', 'cantidad de empleados']", 
            
                }
            }
        },

        "notes": "Nueva descripcion",
        "tags": ["nuevo_tag_09", "nuevo_tag_12"]
    }
}

Ejemplo configuracion final

{
"username": "usuario",
"password": "clave",
"only_files": ["4-RRHH-tablero_18.json"],
"override": {
    "4-RRHH-tablero_18.json": {
        "extras": {
            "my_custom_extra": "999",
            "dataset_preview": {
                "chart": {
                    "height": "250",
                    "chart_type": "Column",
                    "chart_color": "#30AA71",
                    "fields": "['fuente_financiamiento' ,'total_devengado']", 
                    }
                }
            },
        "notes": "Nueva descripcion",
        "tags": ["nuevo_tag_09", "nuevo_tag_12"],
        "groups": ["group_01", "group_02"]
        }
    }
}

Tests

Locally

docker-compose exec ckan bash -c \
    "cd src_extensions/ckanext-siu-harvester && \
        nosetests --ckan --nologcapture --with-pylons=test.ini ckanext/siu_harvester/tests"