Task #2120
Feature #1764: Finalize dataoneTypes schema for public release
Types.SystemMetadata: Removing for fields that should be set by MN
100%
Description
This one is closely related to the mutability stuff, so may overlap a ticket related to that.
SystemMetadata currently requires the submitter, dateUploaded and dateSysMetadataModified elements, but these values should be filled in by the MN when the object is first created. The MN should set submitter to the authenticated subject and dateUploaded and dateSysMetadataModified to the current time.
So, the fields should be optional in the SystemMetadata. If they are provided by the client, we should probably just quietly overwrite them. But we can also decide to reject the create() and raise an InvalidSystemMetadata, maybe after first checking submitter for a conflict between the submitted value and the authenticated subject.
History
#1 Updated by Dave Vieglais about 13 years ago
- Assignee changed from Matthew Jones to Chris Jones
- Target version changed from Sprint-2011.49-Block.6 to Sprint-2011.50-Block.6
Decision:
Some fields should be made optional and documentation updated to clearly indicate responsibility for setting the values.
- submitter (MN should set)
- dateUploaded (MN should set)
- dateSysmetaModified (MN should set)
- serialVersion (CN should set)
There was some discussion about splitting into three separate type structures, a base set by clients, a superset set by MNs, and an additional superset set by CNs. This would involve significant re-implementation though, hence is rejected due to time and resource constraints.
#2 Updated by Chris Jones about 13 years ago
- Status changed from New to Closed
These fields are now optional, and the documentation states that the [CN|MN] MUST set them when it receives the sysmeta.