Transactions

pycsw has the ability to process CSW Harvest and Transaction requests (CSW-T). Transactions are disabled by default; to enable, manager.transactions must be set to true. Access to transactional functionality is limited to IP addresses which must be set in manager.allowed_ips.

Supported Resource Types

For transactions and harvesting, pycsw supports the following metadata resource types by default:

Resource Type

Namespace

Transaction

Harvest

Dublin Core

http://www.opengis.net/cat/csw/2.0.2

yes

yes

FGDC

http://www.opengis.net/cat/csw/csdgm

yes

yes

GM03

http://www.interlis.ch/INTERLIS2.3

yes

yes

ISO 19139

http://www.isotc211.org/2005/gmd

yes

yes

ISO GMI

http://www.isotc211.org/2005/gmi

yes

yes

OGC:CSW 2.0.2

http://www.opengis.net/cat/csw/2.0.2

yes

OGC:WMS 1.1.1/1.3.0

http://www.opengis.net/wms

yes

OGC:WMTS 1.0.0

http://www.opengis.net/wmts/1.0

yes

OGC:WFS 1.0.0/1.1.0/2.0.0

http://www.opengis.net/wfs

yes

OGC:WCS 1.0.0

http://www.opengis.net/wcs

yes

OGC:WPS 1.0.0

http://www.opengis.net/wps/1.0.0

yes

OGC:SOS 1.0.0

http://www.opengis.net/sos/1.0

yes

OGC:SOS 2.0.0

http://www.opengis.net/sos/2.0

yes

WAF

urn:geoss:urn

yes

Additional metadata models are supported by enabling the appropriate Profile Plugins.

Note

For transactions to be functional when using SQLite3, the SQLite3 database file (and its parent directory) must be fully writable. For example:

$ mkdir /path/data
$ chmod 777 /path/data
$ chmod 666 test.db
$ mv test.db /path/data

For CSW-T deployments, it is strongly advised that this directory reside in an area that is not accessible by HTTP.

Harvesting

Note

Your server must be able to make outgoing HTTP requests for this functionality.

pycsw supports the CSW-T Harvest operation. Records which are harvested require to setup a cronjob to periodically refresh records in the local repository. A sample cronjob is available in etc/harvest-all.cron which points to pycsw-admin.py (you must specify the correct path to your configuration). Harvest operation results can be sent by email (via mailto:) or ftp (via ftp://) if the Harvest request specifies csw:ResponseHandler.

Note

For csw:ResponseHandler values using the mailto: protocol, you must have server.smtp_host set in your configuration.

OGC Web Services

When harvesting OGC web services, requests can provide the base URL of the service as part of the Harvest request. pycsw will construct a GetCapabilities request dynamically.

When harvesting other CSW servers, pycsw pages through the entire CSW in default increments of 10. This value can be modified via the manager.csw_harvest_pagesize configuration option. It is strongly advised to use the csw:ResponseHandler parameter for harvesting large CSW catalogues to prevent HTTP timeouts.

Transactions

pycsw supports 3 modes of the Transaction operation (Insert, Update, Delete):

  • Insert: full XML documents can be inserted as per CSW-T

  • Update: updates can be made as full record updates or record properties against a csw:Constraint

  • Delete: deletes can be made against a csw:Constraint

Transaction operation results can be sent by email (via mailto:) or ftp (via ftp://) if the Transaction request specifies csw:ResponseHandler.

The Testing contain CSW-T request examples.