Move embargo, co_authors, and shared_with from entry to upload

We want to provide uploads with a standard owner, read, write permission set. Those overlap with our previous co_authors and share_with metadata key. We should introduces the former on an upload level and remove the latter from the entry level.

What about the current data?

  • no* mismatching embargo that is newer than 3 years, OK
  • only 3 uploads with mismatching shared_with that are newer than 3 years (for lifted embargo shared_with is meaningless), OK
  • ~1000 uploads with mismatching co_authors, NOT OK

We can move with_embargo and shared_with. We should introduce an additional entry-based additional_authors key to capture co authors that have not directly participated in the upload.

Maybe we should have a metadata field on uploads to distinguish the metadata from processing, id, etc. keys?

What should the keys be?

  • uploaders|owners, authors|co_authors, reviewers, additional_authors (on entries)
  • owners, writers|editors, readers
  • do we need a dedicated single creator or is owners enough?
  • (with_embargo, embargo_period) | embargo, publish_time

Actions:

  • create (authors)
  • delete (authors)
  • publish (authors)
  • upload stuff, delete stuff, move stuff (authors)
  • change metadata (upload + entries) (authors)
  • see stuff (authors, shared_with, everybody if published without embargo)

Transformation

  • *authors = [uploader]
  • *shared_with = [Calc.shared_with for Calc in calcs]

Example:

upload: {
  upload_id: ...,
  process_status: ...,
  errors: [],
  ...
  metadata: {
    upload_name: ...
    authors: [],
    shared_with: [],
    embargo: 12,
    create_time: 114344324234,
    publish_time: 114344324234
  }
},
entry: {
  entry_id: ...,
  parser: ...,
  process_status: ...,
  errors,
  ...,
  metadata: {
    comment: ...,
    references: [],
    datasets: [],
    co_authors: []
  }
}
Edited Aug 30, 2021 by Markus Scheidgen
Assignee Loading
Time tracking Loading