README.rst 1.58 KB
Newer Older
Denis Laxalde's avatar
Denis Laxalde committed
1
2
Summary
-------
3
4
5
6
7
8
This cube enables data publishing to a CKAN opendata portal.


Configuration
-------------

Denis Laxalde's avatar
Denis Laxalde committed
9
10
11
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:
12

Denis Laxalde's avatar
Denis Laxalde committed
13
14
15
16
17
18
19
20
*   ``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.

21
22
23
24
25
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.

Denis Laxalde's avatar
Denis Laxalde committed
26
See ``test/data`` for a minimal example.
Denis Laxalde's avatar
Denis Laxalde committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44


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`.