runcitadel / dashboard

Other
11 stars 5 forks source link

Implement updating individual apps #51

Open AaronDewes opened 2 years ago

AaronDewes commented 2 years ago

Apps should be able to be updatable individually. We already check for updates and can return this ddata from the manager API and expose it in the SDK.

The data will be in this format

{
  "node-red": {
    "updateFrom": "3.0.0",
    "updateTo": "3.0.1"
  },
  "code-server": {
    "updateFrom": "4.5.0",
    "updateTo": "4.5.1"
  },
  "specter-desktop": {
    "updateFrom": "1.10.3",
    "updateTo": "1.10.5",
    "changelog": {
       "1.10.3": "The new things we added in 1.10.3",
       "1.10.4": "The new things we added in 1.10.4",
       "1.10.5": "The new things we added in 1.10.5"
    }
  },
  "oak-node": {
    "updateFrom": "0.3.0",
    "updateTo": "0.3.1"
  }
}

Changelog is optional.

The apps version should be checked by semver, and any changelog entry that is from a later version than the currently installed one should be displayed.

For example, if Specter Desktop can be updated from 1.10.3 to 1.10.5, the changelog for the releases 1.10.4 and 1.10.5 should be displayed, because the user has not yet received these updates.

Please note that this still needs some work on the backend, but the data format is final and is very unlikely to change.