Skip to content

Allow to provide an alternative CKAN host #226

@amercader

Description

@amercader

The xloader currently uses CKAN URLs for two things:

  • Download resources of type "upload" (eg https://myckan.site.org/dataset/{id}/resource/{id}/download)
  • Ping a xloader_hook action via a POST request. This was a surprise, as I was under the impression that xloader did not communicate via HTTP with the CKAN API.

In any case, both these requests use the URL built with ckan.site_url, which is the public facing URL. This won't work on scenarios where the xloader has no access to it, for instance when running in a separate container in a docker compose setup. We need to introduce support for a new config option similar to ckan.datapusher.callback_url_base which will allow xloader to call e.g. http://ckan:5000/dataset/{id}/resource/{id}/download instead of https://myckan.site.org/dataset/{id}/resource/{id}/download

  • Add new ckanext.xloader.callback_url_base option to the config declaration
  • To modify the download URL, the new config option needs to be used here to replace the public host with the value of the config option
  • The API endpoint is passed as result_url here, so that's the place to replace the host as well if the config option is present

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions