...
The REST API is split in to two main parts, repair and fulfillment.
Repair API
GET /api/repairrepairs/requests?<requested=?,collection=?,depositor=?,offers=?>
GET /api/repair/requestsrepairs/<id>
POST /api/repairrepairs/requests
POST /api/repairrepairs/requests/<id>/fulfill
Fulfillment API
PUT /api/repairs/<id>/cleaned
PUT
GET /api/repair/fulfillments?<to=?,from=?,status=?>repairs/<id>/replaced
PUT
GET /api/repairrepairs/fulfillemnts<id>/<id>audit
PUT /api/repair/fulfillmentsrepairs/<id>/ready
PUT /api/repairs/<id>/
...
status
PUT
/api/repairs/<id>/validated
PUT /api/repairs/repair/fulfillemnts/<id>/complete
Models
Repair Request
A repair request, sent out by a node who notices they have corrupt files in a collection
Code Block | ||||
---|---|---|---|---|
| ||||
{ "depositor": "depositor-with-corrupt-collection", "collection": "collection-with-corrupt-files", "files": ["file_0", "file_1", ..., "file_n"] } |
Repair
...
A repair structure, returned by the Ingest server after a repair request is received
Code Block | ||||
---|---|---|---|---|
| ||||
{ "id": 1, "fulfillment": 3, "createdAt": "2017-03-15T19:22:29Z", "updatedAt": "2017-03-15T19:22:29Z", "cleaned": true|false, "replaced": true|false, "validated": true|false, "audit": "pre|auditing|success|fail", "status": "requested|fulfillingstaging|ready|transferred|repaired|failed", "requesterto": "node-with-corrupt-file", "requester": "user-from-node", "depositor": "depositor-with-corrupt-collection", "fulfillment": 3, "collection": "collection-with-corrupt-files", "files": ["file_0", "file_1", ..., "file_n"] } |
Fulfillment Model
A fulfillment for a repair, returned by the Ingest server after a node notifies it can fulfill a repair request. Credentials are only visible to the requesting node and administrators.
Code Block | ||||
---|---|---|---|---|
| ||||
{ "id": 3, "tofrom": "node-with-corruptvalid-filefiles", "fromtype": "ace|node-with-valid-file", "status": "staging|ready|complete|failedto-node|ingest", "credentials": { ... } "repair": 1 } |
Credentials ACE
Code Block | ||||
---|---|---|---|---|
| ||||
{ "type": "ace", "api-key": "ace-api-key", "url": "https://node_v/ace-am" # ?? Not sure if really needed } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "type": "node-to-node", "urllink": "node_i@node_v.edu:/homes/node_i/path/to/repair" } |
Credentials
...
Ingest
Code Block | ||||
---|---|---|---|---|
| ||||
{ "type": "ingest", "urllink": "node_i@chron.ucsd.edu:/path/to/repair" } |
...