Warning: These documents are under active development and subject to change (version 2.1.0-beta).
The latest release documents are at: https://purl.dataone.org/architecture

APIs Internal to Coordinating NodesΒΆ

The DataONE Coordinating Nodes are composed of several components that by their nature will be operating in different JVMs. This document outlines the methods that are exposed by the different components in a Coordinating Node.

boolean identity.isPublic(Subject)

boolean identity.isGroup(Subject)

Subject[] identity.getSubjectGroups(Subject)

XML objectStore.getSystemMetadata(Identifier)

OctetStream objectStore.get(Identifier)

boolean objectStore.registerSystemMetadata(Identifier, SystemMetadata)

CN_crud.updateReplicaMetadata(token, pid, Types.ReplicaMetadata) -> Types.Identifier

 full replacement of ReplicaMetadata, changes date sysmeta modified


CN_crud.setAccessPolicy(token, pid, AccessPolicy) -> boolean

  RE /access/pid (body containing token, AccessPolicy) -> boolean
  changes date sysmeta modified too

CN_crud.setReplicationPolicy(token, pid, ReplicationPolicy) -> boolean
REST API: PUT /replication/pid (body containing token, ReplicationPolicy) -> boolean
   - changes date sysmeta modified too


CN.setDescribes()

   describes can be set in its own method, but only with write access to
   described object and describing object

   may want to relax the requirement later to allow third party
   annotations/perspectives/derivations on other people's data, but need to be
   able to differentiate the primary provider's description from these other
   descriptions

CN.setDescribedBy()
   describedBy can be set in its own method, but only with write access to described object


ObjectList getDescribes(Identifier)

ObjectList getDescribedBy(Identifier)

ObjectList getRelatedObjects(Identifier, RelationshipEnum)