Date

https://duraspace.zoom.us/j/593874187

Find your local number: https://zoom.us/u/X8NrH

Attendees


Discussion items

TimeItemWhoNotes

Tom's questions

Left TBD behind in Flow spec is resolved. Corresponding updates to Repository spec. Is this an adequate resolution? Yes. Note on cache - could just be a proxy pass through, 300-level response.

Service level description at top of Gateway API. JSON for describing. 

PUT object has new request header specifying which storage classes/DDPs to post to. Resolves note at bottom. Storage class terminology comes out of AWS. Note that naming should be discussed later. 


Versioning

Use case number 2. Repository to Gateway: this involves a number of PUT object requests. 

  • In order to support this use case, the Gateway has to be able to accept a version parameter from the Repo. Need to pass that parameter to the Bridge and roundtrip it. Version parameter has to be semantical to reconstruct if Repo is lost.  
  • Starting point: add version header to requests, see how that looks
    • Version header content semantics: ordinal numbers, date/timestamps. Date/timestamps follow other standards - Momento. Decision: date/timestamps.
    • Expectations on PUT header call from the repository to the Gateway uses timestamp. Don't pass a version? Is version required on all PUTS?
      • Restore request - get whatever's cached vs getting the latest version back. 
      • Symmetrical headers across the board solve the problem. Assume exact matching. 
      • List versions in place. Versions are understandable - IDs of filegroups and timestamps are understandable from Gateway and Bridge. "Give me a listing of all objects and all versions of those objects for a given repository."
    • Questions for next discussion 
      • What is the recovery workflow for versions?



Spec changes needed

  • Gateway: PUT Object call will need a version header
  • Gateway: DELETE Object call will need a version header
  • Gateway: POST Object Restore call will need a version header
  • Gateway: A new endpoint will be needed to retrieve a listing of deposited objects and associated versions (to support the rebuild use case)
  • Bridge: Deposit Content call will need to support version value for each file
  • Bridge: Delete Content call will need to support version value for each file
  • Bridge: List Deposited Content will need to support version value for each file
  • Bridge: Restore Content call will need to support version value for each file

Outstanding Questions

  • For each call, what is "default" if no version is provided?
  • What is the recovery workflow for versions?
    • If the Repository needs a file from a given date range (moment-style), will the Gateway be the place where the file to be restored is determined (e.g. retrieve list of versions, select most appropriate, perform restore call)?
  • Is there a need for the Bridge calls (Deposit/Delete/List) calls to associate versions with filegroups or is files sufficient? If filegroups are versioned, do files need to be; having both may cause confusion.
  • Are version values required on deposit?

Action items

  •