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
, andquery
methods
Configuration¶
- set pycsw’s
repository.source
setting to the class which implements the custom repository:
[repository]
mappings='path.to.repo_plugin.MyRepository'