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
DRAFT edits for review:
MNCore.getLogRecords()
updated ‘pid’ parameter to string and renamed to
‘pidFilter’CNCore.getLogRecords()
updated ‘pid’ parameter to string and renamed to
‘pidFilter’MNCore.getLogRecords()
added an optional parameter pid that specifies
the prefix of the pid for matching on log records. Support for this parameter
is optional, and a MN implementation may silently ignore if present in the
request and the node is unable to support the pid prefix filter.CNCore.getLogRecords()
added an optional parameter pid that specifies
the prefix of the pid for matching on log records. Support for this parameter
is currently optional for CNs, and may be ignored if present in the request.MNStorage.GenerateIdentifier()
new method added to the MNStorage API.
This signature mirrors the CNCore.GenerateIdentifier method and is made
available on Member Nodes as they may choose to have an organizational
association with an identifier service.CNRead.search()
clarified how to specify path and query separators in the
value of parameter ‘query.’ Change xmit type of parameter ‘query’ to ‘path’,
since it contains both path and query (to simplify client conformity testing)CNRead.search()
clarified that queryType is specified as a URL path parameter
and the remainder of the URL (path and query) is passed to the respective
search engine as indicated by the value of queryType.CNCore.hasReservation()
REST URL changed a POST message to GET
/reserve/{pid}?subject={subject}
CNIdentity.updateAccount()
REST URL changed to PUT /accounts/{subject}
CNIdentity.verifyAccount()
REST URL changed to PUT /accounts/verification/{subject}
CNIdentity.getSubjectInfo()
and
CNIdentity.listSubjects()
changed from Types.SubjectList
to
Types.SubjectInfo
MNReplication.getReplica()
corrected in the documentation
to indicate response is an octetStream of bytes that represent the requested
object.MNStorage.create()
CNCore.create()
CNIdentity.verifyAccount()
CNIdentity.requestMapIdentity()
CNCore.registerSystemMetadata()
CNCore.hasReservation()
to
remove requirement for a Member Node call to the CN to support create
operations.MNReplication.replicate()
,
CNCore.registerSystemMetadata()
, CNIdentity.registerAccount()
,
CNIdentity.updateAccount()
, CNIdentity.getPendingMapIdentity()
,
CNRegister.register()
.CNCore.hasReservation()
has been changed to include a
Types.SubjectInfo
field to identify the principal who originally made
the reservation request.CNCore.hasReservation()
was changed to
POST and /hasReservation
respectively.CNRead.resolve()
to return a HTTP 303 See Other response on
successCNCore.setObsoletedBy()
to update the obsoletedBy information for
an object. Note that the proposed endpoint may change pending discussion.CNReplication.deleteReplicationMetadata()
to remove the replica
metadata for a particular node for an object. Only callable by CNsreplaced tabs with ” “
Event names in description changed to same case as enumerated values
various: minor formatting changes for rendering in architecture docs.
Added root elements for AccessRule, LogEntry, NodeReplicationPolicy, ObjectInfo, Service, Services, Schedule, Synchronization, NodeReplicationPolicy, ServiceMethodRestriction.
AccessRule, LogEntry, NodeReplicationPolicy, ObjectInfo, Service, Services, Schedule, Synchronization, NodeReplicationPolicy, ServiceMethodRestriction.
2011-12-19 : Version 1.0
2011-12-14 : Version 1.0
- Updated MethodCrossReference.xls to reflect API changes for CN.setReplicationStatus()
- Updated MethodCrossReference.xls to reflect API changes for CN.isNodeAuthorized()
Changes to dataoneTypes.xsd:
- Added ChecksumAlgorithmList
- Limited valid checksums to SHA-1 and MD5
- Added ReplicationStatus.FAILED to the enumeration
- Added a new SimpleType: NonEmptyNoWhitespaceString800, used to restrict identifiers
- Removed Permission.REPLICATE
- Changed SystemMetadata to make the following fields optional: submitter, dateUploaded, dateSystemMetadataModified, serialVersion. However, an MN or CN must set them.
- Created Types.CrontabEntrySeconds to restrict the seconds field in a Schedule
- Changed documentation for SystemMetadata.authoritativeMemberNode
- Added a new NodeReplicationPolicy type, to be used as an optional structure in Node
- Removed MonitorInfo and MonitorList types - deprecated.
- Updated documentation for the Node type.
fromDate <= date <
toDate
fromDate <= date <
toDate
- CN.removeGroupMembers - changed REST specification from “DELETE /groups/{group}” to “POST /groups/remove/{group}
- CN.getFormat: removed InvalidRequest from documentation, (was supposedly removed earlier, but reappeared)
- CN.listSubjects - added status parameter to the method
- CN.search - added queryType and query parameters as optional (documentation fix)
- changed setOwner() to setRightsHolder()
- MN.getReplica - documentation fix, added pid as parameter - it was in REST specification but not listed as a parameter
Java libclient / implementation changes (in branch)
- CN.verifyAccount - removed NotFound from java api and impl
- CN.updateAccount - removed IdentifierNotUnique from java api and impl
- CN.mapIdentity - refactored method signature from (session, subject1, subject2) to (session,subject)
- CN.mapIdentity - changed message body to pass subject as paramPart instead of filePart.
- CN.requestMapIdentity - added IdentifierNotUnique to java api and impl
- CN.denyMapIdentity - removed InvalidRequest from java api and impl
- CN.removeMapIdentity - removed InvalidRequest from java api and impl
- CN.search - changed resource in java libclient from ‘object’ to ‘search’
- CN.setAccessPolicy - put parameter ‘pid’ on path (removed from filePart)
- CN.setOwner - changed resource from ‘accounts/map’ to ‘owner’
- MN.getReplica - added InsufficientResources to java api and impl
- MN.setAccessPolicy - removed method from java api and impl
- CN.setOwner - changed name to setRightsHolder in java api and impl
Client bug fixes (in trunk)
- MN.getLogRecords - added missing ‘start’ and ‘count’ parameters to impl call.
- MN.listObjects - fixed failed exception recast
The following changes were enacted on the dataoneTypes.xsd schema as a result of discussions during the DataONE all-hands meeting held during the week of October 18, 2011.
No further significant changes to dataonetypes.xsd are expected for version 1.0.0 of the DataONE infrastructure.
Types.SystemMetadata
complex type. The serialVersion value is
incremented upon any updates to a system metadata instance, and is used to
indicate which is the current version (highest serialVersion is always the
latest) of system metadata for an object.Types.SystemMetadata
complex typeTypes.ObjectFormat
complex typeTypes.ObjectInfo
complex typeTypes.Person
complex typeTypes.Person
complex type.
This value is true if the name and email address of the Person have been
verified to ensure that the givenName and familyName represent the real
person’s legal name, and that the email address is correct for that person
and is in the control of the indicated individual. Verification occurs
through a established procedure within DataONE as part of the Identity
Management system.