Meta files/ini

From Univention Wiki

Jump to: navigation, search


The following list includes the attributes that can be set in the ini file of an App. The section is called "Application":

[Application]
ID = myapp
Code = 00
Name = My App
Version = 1.0


Important
The Provider Portal hides the actual files and presents a web form where you can upload images, set parameters and so on.


[Application]

Id
REQUIRED! A unique ID for the App. Different versions of the same App have the same ID, though.
Code
REQUIRED! An internal ID like 2-char value that has no meaning other than some internal reporting processing. Univention handles this, not the App Provider.
Name
REQUIRED! The displayed name of the App. Can be localized by putting it in the [Application] section as well as in the [de] section.
Version
REQUIRED! Version of the App. Needs to be unique together with with the Id. Versions are compared against each other using Python's LooseVersion (distutils).
Logo
The file name of the logo of the App. It is used in the App Center overview when all Apps are shown in a gallery. As the gallery items are squared, the logo should be squared, too. Not part of the App class.
LogoDetailPage
The file name of a "bigger" logo. It is shown in the detail page of the App Center. Useful when there is a stretched version with the logo, the name, maybe a claim. If not given, the Logo is used on the detail page, too. Not part of the App class.
Description
A short description of the App. Should not exceed 90 chars, otherwise it gets unreadable in the App Center. Can be localized by putting it in the [Application] section as well as in the [de] section.
LongDescription
A more complete description of the App. HTML allowed and required! Shown before installation, so it should contain product highlights, use cases, etc. Can be localized by putting it in the [Application] section as well as in the [de] section.
Thumbnails
A list of screenshots and / or YouTube video URLs. Can be localized by putting it in the [Application] section as well as in the [de] section.
Categories
Possible choices: 'Administration', 'Business', 'Collaboration', 'Education', 'System services', 'UCS components', 'Virtualization', . Categories this App shall be filed under.
Website
Website for more information about the product (e.g. landing page). Can be localized by putting it in the [Application] section as well as in the [de] section.
SupportUrl
Website for getting support (or information about how to buy a license). Can be localized by putting it in the [Application] section as well as in the [de] section.
Contact
Contact email address for the customer.
Vendor
Display name of the vendor. The actual creator of the Software. See also Maintainer.
WebsiteVendor
Website of the vendor itself for more information. Can be localized by putting it in the [Application] section as well as in the [de] section.
Maintainer
Display name of the maintainer, who actually put the App into the App Center. Often, but not necessarily the Vendor. If vendor and maintainer are the same, maintainer does not need to be specified again.
WebsiteMaintainer
Website of the maintainer itself for more information. Can be localized by putting it in the [Application] section as well as in the [de] section.
License
Default: 'default'. An abbreviation of a license category. See also LicenseAgreement.
NotifyVendor
Default: True. Whether the App provider shall be informed about (un)installation of the App by Univention via email.
NotificationEmail
Email address that should be used to send notifications. If none is provided the address from Contact will be used. Note: An empty email (NotificationEmail=) is not valid! Remove the line (or put in comments) in this case.
WebInterface
The path of the App's web interface.
WebInterfaceName
A name for the App's web interface. If not given, Name is used. Can be localized by putting it in the [Application] section as well as in the [de] section.
WebInterfacePortHttp
Default: 80. The port to the web interface (HTTP).
WebInterfacePortHttps
Default: 443. The port to the web interface (HTTPS).
WebInterfaceProxyScheme
Possible choices: 'http', 'https', 'both'. Default: 'both'. Docker Apps only. Whether the web interface in the container only supports HTTP, HTTPS or both.
AutoModProxy
Default: True. Docker Apps only. Whether the web interface should be included in the host's apache configuration. If yes, the web interface ports of the container are used for a proxy configuration, so that the web interface is again available on 80/443. In this case the WebInterface itself needs to have a distinct path even inside the container (like "/myapp" instead of "/" inside). If WebInterfaceProxyScheme is set to http, both http and https are proxied to http in the container. If set to https, proxy points always to https. If set to both, http will go to http, https to https.;UcsOverviewCategory: Possible choices: 'admin', 'service', None, False. Default: 'service'. Whether and if where on the start site the WebInterface should be registered automatically.
Database
Which (if any) database an App wants to use. The App Center will setup the database for the App. Useful for Docker Apps running against the Host's database. Supported: "mysql", "postgresql".
DatabaseName
Name of the database to be created. Defaults to Id.
DatabaseUser
Name of the database user to be created. Defaults to Id. May not be "root" or "postgres".
DatabasePasswordFile
Path to the file in which the password will be stored. If not set, a default file will be created.
DockerEnvDatabaseHost
Default: 'DB_HOST'. Environment variable name for the DB host inside the Docker Container.
DockerEnvDatabasePort
Default: 'DB_PORT'. Environment variable name for the DB port.
DockerEnvDatabaseName
Default: 'DB_NAME'. Environment variable name for the DB name.
DockerEnvDatabaseUser
Default: 'DB_USER'. Environment variable name for the DB user.
DockerEnvDatabasePassword
Default: 'DB_PASSWORD'. Environment variable name for the DB password (of "docker_env_database_user").
DockerEnvDatabasePasswordFile
Environment variable name for a file that holds the password for the DB. If set, this file is created in the Docker Container; DockerEnvDatabasePassword will not be used.
ConflictedApps
List of App IDs that may not be installed together with this App. Works in both ways, one only needs to specify it on one App.
RequiredApps
List of App IDs that need to be installed along with this App.
RequiredAppsInDomain
Like RequiredApps, but the Apps may be installed anywhere in the domain, not necessarily on this very server.
ConflictedSystemPackages
List of debian package names that cannot be installed along with the App.
RequiredUcsVersion
The UCS version that is required for the App to work (because a specific feature was added or a bug was fixed after the initial release of this UCS version). Examples: 4.1-1, 4.1-1 errata200.
RequiredAppVersionUpgrade
The App version that has to be installed before an upgrade to this version is allowed. Does nothing when installing (not upgrading) the App.
EndOfLife
If specified, this App does no longer show up in the App Center when not installed. For old installations, a warning is shown that the user needs to find an alternative for the App. Should be supported by an exhaustive Readme file how to migrate the App data.
WithoutRepository
Whether this App can be installed without adding a dedicated repository on the App Center server.
DefaultPackages
List of debian package names that shall be installed (probably living in the App Center server's repository).
DefaultPackagesMaster
List of package names that shall be installed on Domaincontroller Master and Backup systems while this App is installed. Deprecated. Not supported for Docker Apps.
AdditionalPackagesMaster
List of package names that shall be installed along with DefaultPackages when installed on a DC Master. Not supported for Docker Apps.
AdditionalPackagesBackup
List of package names that shall be installed along with DefaultPackages when installed on a DC Backup. Not supported for Docker Apps.
AdditionalPackagesSlave
List of package names that shall be installed along with DefaultPackages when installed on a DC Slave. Not supported for Docker Apps.
AdditionalPackagesMember
List of package names that shall be installed along with DefaultPackages when installed on a Memberserver. Not supported for Docker Apps.
UmcModuleName
If the App installs a UMC module, the ID can specified so that a link may be generated by the App Center.
UmcModuleFlavor
If the App installs a UMC module with flavors, it can specified so that a link may be generated by the App Center.
UserActivationRequired
If domain users have to be somehow modified ("activated") to use the application, the App Center may generate a link to point the the Users module of UMC.
PortsExclusive
A list of ports the App requires to acquire exclusively. Implicitly adds ConflictedApps. Docker Apps will have these exact ports forwarded. The App Center will also change the firewall rules.
PortsRedirection
Docker Apps only. A list of ports the App wants to get forwarded from the host to the container. Example: 2222:22 will enable an SSH connection to the container when the user is doing "ssh docker-host -p 2222".
ServerRole
Possible choices: 'domaincontroller_master', 'domaincontroller_backup', 'domaincontroller_slave', 'memberserver'. Default: ['domaincontroller_master', 'domaincontroller_backup', 'domaincontroller_slave', 'memberserver']. List of UCS roles the App may be installed on.
SupportedArchitectures
Possible choices: 'amd64', 'i386'. Default: ['amd64', 'i386']. Non-Docker Apps only. List of architectures the App supports. Docker Apps always require amd64.
MinPhysicalRam
The minimal amount of memory in MB. This value is compared with the currently available memory (without Swap) when trying to install the application. When the test fails, the user may still override it and install it.
ShopUrl
If given, a button is added to the App Center which users can click to buy a license. Can be localized by putting it in the [Application] section as well as in the [de] section.
AdMemberIssueHide
When UCS is not managing the domain but instead is only part of a Windows controlled Active Directory domain, the environment in which the App runs is different and certain services that this App relies on may not not be running. Thus, the App should not be shown at all in the App Center.
AdMemberIssuePassword
Like AdMemberIssueHide but only shows a warning: The App needs a password service running on the Windows domain controller, e.g. because it needs the samba hashes to authenticate users. This can be set up, but not automatically. A link to the documentation how to set up that service in such environments is shown.
AppReportObjectType
In some environments, App reports are automatically generated by a metering tool. This tool counts a specific amount of LDAP objects. AppReportObjectType is the object type of these objects. Example: users/user.
AppReportObjectFilter
Part of the App reporting. The filter for AppReportObjectType. Example: (myAppActivated=1).
AppReportObjectAttribute
Part of the App reporting. If specified, not 1 is counted per object, but the number of values in this AppReportObjectAttribute. Useful for AppReportAttributeType = groups/group and AppReportObjectAttribute = uniqueMember.
AppReportAttributeType
Same as AppReportObjectType but regarding the list of DNs in AppReportObjectAttribute.
AppReportAttributeFilter
Same as AppReportObjectFilter but regarding AppReportObjectType.
DockerImage
Docker Image for the container. If specified the App implicitly becomes a Docker App.
DockerMigrationWorks
Whether it is safe to install this version while a non Docker version is or was installed.
DockerAllowedImages
List of other Docker Images. Used for updates. If the new version has a new DockerImage but the old App runs on an older image specified in this list, the image is not exchanged.
DockerShellCommand
Default: '/bin/bash'. Default command when running "univention-app APP shell".
DockerVolumes
List of volumes that shall be mounted from the host to the container. Example: /var/lib/host/MYAPP/:/var/lib/container/MYAPP/ mounts the first directory in the container under the name of the second directory.
DockerServerRole
Possible choices: 'memberserver', 'domaincontroller_slave'. Default: 'memberserver'. Which computer object type shall be created in LDAP as the docker container.
DockerScriptInit
Default: '/sbin/init'. The entrypoint for the Docker App. An empty value will use the container's entrypoint, but this needs an explicit DockerScriptInit = .
DockerScriptSetup
Default: '/usr/share/univention-docker-container-mode/setup'. Path to the setup script in the container run after the start of the container. If the App comes with a setup script living on the App Center server, this script is copied to this very path before being executed.
DockerScriptStoreData
Default: '/usr/share/univention-docker-container-mode/store_data'. Like DockerScriptSetup, but for a script that is run to backup the data just before destroying the old container.
DockerScriptRestoreDataBeforeSetup
Default: '/usr/share/univention-docker-container-mode/restore_data_before_setup'. Like DockerScriptSetup, but for a script that is run to restore backuped data just before running the setup script.
DockerScriptRestoreDataAfterSetup
Default: '/usr/share/univention-docker-container-mode/restore_data_after_setup'. Like DockerScriptSetup, but for a script that is run to restore backuped data just after running the setup script.
DockerScriptUpdateAvailable
Default: '/usr/share/univention-docker-container-mode/update_available'. Like DockerScriptSetup, but for a script that is run to check whether an update is available (packag or distribution upgrade).
DockerScriptUpdatePackages
Default: '/usr/share/univention-docker-container-mode/update_packages'. Like DockerScriptSetup, but for a script that is run to install package updates (like security updates) in the container without destroying it.
DockerScriptUpdateRelease
Default: '/usr/share/univention-docker-container-mode/update_release'. Like DockerScriptSetup, but for a script that is run to install distribution updates (like new major releases of the OS) in the container without destroying it.
DockerScriptUpdateAppVersion
Default: '/usr/share/univention-docker-container-mode/update_app_version'. Like DockerScriptSetup, but for a script that is run to specifically install App package updates in the container without destroying it.
HostCertificateAccess
Docker Apps only. The App gets access to the host certificate.

[de]

ini files may have sections for localization. Attributes supporting this may be overwritten in these sections. Currently, only a German translation makes sense (the Univention Management Console only supports English / German). The section is "de":


[Application]
ID = myapp
Code = 00
Name = My App
Version = 1.0
[de]
Name = Meine App

[Sizing]

Sections starting with Sizing are not evaluated by the App Center itself but give Cloud Service Providers a hint how to tailor a server for a customer. The number inside the section name means users (or something else depending on the app's functionality) working with the app (not simultaneously, of course). The following variables can be defined inside this section:

CPU
The number of cores, e.g., 2
RAM
The amount of memory and the unit, e.g., 2 GB
Disk
The amount of disk space and the unit, e.g., 20 GB

The numbers should be minimal, enabling a reasonable performance. The following sections are common: [Sizing: 10], [Sizing: 50], [Sizing: 100], [Sizing: 500], [Sizing: 1000], [Sizing: 5000].

[Application]
ID = myapp
Code = 00
Name = My App
Version = 1.0
[de]
Name = Meine App
[Sizing: 10]
CPU = 1
RAM = 1 GB
Disk = 5 GB
Personal tools