Closed dloy closed 3 weeks ago
Recreate object in Merritt as if the ?changeToken=value had not been attached as an extension on the fileID
Requires that conditions causing changeToken problem no longer exist for future versions
API to process in place changeToken update to an existing Merritt Object
curl -X GET "http://storage.cdlib.org:35121/fix/6501/ark%3A%2F13030%2Fm56t6p2z?type=changeToken"
API - changeToken fix
http://<storage host:port>/fix/<base node number>/<ark>?type=changeToken
API to reset modified changeToken object in Merritt inv database
curl -X POST \
-F "url=http://storage.cdlib.org:35121/fix/6501/ark%3A%2F13030%2Fm56t6p2z?type=changeToken" \
-F "responseForm=xml" \
http://inventory.cdlib.org:36121/replace
API - inventory replace
curl -X POST \
-F "url=<storage fix url> \
-F "responseForm=xml" \
http://<inventory host:port /replace
Problem
There are specific content issues that because of our data architecture require different approaches for cleanup.
Examples:
A generic way of fixing all of these is not clearly defined (at this point)
Proposal
Use a storage "fix' command with inventory "replace".
Storage fix
A proposed format for this command:
When storage receives this request:
Inventory replace
A proposed format for this command:
System fix
CRITICAL TO THIS PROCESS is that the system has corrected this problem for all subsequent versions
Example ?type=changeToken
For all versions of object
After:
The result of this process is:
As mentioned above a changeToken fix needs to be made in the Nuxeo handling so all future versions will not include the changeToken as part of the file path name.
Comment
This approach allows a specific fix to be applied to storage content without requiring a generic approach which is not clearly understood.
The fixed content will allow all generated files to meet current restrictions: e.g. manifest.xml
Using this approach the fixes can be applied now. As these fixes get applied and identified, later generic methods or architectural changes can be made.
Note: Requires new Inventory mrt-zk implementation.