User Story
As an admin, I want to have an overview of the currently installed apps and their versions so I can troubleshoot malfunctioning apps easier.
User Value
- More transparency about the current setup
- Easier troubleshooting
Acceptance Criteria
Proposal:
- Extensions can define version constraints for compatible OpenCloud versions (not Web versions!) in their
manifest.json file (located under src/manifest.json).
- The
extension-sdk parses an extension's current version from its package.json file and injects it into the manifest.json. The version constraints from src/manifest.json also get parsed (this already works).
- The server announces where to find the
manifest.json file of a served extension, the same way it's currently announcing the asset path. The file already gets served under /assets/apps/<appname>/manifest.json as @dragonchaser said, it just about making the client aware. Maybe it even makes sense to directly inject the contents of the manifest.json in the config.json response, which would eliminate the need for querying all manifests.
- The Web client has a page "Extensions" in the admin-settings, visible for all admins:
- It lists all installed apps including their versions
- Each app has one of 3 possible statuses (indicated by the colors green, yellow and red):
- Works and is in version range (or version range information is missing): green
- Works but is not in version range (e.g. show a small warning): yellow
- Doesn't work: red
- If an extension doesn't work (= error during bootstrap) and the given version constraint doesn't comply with the current OC version, this gets displayed as additional information so the admin knows what's up.
- In addition to the settings page, Web also shows a toast message to admins when at least one extension could not be loaded due to an unfulfilled version constraint. Dismissing the message gets saved in the local storage to ensure it doesn't get displayed again for that extension and version.
We currently already define min OpenCloud versions in https://github.com/opencloud-eu/awesome-apps/blob/main/webApps/apps.json. This would be kinda obsolete with the new approach, although we still need a way to retrieve that information for the app store. Maybe maintaining both is still the easiest.
Original issue
Idea
Today I upgraded my instance from 6.1.0 to 6.2.0, all extensions needed a version bump.
It would be awesome if there would be some notification in the UI for the admin, that shows which extensions could not be loaded because of incompatible versions.
A good place to display that would be the extensions page in the web ui IMHO.
User Story
User Value
Acceptance Criteria
Proposal:
manifest.jsonfile (located undersrc/manifest.json).extension-sdkparses an extension's current version from itspackage.jsonfile and injects it into themanifest.json. The version constraints fromsrc/manifest.jsonalso get parsed (this already works).manifest.jsonfile of a served extension, the same way it's currently announcing the asset path. The file already gets served under/assets/apps/<appname>/manifest.jsonas @dragonchaser said, it just about making the client aware. Maybe it even makes sense to directly inject the contents of themanifest.jsonin theconfig.jsonresponse, which would eliminate the need for querying all manifests.We currently already define min OpenCloud versions in https://github.com/opencloud-eu/awesome-apps/blob/main/webApps/apps.json. This would be kinda obsolete with the new approach, although we still need a way to retrieve that information for the app store. Maybe maintaining both is still the easiest.
Original issue
Idea
Today I upgraded my instance from 6.1.0 to 6.2.0, all extensions needed a version bump.
It would be awesome if there would be some notification in the UI for the admin, that shows which extensions could not be loaded because of incompatible versions.
A good place to display that would be the extensions page in the web ui IMHO.