App Module

These methods are optionally provided by the module in which an app is implemented and FreedomBox calls/uses them if they are present.

<app-module>.depends

Optional. This module property must contain a list of all apps that this application depends on. The application is specified as string which is the final part of the full module load path. For example, names. Dependencies are part of the Info component. Need for this attribute at the module level will be removed in the future.

<app-module>.is_essential

Optional. If an app must be installed and configured by FreedomBox without user intervention, this attribute must be set to True. This attribute is part of the Info component. Need for this attribute at the module level will be removed in the future.

<app-module>.version

Required. Version number of an app. Increasing the version number of an app triggers the setup() logic allowing the app to run upgrade scripts. This attribute is part of the Info component. Need for this attribute at the module level will be removed in the future.

<app-module>.managed_packages

Optional. This must contain the list of all packages that this app deals with. This is mostly needed to enforce better security. This information may be moved to a separate component in the future.

<app-module>.managed_services

Optional. This must contain the list of all services that this app deals with. This is mostly needed to enforce better security. This information is part of the Daemon component. Need for this attribute at the module level will be removed in the future.

<app-module>.managed_paths

Optional. This must contain the list of all file system paths that this app deals with. This is mostly used by the LetsEncrypt component to enforce better security. This requirement may be removed in the future.