DataONE RESTful API

Dryad is a member node in the DataONE network. DataONE is an NSF-funded DataNet, a distributed organization that aims to provide persistent, robust, and secure access to well-described and easily discovered data from from the genome to the ecosystem, including Earth observational data from atmospheric, ecological, hydrological, and oceanographic sources.

Usage
The standard URL prefix for interacting with Dryad DataONE interface is "mn" (e.g., http://datadryad.org/mn/)

Current Usage
The table below includes the current usage and implementation status.

Identifiers and Versioning
Dryad needs to keep a timestamp as part of the D1 identifier for metadata, since the Dryad metadata can change without changing the Dryad version number.

See the DOI Usage page for information on Dryad's native identifier handling.

When Dryad replicates data from other systems, it will store data and metadata in separate objects, using Dryad metadata for Dryad's internal tracking purposes.

Workflow
The Member Node module is built and deployed the same way as the regular DSpace implementation. Its code lives in (trunk)/dspace/modules/dataone-mn.

Sample Uses
Read the scientific metadata for a data package: https://datadryad.org/mn/object/http://dx.doi.org/10.5061/dryad.8790

Read the internal system metadata for a data package: https://datadryad.org/mn/meta/http://dx.doi.org/10.5061/dryad.8790

Read the scientific metadata for a data file: https://datadryad.org/mn/object/http://dx.doi.org/10.5061/dryad.8790/1

Read the internal system metadata for a data file: https://datadryad.org/mn/meta/http://dx.doi.org/10.5061/dryad.8790/1

Download the content of a data file: https://datadryad.org/mn/object/http://dx.doi.org/10.5061/dryad.8790/1/bitstream

DSpace-native Member Node API Implementation
It is built and deployed the same way as the regular DSpace implementation (see How To Install Dryad).

An example get call: https://datadryad.org/mn/object/doi%3A10.5061/dryad.20/1

Testing
To test the current functionality of the DataONE API, use the DataONE Member Node Tester.

Outputs can be compared with the DataONE Sandbox Node, or one of the other DataONE nodes.

To see how contents are listed in a coordinating node, see the Coordinating Node access point.

Registration and Certificates
The DataONE registration process is documented at:
 * http://mule1.dataone.org/OperationDocs/member_node_deployment/registration.html
 * http://mule1.dataone.org/OperationDocs/member_node_deployment/node-registration-update-script.html

Sample call for the registration script: ./d1noderegister -f nodeDev.xml -b https://cn-stage.test.dataone.org/cn -E mnTestDRYAD/DataONETestIntCA/certs/urn\:node\:mnTestDRYAD.pem

To test that certificates are installed correctly, use a command like: openssl s_client -showcerts -connect dev.datadryad.org:https

Updating Node Configuration
To force DataONE to update its configuration for the member node, you can call the Coordinating Node's update method using a command such as: curl -E /home/dryad/certs/mnDRYAD-2014-05-14/urn_node_DRYAD.pem  -X PUT  -F "node=@/home/dryad/certs/nodeProd.xml"  https://cn.dataone.org/cn/v1/node/urn:node:DRYAD

Relation to DSpace

 * We aim to make this work with DSpace as closely as possible, because it is likely that other institutions will want to become member nodes (e.g., UIUC, MIT)

TODO: Releasing Dryad's MN Implementation to General DSpace

 * 1) Move settings to config file
 * 2) Genericize the metadata output
 * 3) Ensure packaging information is not tightly tied into the MN code

DataONE member node architecture document

 * Member Node API
 * Rest overview