Feature #14199

Updated by Peter Amstutz about 1 year ago

Enable clients to reference blocks from remote clusters, and have those blocks automatically copied to the local cluster.

Design sketch:

* Feature to instruct keepstore to pull a block, save it, and return signed locator (variation on "proxy a block request")
* Controller instructs keepstore to pull each block with +R signature and rewrites the manifest with local signatures
* Because this could take a while, controller should return "202 Accepted" so the query doesn't time out
* Client needs be indicate it understands "202 Accepted" (probably a query parameter)
* If it is a POST request, how does the client know when the collection is ready? Do we create a new empty collection with a note "being populated", return the uuid, and then update it when the complete manifest is ready?
** If not, then it needs to return some other token that can be used to resolve the collection being downloaded by controller into the real collection when ready
** What happens if controller falls over while it is processing the collection?