Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Description

The Comprehensive Knowledge Archive Network (CKAN) is an open source web-based system for the storage, management and distribution of open data. From the CKAN User Guide:

"CKAN is a tool for making open data websites. (Think of a content management system like WordPress - but for data, instead of pages and blog posts.) It helps you manage and publish collections of data. It is used by national and local governments, research institutions, and other organizations who collect a lot of data."

Demonstration video

This video demonstrates how to start CKAN in Labs Workbench, register for a CKAN account, and add an account as a sysadmin user.

...

  • In a running instance of CKAN, open the console
  • cd /home/<username>
  • mkdir ckan
  • cp /etc/ckan/default/ckan.ini /home/<workbench-username>/ckan/
  • This copies the pre-configured ckan.ini to your Workbench home directory.
  • Stop the CKAN instance
  • You can now edit the copied file using the built in File Manager or a command line editor.  For testing, open your copy of the ckan.ini and change the default locale from English "en" to French "fr".
  • To map this file into your CKAN instance, select the "Edit" button for CKAN
  • On the "Data" tab add a new folder mapping from your local "ckan/ckan.ini" to "/etc/ckan/default/ckan.ini". Select the "plus" button to add it, then save.
  • Start your CKAN instance.
  • Once started, you should see the interface in French.

Uploading data using the CKAN API

This example assumes that you have access to the curl command.  If you do not have pen the console application for your CKAN instance and run:

apt-get install curl nano -y

This will install curl and a simple editor called nano.  You can either create files using nano or using the File Manager application in Workbench.

cd /home/<you>

To upload data via curl, you'll need some information:

  • Your API key, which you can find on your user page in CKAN after logging in (we'll call it CKAN_API_KEY)
  • The hostname for your CKAN instance (we'll call it CKAN_HOST)
  • The ID of an organization in CKAN

To get the organization ID of an existing organization:


Code Block
$ curl https://$CKAN_HOST/api/action/organization_list
{
    "help": "https://$CKAN_HOST/api/3/action/help_show?name=organization_list",
    "result": [
        "test"
    ],
    "success": true
}


Now, create a file called dataset.json containing the following (assumes your organization name from the above request is "test"):

Code Block
{    "name": "new_dataset",    "notes": "A long description of my dataset",    "owner_org": "test"}


Create a new dataset using this information:


Code Block
curl https://$CKAN_HOST/api/action/package_create -d=@dataset.json  -H "Authorization: $CKAN_API_KEY

You should get some JSON output indicating that the package was successfully created.

Now, upload a file to your dataset:

Code Block
curl https://$CKAN_HOST/api/action/resource_create --form upload=@test.csv --form package_id= new_dataset -H "Authorization: $CKAN_KEY"



See also

...