Repository Plugins

Overview

pycsw allows for the implementation of custom repositories in order to connect to a backend different from the pycsw’s default. This is especially useful when downstream applications manage their own metadata model/database/document store and want pycsw to connect to it directly instead of using pycsw’s default model, thus creating duplicate repositories which then require syncronization/accounting. Repository plugins enable a single metadata backend which is independent from the pycsw setup. pycsw thereby becomes a pure wrapper around a given backend in providing CSW and other APIs atop a given application.

All outputschemas must be placed in the pycsw/plugins/outputschemas directory.

Requirements

Repository plugins:

  • can be developed and referenced / connected external to pycsw
  • must be accessible within the PYTHONPATH of a given application
  • must implement pycsw’s pycsw.core.repository.Repository properties and methods
  • must be specified in the pycsw Configuration as a class reference (e.g. path.to.repo_plugin.MyRepository)
  • must minimally implement the query_insert, query_domain, query_ids, and query methods

Configuration

  • set pycsw’s repository.source setting to the class which implements the custom repository:
[repository]
mappings='path.to.repo_plugin.MyRepository'