Skip to main content

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"

Metadata

Release files for ckanext-siu-harvester 0.2.79

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ckanext-siu-harvester 0.2.79
File Size Uploaded Provenance
ckanext-siu-harvester-0.2.79.tar.gz 24.8 kB Without provenance Details

Release files / ckanext-siu-harvester-0.2.79.tar.gz

Download URL ckanext-siu-harvester-0.2.79.tar.gz
Size 24.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e2b29757ec15b8b185946f92e03dd8aea2ba7cb023bc05a4b32f5cdd82c72f2b
BLAKE2b-256 checksum
How to use checksums
bc8fb2485bd8df5fefcd38848ee6f2d0cc3109021f4985fbd85aa23a5e5b9204
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/2.7.13

Security for ckanext-siu-harvester 0.2.79

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page