Provide UI support for choosing app/package version during installation
This is a follow-up to the conversation at https://forum.cloudron.io/topic/2688/disaster-recovery-restoring-a-backup/2?_=1611914904153.
Currently, the only way to install a version of an app other than the current/latest version is to manually manipulate the
versionproperty in the query string during the installation process. This is basically an undocumented feature, and even when one knows about it, one doesn't have any simple way of knowing which versions are available.
Ideally, the app installation dialog would present the user with a dropdown of available app versions, defaulting to the latest/current version. This is an important use case when recovering from a backup of an app older than the latest version. The user is instructed to make sure that the new app and the app being recovered have the same version, but there is no way to actually do that unless the user knows about this semi-hidden feature.
While I see the purpose of this, I do wonder if instead of adding some kind of version dropdown/selector in the app installation dialog, we should fix the restore from backup flow.
Just some idea out of the blue, we could have a dialog to restore an app without first having to install a pristine instance with the same version. Not sure how common this is and thus justifies a better flow, but maybe worth discussing.
@nebulon Agreed, making, restoring an app from scratch would make things more intuitive and even easier. I did have to read and re-read and try things out manually to really figure out what I needed to do.
I think the dropdown would be good in any case though. It could be that a user simply wants to install an older version of an app, perhaps not for recovery, but for testing e.g. to reproduce a version-specific bug.
I recall we had an idea of remote listing of the backups in the storage and showing a UI to restore apps from the backups. Essentially, we need a "import UI" over existing backups.
So, maybe in the Backups UI, we have a way to view the remote backups (shouldn't use our backup table but do remote listing), click on a backup and we should be able to restore. User is then insulated from app package version, app id and all those complications.
@cbeams I agree it's great for testing. FWIW, One can already do
cloudron install --appstore-id email@example.com install any package. Also, Cloudron only supports rolling updates, which means that version numbers are mostly just an implementation detail for us and ideally the user should now know about it.