Skip to content

GNIP 27 CSW Django Backend Support

tomkralidis edited this page Sep 29, 2012 · 2 revisions
GNIP 27 - CSW Django Backend Support

Overview

Allow for GeoNode CSW server to bind directly to Django backend.

This will enable GeoNode metadata to be managed with less duplication between component databases, and provide streamlined CSW services, accessing a single metadata database directly from source of publishing.

Proposed By

Jeffrey Johnson

Assigned to Release

TBD

State

For Review and Comment

Motivation

Currently, all catalogue metadata is stored as per the CSW's implementation database, in addition to GeoNode's Django db. As a result, there exists duplication between publishing metadata to the GeoNode Django db, as well as the CSW db. This has resulted in supporting saving metadata across multiple databases.

Reducing GeoNode's metadata database to a single instance adds value to the project in reducing duplication of metadata and supporting synchronization of on create/update/delete operations.

The scope of this GNIP is constrained to pycsw.

Proposal

Transactions

Remove all CSW transactional functionality. Since the CSW will read directly from the GeoNode Django database, there is no need to invoke CSW transactions on top of saving to the Django db.

OGC:CSW Direct Database Access

Utilize the same query functionality as present in GeoNode, against a pycsw instance which is configured to read directly from the GeoNode Django db. Since pycsw is written in Python, utilize geonode.maps.models.ResourceBase as the class to operate queries against.

Testing

Provide test mechanisms to demonstrate interoperability. This will involve invoking the existing integration tests against a pycsw Django configured backend.

Alternatives

Do nothing

Feedback

Implemented as part of https://github.com/GeoNode/geonode/pull/387

Voting

Clone this wiki locally