Difference between revisions of "Meta files/ini"

From Univention Wiki

Jump to: navigation, search
(Link)
 
Line 1: Line 1:
[[Category:App Center Developer Guide]]
+
#REDIRECT [[App Center Developer Guide]]
 
 
The following list includes the attributes that can be set in the ini file of an App. The section is called "Application":
 
 
 
<pre>
 
[Application]
 
ID = myapp
 
Code = 00
 
Name = My App
 
Version = 1.0
 
</pre>
 
 
 
 
 
;''Important'': The [[Provider Portal/Apps|Provider Portal]] hides the actual files and presents a web form where you can upload images, set parameters and so on.
 
 
 
 
 
= <nowiki>[Application]</nowiki> =
 
 
 
;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.
 
 
 
= <nowiki>[de]</nowiki> =
 
 
 
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":
 
 
 
 
 
<pre>
 
[Application]
 
ID = myapp
 
Code = 00
 
Name = My App
 
Version = 1.0
 
[de]
 
Name = Meine App
 
</pre>
 
 
 
= <nowiki>[Sizing]</nowiki> =
 
 
 
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: <nowiki>[Sizing: 10], [Sizing: 50], [Sizing: 100], [Sizing: 500], [Sizing: 1000], [Sizing: 5000]</nowiki>.
 
 
 
<pre>
 
[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
 
</pre>
 

Latest revision as of 15:04, 27 August 2018

Personal tools