node-ckan

Wrapper for the CKAN api.

node-ckan

Node.js wrapper for CKAN api.

Full api documentation: http://docs.ckan.org/en/latest/api.html

Usage:

Load

var ckan = require("node-ckan");

Set your server url

ckan.setServer("http://demo.ckan.org");

Authenticate. You can manually set your key or login.

ckan.setKey("xxx-xxx-xxxx-xxxxxxxx");
 
// or 
 
ckan.login("username", "password", function(error){
  // if successful, your key is now set 
});

Call api.

ckan.exec("package_list", function(errresp) {
 
});
 
ckan.exec("am_following_user", {id:"bob"}, function(errresp) {
 
});
 
// you can upload file resources as well 
// simply use the api's resource_create command, but add the 'file' attribute 
// that contains the path to the file you wish to upload 
ckan.exec(
    "resource_create", 
    {
        file        : "/path/to/your/file.png",
        package_id  : "mypackage",
        description : "uploading using node.js api",
        name        : "myfile", // this will default to filename if not provided 
        mimetype    : "image/png"
     },
     function(errresp){}
);

Importer. Helper method for importing data into ckan.

ckan.import({
  // verbose output 
  debug : true,
 
  // by default if a package or resource alread exsits, it will be ignored 
  // set the update flag to force updates of packages and resources 
  // update: true, 
 
  // user key, you can authenticate using the setKey() and login() methods as well 
  key: "xxx-xxx-xxxx-xxxxxxxx", 
 
  // server you wish to connect to 
  server : "http://demo.ckan.org", 
 
  // list of packages you want to import. 
  packages : [
    {
      name : "mypackage",
      groups : [{id: mygroup}],
      description : "test",
      resources : [
        {
          file        : "/path/to/your/file.png",
          description : "uploading using node.js api",
          name        : "myfile",
          mimetype    : "image/png"
        }
      ]
    }
  ],
 
  // you can create groups as well 
  groups : [
    {
      name : "mygroup"
    }
  ]
});

Exporter. Helper method for getting all data from ckan.

ckan.export({
    // user key, you can authenticate using the setKey() and login() methods as well 
    key: "xxx-xxx-xxxx-xxxxxxxx", 
 
    // server you wish to connect to 
    server : "http://demo.ckan.org", 
 
    // data has all groups, organizations and packages 
    callback : function(data) {
        // do stuff 
    }
});