Skip to main content

Publish data to a CKAN instance

Project description

Summary

This cube enables data publishing to a CKAN opendata portal.

Configuration

The cube essentially provides hooks to push data in a CKAN instance. The mapping from CubicWeb entities is handled by adapters which themselves rely on dedicated attributes on the entities:

  • ICKANDataset adapter relies on a ckan_dataset_id attribute on the adapted entity. As its name suggests, the latter is used to relate a CubicWeb entity to a CKAN dataset (the fundamental entity type in CKAN data model).

  • ICKANResource adapter relies on a ckan_resource_id attribute. It is used to related some CubicWeb entity type to a CKAN resource.

The push of a resource on CKAN instance should be triggered by the addition of a relation between the dataset-like entity and a resource-like entity in CubicWeb. This is handled by the LinkResourceToDatasetHook hook, which is abstract and should thus subclass by setting its rtype attribute.

See test/data for a minimal example.

Testing

Testing this cube requires a running CKAN instance with a (dedicated) organization and a user with editors permission in the organization. Corresponding information are expected in the test/ckanconfig.py file.

baseurl = '<url-of-ckan-instance>'
organization = '<organization-name>'
apikey  = '<api-key-of-user-with-editors-permissions-on-organization>'

Note that, since CKAN does not expose an API function to purge datasets, we can only delete them in tests. So, one has to manually purge test datasets from the CKAN at <baseurl>/ckan-admin/trash.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cubicweb-ckanpublish-0.1.0.tar.gz (12.0 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page