
Product
Introducing Custom Tabs for Org Alerts
Create and share saved alert views with custom tabs on the org alerts page, making it easier for teams to return to consistent, named filter sets.
ckanext-datajson
Advanced tools
A CKAN extension containing plugins datajson.
First is used by http://catalog.data.gov/ to harvest data sources
from a remote /data.json file according to the U.S. Project
Open Data metadata specification (https://resources.data.gov/schemas/dcat-us/v1.1/).
Plugin datajson provides a harvester to import datasets from other
remote /data.json files. See below for setup instructions.
And the plugin also provides a new view to validate /data.json files at http://ckanhostname/dcat-us/validator.
datajsondatajson_harvestdatajson_validatorAll requirements are tracked setup.py when possible. Some CKAN extensions are not on PyPI, so they
(and their dependencies) must be tracked in requirements.txt.
| CKAN version | Compatibility |
|---|---|
| <=2.7 | :x: |
| 2.8 | :warning: |
| 2.9.5 | :heavy_check_mark: |
| 2.9.6 | :heavy_check_mark: |
To install, activate your CKAN virtualenv, install dependencies, and install the module in develop mode, which just puts the directory in your Python path.
. path/to/pyenv/bin/activate
pip install -r requirements.txt
python setup.py develop
Then in your CKAN .ini file, add datajson
to your ckan.plugins line:
ckan.plugins = (other plugins here...) datajson
That's the plugin for /data.json output. To make the harvester available, also add:
ckan.plugins = (other plugins here...) harvest datajson_harvest
To make the datajson validator route and web form available, also add:
ckan.plugins = (other plugins here...) datajson_validator
[ Optional ] Set the resource count limit allowed in one record so that fetch-consumer does not run out of memory during harvesting. Default is unlimited. Once set, records with higher resource count will see import errors.
ckanext.datajson.max_resource_count = 1000
Build the docker containers.
$ make build
Start the docker containers.
$ make up
CKAN will start at localhost:5000.
Clean up any containers and volumes.
$ make clean
Open a shell to run commands in the container.
$ docker-compose exec app /bin/bash
If you're unfamiliar with docker-compose, see our cheatsheet and the official docs.
For additional make targets, see the help.
$ make help
They follow the guidelines for testing CKAN extensions.
To run the extension tests, start the containers with make up, then:
$ make test
Lint the code.
$ make lint
The test development environment drops as many dependencies as possible. It is not meant to have feature parity with GSA/catalog.data.gov. Tests should mock external dependencies where possible.
In order to support multiple versions of CKAN, or even upgrade to new versions
of CKAN, we support development and testing through the CKAN_VERSION
environment variable.
$ make CKAN_VERSION=2.9.5 test
$ make CKAN_VERSION=2.9 test
Note: When testing patch versions of CKAN, the services may not have patch releases.
So, take note of the SERVICES_VERSION variable which tracks the minor release to
pull for the db and solr images.
Original work written by the HealthData.gov team. It has been modified in support of Data.gov.
As a work of the United States Government, this package is in the public domain within the United States. Additionally, we waive copyright and related rights in the work worldwide through the CC0 1.0 Universal public domain dedication (which can be found at http://creativecommons.org/publicdomain/zero/1.0/).
We're so glad you're thinking about contributing to ckanext-datajson!
Before contributing to ckanext-datajson we encourage you to read our CONTRIBUTING guide, our LICENSE, and our README (you are here), all of which should be in this repository. If you have any questions, you can email the Data.gov team at datagov@gsa.gov.
FAQs
CKAN extension to generate /data.json
We found that ckanext-datajson demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Create and share saved alert views with custom tabs on the org alerts page, making it easier for teams to return to consistent, named filter sets.

Product
Socket’s Rust and Cargo support is now generally available, providing dependency analysis and supply chain visibility for Rust projects.

Security News
Chrome 144 introduces the Temporal API, a modern approach to date and time handling designed to fix long-standing issues with JavaScript’s Date object.