Application Metadata

The appinfo/info.xml contains metadata about the application. In this section, you will find a complete example configuration, along with an explanation of what each of file’s elements.

<?xml version="1.0"?>
    <!-- Mandatory fields -->
    <name>Your App</name>
    <description>Your application description</description>
    <screenshot small-thumbnail=""
    <!-- Category values available at: -->
    <category>A category for the application. </category>
    <summary>A summary of the application's purpose (max 90 chars)</summary>



    <author>Your Name</author>
    <repository type="git"></repository>

        <php min-version="5.4" max-version="5.5"/>
        <command os="linux">grep</command>
        <command os="windows">notepad.exe</command>
        <lib min-version="1.2">xml</lib>
        <lib max-version="2.0">intl</lib>
        <owncloud min-version="6.0.4" max-version="8"/>

    <!-- For registering panels -->

    <!-- For registering settings sections -->

    <!-- deprecated, but kept for reference -->
        <file id="caldav">appinfo/caldav.php</file>
        <file id="caldav">appinfo/caldav.php</file>
    <standalone />
    <default_enable />
    <!-- end deprecated -->


Required. This field contains the internal application name, and has to be the same as the folder name of the application. This id needs to be unique in ownCloud, meaning no other application should have this id. This value also represents the URL your application is available on the marketplace.


Required. This is the human-readable name (or title) of the application that will be displayed in the application overview page.


Required. The description provides all the necessary information about the application, and is shown in the application overview page. Don’t get lost in technical details, focus on the benefits which the application offers. You can use markdown to format the description.

Max. 4000 characters.


This sets the version of your application.


Required. The sets the application’s license. This license must be compatible with the AGPL and must not be proprietary.

Two good examples are:

  • AGPL 3 (recommended)

  • MIT

If a proprietary/non-AGPL compatible license must be used, then you have to use the ownCloud Enterprise Edition.


Required. The name of the application’s author or authors.


Required if routes.php returns an array. For example, if your application is namespaced, e.g., \\OCA\\MyApp\\Controller\\PageController, then the required namespace value is MyApp. If a namespace is not provided, the application tries to default to the first letter upper-cased application id, e.g., myapp would be tried under Myapp.


The ownCloud Marketplace category where you want to publish the application. The following categories are available:

Category Name Value to Use







External plugins
















For publishing themes the category tag must be present — but empty — as in the example below.



Required. Provide a short application description (max. 90 chars). This gets displayed below the product title and on the product tiles. It is mandatory since ownCloud 10.0.0.


ownCloud supports five types. These are:

  • prelogin: applications which need to load on the login page

  • filesystem: applications which provide filesystem functionality (e.g., file-sharing applications)

  • authentication: applications which provide authentication backends

  • logging: applications which implement a logging system

  • prevent_group_restriction: applications which can not be enabled for specific groups (e.g., notifications app).

prevent_group_restriction was introduced with ownCloud 9.0. It can be used in earlier versions, but the functionality will be ignored.

Due to technical reasons applications of any type listed above can not be enabled for specific groups only.


Required. Link to admin, user, and developer documentation. Common places are: (where $name is the name of your app, e.g. $name=theapp)


These places are maintained at Another popular starting point for developer documentation is the in GitHub.


Required. A link to the project’s web page.


Required. A link to the version control repository.


Required. A link to the bug tracker, if any.


All tags within the dependencies tag define a set of requirements which have to be fulfilled in order to operate properly. As soon as one of these requirements is not met the application cannot be installed.


Defines the minimum and the maximum version of PHP required to run this application.


Each supported database has to be listed here. Valid values are sqlite, mysql, pgsql, oci and mssql. In the future it will be possible to specify versions here as well. In case no database is specified it is assumed that all databases are supported.


Defines a command line tool to be available. With the attribute os the required operating system for this tool can be specified. Valid values for the os attribute are as returned by the php function php_uname.


Defines a required PHP extension with a required minimum and/or maximum version. The names for the libraries have to match the result as returned by the php function get_loaded_extensions. The explicit version of an extension is read from phpversion - with some exception as to be read up in the code base


Defines the required target operating system the application can run on. Valid values are as returned by the php function php_uname.


Defines the minimum and maximum versions of ownCloud core.

This will be mandatory from version 11 onwards.


The following sections are listed just for reference and should not be used because:

  • public/remote: Use api instead because you’ll have to use the external API, which is known to be buggy. It only works properly with GET/POST requests.

  • standalone/default_enable: They tell core what do on setup, you will not be able to even activate your application if it has those entries.

This should be replaced by a config file inside core.


Used to provide a public interface (requires no login) for the application. The id is appended to the URL /owncloud/index.php/public. Example with id set to `calendar':


Also take a look at the external API.


Same as public, but requires login. The id is appended to the URL /owncloud/index.php/remote. Example with id set to `calendar':


Also take a look at the external API.


Can be set to true to indicate that this application is a web application. This can be used to tell GNOME Web for instance to treat this like a native application.


Core applications only: Used to tell ownCloud to enable them after the installation.


Core applications only: Used to tell ownCloud that the application is in the standard release. Please note that if this attribute is set to FALSE or not set at all, every time you disable the application, all the files of the application itself will be REMOVED from the server!