Skip to content

Overview for all installed apps #2503

@dragonchaser

Description

@dragonchaser

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.

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions