Skip to content

Convert DP+ to a CKAN extension #98

@jqnatividad

Description

@jqnatividad

DP+ was forked from DP which uses ckanserviceprovider.

ckanserviceprovider was meant to be a general library for CKAN for making web services, and was originally created in 2013.

Right now, DP and DP+ are really the only users of the library, and in the 10 years since, a lot has changed.

DP+ 0.x will continue to use ckanserviceprovider so older CKAN installations using DataPusher can still use it.

However, especially now that CKAN v2.9 uses Python 3.8+ which DP+ requires to call qsv using subprocess options only available in Python 3.7+, v1.x of DP+ will work as a CKAN extension.

This has the following benefits:

  • easier to maintain as it just works as a regular extension
  • no need to maintain a separate web service running in its own virtualenv
  • we can drop the ckanserviceprovider dependency
  • we can use the ckan_default database to store DP+ job history instead of creating our own DP+ database
  • we can add additional UI elements beyond the existing Datastore tab. Here are some examples of what a DP+ extension can do:
    • Have the ability to set resource-specific DP+ job settings on the UI
    • Have the ability to see how the resource is stored in the Datastore (with datastore_info API)
    • Have a more advanced Data Dictionary interface that goes beyond setting label/description and overriding types

This is already WIP in the https://github.com/dathere/datapusher-plus/tree/dev-v1.0 branch and we hope to the make the first release summer 2023.

EDIT:

This is completed

Now main branch is the same as it was dev-v1.0 and all the contributions, bug fixes should be branched of main

In some time master branch will be renamed into legacy-datapusher-plus in case someone still uses the service version

Metadata

Metadata

Assignees

No one assigned

    Labels

    1.xwill be done in DP+ 1.x - DP+ running as CKAN extensionenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions