Skip to main content

ckanext-drupal-api

The extension helps synchronize the header and footer between CKAN and Drupal.

It uses two versions of the Drupal API - the core Rest API and the JSON:API.

The extension receives data from the Drupal portal through an endpoint (which can be configured in the case of the core REST API) and caches it for a certain time, which can also be changed using the Cache TTL config option, specifying the value in seconds. If you want to synchronize data more often, you need to set a smaller value.

Requirements

  • CKAN>=2.10
  • python>=3.7

Installation

To install ckanext-drupal-api:

  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/DataShades/ckanext-drupal-api.git cd ckanext-drupal-api pip install -e . pip install -r requirements.txt

  3. Add drupal_api to the ckan.plugins setting in your CKAN config file (by default the config file is located at /etc/ckan/default/ckan.ini).

  4. Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:

    sudo service apache2 reload

Config settings

The extension provides next configuration options:

# The URL of connected drupal instance
ckanext.drupal_api.drupal_url = http://drupal.com

# Request timeout for API calls in seconds
# (optional, default: 5)
ckanext.drupal_api.timeout = 10

# Cache TTL in seconds
# (optional, default: 3600)
ckanext.drupal_api.cache.duration = 60

# HTTP auth credentials (optional)
ckanext.drupal_api.request.user = username
ckanext.drupal_api.request.pass = password

# API versions, only two options: core & json
# Because, there are two supported API versions: JSON API & RESTful Web Services
ckanext.drupal_api.api_version = json

# If you are using the core API version, you might face the situation when your endpoint differ from the default one
# In this case, you can specify the menu export endpoint through the config, e.g.:
ckanext.drupal_api.core.menu_export_endpoint = /api/v1/menu_export

Developer installation

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

git clone https://github.com/DataShades/ckanext-drupal-api.git
cd ckanext-drupal-api
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-drupal-api

If ckanext-drupal-api 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.

  4. Upload the source distribution to PyPI:

    twine upload dist/*
    
  5. Commit any outstanding changes:

    git commit -a
    git push
    
  6. 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
    

License

AGPL

Metadata

Release files for ckanext-drupal-api 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ckanext-drupal-api 0.8.1
File Size Uploaded Provenance
ckanext_drupal_api-0.8.1.tar.gz 22.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ckanext-drupal-api 0.8.1
File Interpreter ABI Platform
ckanext_drupal_api-0.8.1-py3-none-any.whl Python 3 none any Details

Total release size: 46.0 kB

Release files / ckanext_drupal_api-0.8.1.tar.gz

Download URL ckanext_drupal_api-0.8.1.tar.gz
Size 22.7 kB
Tags Source
SHA-256 checksum
How to use checksums
459ba19b1452fd5701cfff68c68aa4970444e5c27f8c241779c2402488edf521
BLAKE2b-256 checksum
How to use checksums
50586a30b70ffcfce9e9ea11c2e2a2d4713073959eefe0a10299ec2383e4a552
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release files / ckanext_drupal_api-0.8.1-py3-none-any.whl

Download URL ckanext_drupal_api-0.8.1-py3-none-any.whl
Size 23.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ae52e44922113953d396af6c714611535185e6c66109836c22a1fedb600e693
BLAKE2b-256 checksum
How to use checksums
3c918e6e0bba5157a62ffc7bce289fb75e7178e0bf79e0f230ed5b4d05246058
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Security for ckanext-drupal-api 0.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page