CKAN Extension Approval Workflow

Keitaro
3 min readFeb 15, 2024

--

Many organizations struggle with managing their datasets efficiently. Fortunately, there’s a CKAN extension designed to add an Approval Workflow on Datasets that can help. This amazing extension comes with three different options for the approval process that can be tailored to meet your specific needs. You can choose to have the approval workflow “Not active,” “Active,” or “Activate approval workflow per organization.”

In this blog, we’ll guide you through the installation process and explore the benefits of adding this extension to your toolkit. If you’re looking for ways to make your dataset management process more efficient, then let’s explore how this CKAN extension can help take your data management to the next level. Let’s dive in!

A CKAN extension for adding an Approval Workflow on Datasets.

The extension provides 3 options for the Approval Workflow:

  • Not active
  • Active
  • Activate approval workflow per organization

Requirements

Make sure to have email settings in your ckan.ini file.

The extension can work with ckanext-datasetversions

Compatibility with core CKAN versions: 2.9

Installation

To install ckanext-approvalworkflow:

  1. Activate your CKAN virtual environment, for example:
    . /usr/lib/ckan/default/bin/activate
  2. Clone the source and install it on the virtualenv
    git clone https://github.com//ckanext-approvalworkflow.git
    cd ckanext-approvalworkflow
    pip install -e .
    pip install -r requirements.txt
  3. Add approvalworkflow to the ckan.plugins setting in your CKAN config file (by default the config file is located at /etc/ckan/default/ckan.ini).
  4. Create the database tables running:
    ckan -c /path/to/ini/file approval_workflow initdb
  5. If you are using ckanext-datasetversions, make sure to add datasetversions plugin after approvalworkflow in your CKAN config file
  6. Restart CKAN. For example if you’ve deployed CKAN with Apache on Ubuntu:
    sudo service apache2 reload

Config settings

None at present

Developer installation

To install ckanext-approvalworkflow for development, activate your CKAN virtualenv and do:

git clone https://github.com//ckanext-approvalworkflow.git
cd ckanext-approvalworkflow
python setup.py develop
pip install -r dev-requirements.txt

Tests

To run the tests, do:

pytest --ckan-ini=test.ini

Releasing a new version of ckanext-approvalworkflow

If ckanext-approvalworkflow should be available on PyPI you can follow these steps to publish a new version:

  1. Update the version number in the setup.py file. See PEP 440 for how to choose version numbers.
  2. Make sure you have the latest version of necessary packages:
    pip install –upgrade setuptools wheel twine
  3. Create a source and binary distributions of the new version:
python setup.py sdist bdist_wheel && twine check dist/*
  • Fix any errors you get.
  • Upload the source distribution to PyPI:
twine upload dist/*
  • Commit any outstanding changes:
git commit -a
git push
  • Tag the new release of the project on GitHub with the version number from the setup.py file. For example if the version number in setup.py is 0.0.1 then do:
git tag 0.0.1
git push --tags

To sum it up, the CKAN extension for adding an Approval Workflow on Datasets is a powerful tool that offers three customizable approval options to streamline dataset management. However, before installing the extension, make sure that email settings are properly configured in your ckan.ini file. Additionally, the extension is compatible with core CKAN versions 2.9 and can work with ckanext-datasetversions. It’s easy to install and customize, and it can help you save time and improve data quality.

The extension is released under an open-source license, making it available to anyone who wants to use or develop it further.

In case you need any assistance with the installation or usage of this extension, don’t hesitate to contact Keitaro and our experienced team. We are always ready to help you with any issues you may encounter.

--

--

Keitaro

Keitaro is a Linux and Open-source software company that develops solutions empowering organizations and enterprises around the world.