Skip to main content

An extension to create URL aliases for datasets

Project description

Tests

The extension allow you to create a URL aliases for datasets. For example, if you have a dataset with my-dataset name, it can be accessed via URL like that https://your-domain/dataset/my-dataset. Now you could add multiple aliases that will redirect user to the dataset.

Creating and managing aliases is easy. There are two ways to create an alias.

  1. An alias could be created automatically, if the ckanext.alias.autosave_alias config option in enabled. (see Config settings section below) Alt Text The automatic creation will be triggered only if the new name differs from the previous one.
  2. An alias could be created manually via dataset create/edit form. Alt Text

Requirements

The extension has only been tested with CKAN 2.10.1 and will most likely not work with versions below 2.10. Also, the extension relies on ckanext-scheming to add an alias field into schema. It won't work without scheming. If you don't know what is it and how to use it, check its repo.

Installation

  1. Use pip to install an extension: pip install ckanext-alias
  2. Add alias to the ckan.plugins setting in your CKAN config file.

Add an alias field to schema

ckanext-alias requires adjusting a dataset schema, to add an alias field that will store all the information. The extension provides multiple presets, which you could use to easilly adjust the schema.

  1. Add presets scheming.presets = ckanext.alias:presets.yaml

  2. Open you schema. You have to edit name field and add a new alias field:

    - field_name: name
      preset: dataset_alias_slug
    
    - field_name: alias
      preset: dataset_alias
    
    • The alias field name must be the same as ckanext.alias.alias_fieldname.
    • Check presets.yaml file to see the presets in details.
    • If your name field was altered before, you don't have to use the dataset_alias_slug preset. Just add the name_doesnt_conflict_with_alias validator to list of yours.

Config settings

The extension provides several configuration options to customize it.

# Specify a list of dataset types that is going to support aliases. Each specified dataset type schema
# must contain an alias field, otherwise, the extension isn't going to work (optional, default: dataset).
ckanext.alias.dataset_types = dataset project
# Specify an alias field name in dataset schema. The extension won't work, if the schema
# doesn't contain a specified field (optional, default: alias).
ckanext.alias.alias_fieldname = pkg_alias
# Specify whether a new alias will be created automatically on dataset update.
# If the name differs from the previous one, the alias will be created (optional, default: false).
ckanext.alias.autosave_alias = true

Developer installation

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

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

Tests

To run the tests, do:

pytest --ckan-ini=test.ini

License

AGPL

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ckanext-alias-1.0.1.tar.gz (22.0 kB view hashes)

Uploaded Source

Built Distribution

ckanext_alias-1.0.1-py3-none-any.whl (23.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page