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

Add superadmin UI for configuring org storage #2113

Open
tw4l opened this issue Oct 17, 2024 · 3 comments
Open

Add superadmin UI for configuring org storage #2113

tw4l opened this issue Oct 17, 2024 · 3 comments
Assignees
Labels
front end Requires front end dev work ui/ux This issue requires UI/UX work

Comments

@tw4l
Copy link
Member

tw4l commented Oct 17, 2024

Follow-up to #2093

Related to #578

Similar to org quotas and proxies, we should add a superuser-only admin UI for configuring org storage on the orgs list.

For each org, we should support:

  • Adding a custom storage
  • Removing a custom storage
  • Seeing what storages are currently configured for an org via GET /storage
  • Updating primary storage location via POST /storage to any storage option listed from /all-storages (if files are already stored on org, this will set org to read-only while migration happens)
  • Updating replica storage locations via POST /storage-replicas to any storage options listed from /all-storages (any migrations happen in background jobs and don't interfere with archiving or set the org to read-only)

This might be best handled in a few different dialogs rather than all put into one. Or this could be a good opportunity to break out superadmin org configuration from the existing dialogs into a new detail page.

@tw4l tw4l assigned tw4l and SuaYoo and unassigned tw4l Oct 17, 2024
@tw4l tw4l moved this from Triage to Todo in Webrecorder Projects Oct 17, 2024
@SuaYoo SuaYoo added the front end Requires front end dev work label Oct 21, 2024
@SuaYoo SuaYoo moved this from Todo to Ready in Webrecorder Projects Oct 21, 2024
@SuaYoo SuaYoo moved this from Ready to In Design in Webrecorder Projects Nov 6, 2024
@SuaYoo SuaYoo added the ui/ux This issue requires UI/UX work label Nov 12, 2024
@ikreymer ikreymer moved this from In Design to Todo in Webrecorder Projects Nov 12, 2024
@SuaYoo
Copy link
Member

SuaYoo commented Nov 20, 2024

@Shrinks99 Could you add screenshots or a link to the wireframes when this is ready?

@SuaYoo SuaYoo moved this from Todo to In Design in Webrecorder Projects Nov 20, 2024
@Shrinks99
Copy link
Member

Alright! I've finally gotten around to this. Excalidraw link is here: https://link.excalidraw.com/l/2YrNHjC4Nsy/1MsuIg98K5

Screenshot 2024-11-22 124343

@tw4l
Copy link
Member Author

tw4l commented Nov 22, 2024

Specifically for when applying the change to new primary storage location, there are a few important notes if files already exist in that org that need to be migrated:

  • The response to the POST /storage API endpoint that sets primary storage will return the id for the background job that handles the file migration to the new s3 bucket as id in the response
  • The org will be set read-only while the migration occurs
  • The progress of the background job can be checked with GET orgs/{oid}/jobs/{job_id}/progress. The response contains two fields: percentage, a float between 0-1 repesenting the current percentage completeness of the job, and eta, an optional string description of remaining time as provided by rclone
  • When the migration completes, the operator will disable read-only on the org

Note that while this migration is happening, replica storages cannot be changed.

If an org is new and doesn't have any content yet, none of this process will happen and the storage will just be changed over immediately.

@Shrinks99 Shrinks99 moved this from In Design to Ready in Webrecorder Projects Nov 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
front end Requires front end dev work ui/ux This issue requires UI/UX work
Projects
Status: Ready
Development

No branches or pull requests

3 participants