Workflow for Managing Remote Storage
This is the main ticket for dealing with remote storage. Please feel free to create corresponding sub-tickets as required.
Types of Remote Storage
We currently support these types of remote storage, but more might be added later on.
- Default Storage
- Needs to be set up be a system administrator of an web-instance
- Users can not change it
- Maybe we want to give users the ability to disable default storage (future feature)
- Amazon S3 Storage
- Can be set up by users
- Always uses the same form
- Might require additional instructions
- SSH Server Storage
- Can be set up by users
- Always uses the same form
- Needs SSH key (automatically generated in multi-user mode)
- Might require additional instructions
- Git Storage
- Can be set up by users
- Always uses the same form
- Needs SSH key (automatically generated in multi-user mode)
- Has currently simple instructions for using GitLab
Instructions
The default storage should work out of the box and doesn't require any instructions.
All user-configurable remote storage options might require instructions to guide the user through the setup process.
Remote storage that requires an SSH key (currently SSH and Git) even requires a setup step after the remote storage has been added by the user. This is because the SSH key is generated when the storage is added and then it still needs to be added by the user to their SSH Server or Git Service Provider.
Because of this, we might want to add these kind of storages as disabled and only enable them when the user has informed us that she added the SSH key shown to her.
Error Handling
Remote storage might fail for many reasons, temporarily or permanently, initially or only later on. We probably want to disable remote storage that failed too many times.
Whenever something in the repository is changed, it is published automatically to all configured and active remote storage providers.
Use-Cases
- Adding a new remote storage
- Modifying an existing remote storage
- Noticing a remote storage is not working properly (anymore)
- Re-enabling/re-trying an existing remote storage after it has been disabled due to too many errors
- Maybe also manually disabling, but not deleting a remote storage
- Removing a remote storage, maybe with the option to delete the repository from it, to not leave outdated repos behind