Closed emetsger closed 5 years ago
This doc provides some more information about the metadata blob (the blob as it stands prior to the metadata schema service changes) and its relationship to the internal Deposit Services model.
@emetsger we'll by pass the optional change in 2 ways:
with that said is there enough information to estimate this ticket and its associated ticket #215 ?
0.5 LE (a total of 1.0 LE for #214 and #215)
Required changes
ModelBuilder
reads theSubmission.metadata
(i.e. metadata blob) and parses it when creating aDepositSubmission
. The changes introduced by the schema service to the metadata blob will require updating theModelBuilder
to read and interpret the new blob format.Because the information contained in the blob is staying the same, there shouldn't be any need to adjust the internal model (e.g.
DepositSubmission
orDepositMetadata
) used by Deposit Services: fields shouldn't need to be added, removed, or moved.Optional changes
Backwards compatibility with existing Submission resources
Do we want Deposit Services to be backwards-compatible with metadata blobs present in the PASS repository today?
Making this decision depends if we expect Deposit Services to process any Submissions that have the old metadata blob format in the repository:
If yes, then that work must be implemented by any code for this issue, and must be illustrated in unit tests and integration tests. The schema version or identity can be used to decide how to parse the blob.
Impact on other issues
Issue #215 documents the changes required to sample
Submission
graphs in theshared-resources
module. While #215 asks for all sample submission graphs to be updated to the latest metadata blob version, this issue will require at least one sample submission graph be added that uses the old metadada blob format.Backwards compatibility with future Submission resources
If we anticipate the format or information contained in the blob to change in the future, then I would suggest that the parsing logic be selected based on the schema identity or version. That way backward compatibility can be maintained as the format of the blob evolves.