storj / roadmap

Storj Public Roadmap
Other
11 stars 4 forks source link

Object Versioning: Full Web Console Integration #89

Closed ferristocrat closed 4 months ago

ferristocrat commented 11 months ago

Background

What is the problem/pain point?

Storj is introducing object versioning. To maximize its utility, users need a user-friendly web console interface. Without this, they may find it challenging to manage and comprehend their object versions solely through programmatic access.

Who is impacted?

What is the impact?

Why now?

As Storj advances with the object versioning implementation, integrating it into the web console concurrently ensures that users can maximize the feature's benefits as soon as it's launched.

Requirements

User Story

As a Storj user, I want to view and manage different versions of my objects directly from the web console. This will enable me to effortlessly track changes, download specific versions, and revert to previous states without needing programmatic access.

Acceptance Criteria

  1. Object Listing with Versions
    1. Users should be able to toggle between seeing just the latest version of objects and seeing all versions of objects
    2. Each object should have a dropdown to show available versions and include the same metadata that is shown for unversioned buckets AND the addition of the version id
  2. Object Operations
    1. Actions for each object version should be as follows
      1. Restore
        1. Only relevant to versions other than the current version
        2. Restore should perform a copy object into the same bucket, using the specified versionId as the source
        3. There are two methods we could use to do a “restore” and this one is the safest. Reference: Restoring previous versions - Amazon Simple Storage Service
        4. Users should be prompted with a confirmation dialog that says: “You are about to restore version [versionId] of [objectName]. This action will create a copy of version [versionId] as the latest version of the object. All existing versions, including the current one, will be preserved.”
      2. Delete
        1. Delete a single version - user should be able to delete a specific version of an object
        2. Confirmation: user should be prompted to confirm the delete and acknowledge that it will be permanently deleted - unable to restore
        3. When deleting a specific version a DELETE call should be made specifying the versionId, resulting in a permanent delete
        4. Reference: Deleting object versions from a versioning-enabled bucket - Amazon Simple Storage Service
        5. Multiple versions: user should be able to select multiple versions of an object and delete them all in a single request
        6. Confirmation: user should be prompted to confirm the delete and acknowledge that the delete will be permanent for the selected versions - unable to restore
        7. When deleting multiple specific versions of an object DeleteObjects call should be made with each version
        8. Download
        9. Same functionality as downloading an unversioned object
    2. Linkshare should only be available on the current version as the share will always return the current version of an object
  3. Bucket Operations (already implemented)
    1. Buckets list view should have an indicator with the versioning status of the bucket
    2. Users should be able to enable versioning when they create a new bucket
    3. Users should be able to suspend versioning on a bucket
    4. Users should be able to enable versioning on a bucket

Success Metrics

Productboard Link


AWS S3 Web Console

Walk through AWS S3 console for Object Versioning:

https://github.com/storj/roadmap/assets/7063002/6f84234c-4e03-4be7-aa7b-6ef246de1509

References:

S3 Actions relevant to Object Versioning

https://github.com/storj/gateway-mt/issues/363

NiaStorj commented 10 months ago

@ferristocrat will break up ticket to show the view only

ferristocrat commented 10 months ago

@ferristocrat will break up ticket to show the view only

Added https://github.com/storj/roadmap/issues/96

iglesiasbrandon commented 4 months ago

This roadmap item has been completed!