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:
-
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
-
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
-
Add
drupal_apito theckan.pluginssetting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini). -
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:
-
Update the version number in the
setup.pyfile. See PEP 440 for how to choose version numbers. -
Make sure you have the latest version of necessary packages:
pip install --upgrade setuptools wheel twine
-
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.pyfile. For example if the version number insetup.pyis 0.0.1 then do:git tag 0.0.1 git push --tags
License
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ckanext_drupal_api-0.8.1.tar.gz | 22.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.