OS and Application Modules

To support further operating systems and applications, the ServiceModule interface needs to be implemented. The interface consists of five methods, loadParams, checkForUpdate, performUpdate, createBackup and restoreBackup.

Module Params

The ServiceModule interface requires a ModuleParams type. This type should define the schema returned by the loadParams method.

Dependency Injection

A dependency injection system is implemented using the ModuleServices type. All dependencies required by the update implementation should be defined there and are injected into the 4 methods defined by the ServiceModule interface.

Operating Systems

Operating systems should omit additional configurations and rely on ssh connections and shell commands to check for and perform updates.

Applications

Additionally, if the application requires additional configuration variables and secrets to perform the backups and updates, a config table needs to be created in the database.

Finally, the application needs to be added to enabledApplications.