Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backend CRUD Files (with versions) #21

Open
lmarini opened this issue Nov 11, 2021 · 3 comments
Open

Backend CRUD Files (with versions) #21

lmarini opened this issue Nov 11, 2021 · 3 comments
Assignees

Comments

@lmarini
Copy link
Member

lmarini commented Nov 11, 2021

In version 2 of Clowder we will be implementing file versioning from the beginning. Since we will be leveraging Minio and S3 it makes sense to build our implementation around object versioning in those systems. Here is some information on how Minio manages versioned buckets:

https://docs.min.io/docs/minio-bucket-versioning-guide.html

A couple things to note:

  1. Buckets are not versioned by default
  2. When asking for a file without specifying the versionId, the latest version is returned (we should mirror this behavior)

Some questions:

  1. Since the file id in Minio will be the file id in Mongo, do we need to keep the versions ids in Mongo, or retrieve them from Minio? This might be relevant to the discussion of keeping metadata attached to specific versions. This means that the versionId would need to be captured by Clowder to be used internally.
@longshuicy
Copy link
Member

From a frontend point of view, what kind of action do you want user to be able to perform regarding versioning?

on top of my head, is it going to be similar as Box where you have a small badge right next to the file indicates what version? Anything else?

@max-zilla
Copy link
Contributor

I imagine having a big download button as normal that downloads selected version, which defaults to latest.

Then, somewhere smaller, a file version or "last modified" date with a dropdown arrow where you can select a previous version.

When you select previous, any changes to metadata are updated visually. Download button then links that one.

I assume we are NOT doing full versioning of description, etc. like a wikipedia edit history right?

@max-zilla max-zilla self-assigned this Nov 16, 2021
@max-zilla
Copy link
Contributor

Some metadata should be version-specific (previews, metadata, tags, etc...), some metadata should be global and not change with versions (name, description).

@max-zilla max-zilla moved this to In Progress in Clowder v2 Sprints Dec 16, 2021
@lmarini lmarini moved this from In Progress to Done in Clowder v2 Sprints Jun 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

3 participants