Publish data to a CKAN instance
This cube enables data publishing to a CKAN opendata portal.
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 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.