CKAN extension for NGDS-specific customizations
Python HTML CSS JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This CKAN extension contains a number of functions that build integration with the National Geothermal Data System (NGDS).

The National Geothermal Data System (NGDS) supports the storage and search of information resources relevant to the discovery, understanding, and utilization of geothermal energy. It is a network of data providers supplying data and metadata, with an aggregating feature that provides a single entry point for searching resources available through the system.

Fundamental Operating Modes

This extension is designed to run two different types of CKAN sites to serve two different purposes within the NGDS. Depending on the operating mode, a different set of plugins need to be enabled. Some dependencies on external CKAN extensions are required as well.

  • Publisher: A node that is primarily used by a data provider to create metadata, make files avaialble for network access, deploy NGDS services to provide data access, or make metadata available for harvesting. Also refered to simply as Node.

    • NGDS Plugins: metadata, csw, ngdsui, geoserver
    • External Plugins: datastorer (ckanext-datastorer), spatial_metadata and spatial_query (ckanext-spatial)
  • Aggregator: A node that is primarily used to collect metadata from NGDS publishing nodes (and possibly from other metadata sources), and provide search and data browsing services to help users find what they need, evaluate it, and get it for their application. Also called Central.

    • NGDS Plugins: metadata, csw, ngdsui, ngds_harvester, geoserver
    • External Plugins: spatial_metadata, spatial_harvest_metadata_api, spatial_query (ckanext-spatial), csw_harvester, harvest, ckan_harvester, cswserver, and harvest (ckanext-harvest)


This extension provides a number of plugins, each of which encapsulates a different aspect of NGDS functionality:

Extension Dependencies

This extension is dependent on other extensions provided by the Open Knowledge Foundation.


The installation of an entire CKAN system configured for ckanext-ngds on a clean, Ubuntu 12.04 server can be accomplished using a simple installation script. See here.

For users who wish to install ckanext-ngds alongside an existing CKAN system, or for developers interested in working with the code in this repository see this wiki.

Run Tests

This extension has 2 subpackages (CLient and Sysadmin). However the instructions below, applied for both of them).

Step 1

Before running tests, there are 2 configs files for test, need to be configured regarding the test environment of your machine:

  • ckanext-ngds/ckanext/ngds/client_or_sysadmin/test.ini: overrides ckan environment.ini variables or you can point it into a different environment.ini (e.g: use different database for test)
  • ckanext-ngds/ckanext/ngds/client_or_sysadmin/tests/tests_config.cfg: > ckan_host: by default, CKAN Host on your machine > ckan_web_map_service_url: by default, webMapService (WmsServer service). > ckan_ngds_sysadmin_search_path: by default, NGDS search URI > ckan_ngds_client_paths: by default, array of ngds routes to pages (URIs)

Step 2

Command line to perform the tests:

$ cd ckanext-ngds/ckanext/ngds/client_or_sysadmin/
$ nosetests --ckan --with-pylons=test.ini tests/
  • --with-pylons it's an option to specify the path to environment.ini to use for the test (override ckan default ini).
  • tests/ it's the path to all tests files where located