<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "AppStream.ent">
%BOOK_ENTITIES;
]>

<section id="sect-Metadata-WebApplication">
	<title>Web Applications</title>

	<section id="spec-webapp-introduction">
		<title>Introduction</title>
		<para>
			A web application is an application running remotely that is accessed via a web browser and built on the web platform.
		</para>
		<para>
			The metadata described in this document is built upon the generic component metadata with fields specific for web-applications (see <xref linkend="sect-Metadata-GenericComponent"/>).
			All tags valid for a generic component are valid for a <literal>web-application</literal> component as well.
		</para>
		<para>
			A web application metainfo file is special in the regard that it is usually not combined with the software it is describing and that it has no
			installable.
			It usually is equivalent to a weblink that gets special treatment by software centers. Web application metainfo files are therefore
			injected directly into the catalog metadata generation process, or can be installed as usual into <filename>/usr/share/metainfo/%{id}.metainfo.xml</filename>.
		</para>
		<para>
			Software centers may display web applications in special, chrome-less web browser windows to achieve better desktop integration and
			make the web application feel more native on the desktop.
		</para>

	</section>

	<section id="spec-webapp-filespec">
		<title>File specification</title>

		<para>
			The basic structure for a generic component as described at <xref linkend="spec-component-filespec"/> applies.
			Note that the XML root must have the <literal>type</literal> property set to <code>web-application</code>, while in a generic component this
			property can be omitted. This clearly identified this metainfo document as describing a web application.
		</para>

		<para>
			The following list describes tags for <literal>web-application</literal> metainfo files and provides some additional information about the values
			the tags are expected to have.
			If no information is given about a tag, refer to the respective tag in <xref linkend="sect-Metadata-GenericComponent"/>.
		</para>

		<variablelist>
			<varlistentry id="tag-id-web-app">
			<term>&lt;id/&gt;</term>
			<listitem>
				<para>
					For web applications, the <code>&lt;id/&gt;</code> tag value must follow the AppStream ID naming conventions (it should be a reverse-DNS name).
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;metadata_license/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;metadata_license/&gt;</code> tag as described in <xref linkend="tag-metadata_license"/> must be present.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;name/&gt;</term>
			<listitem>
				<para>
					A <literal>name</literal> must be present for web applications. See <xref linkend="tag-name"/> for a detailed description of this tag.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;summary/&gt;</term>
			<listitem>
				<para>
					A <literal>summary</literal> must be present for web applications. See <xref linkend="tag-summary"/> for a detailed description of this tag.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry id="tag-webapp-launchable">
			<term>&lt;launchable/&gt;</term>
			<listitem>
				<para>
					This tag is described in detail for generic components at <xref linkend="tag-launchable"/>.
				</para>
				<para>
					A <literal>launchable</literal> tag of type <literal>url</literal> must be present for web applications. It is used as the entry
					point for starting the web application and opened in a browser in case the user wants to "launch" the web application.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry id="tag-webapp-icon">
			<term>&lt;icon/&gt;</term>
			<listitem>
				<para>
					This tag is described in detail for generic components at <xref linkend="tag-icon"/>.
				</para>
				<para>
					A <literal>icon</literal> tag must be present for web applications. Authors of the metainfo files might prefer using the <literal>remote</literal> icon type,
					but any icon type is allowed here.
				</para>
			</listitem>
			</varlistentry>
		</variablelist>

		<para>
			For a component of type <literal>web-application</literal>, the following tags are required and must always be present: <xref linkend="tag-id-web-app"/>,
			<xref linkend="tag-metadata_license"/>, <xref linkend="tag-name"/>, <xref linkend="tag-summary"/>, <xref linkend="tag-webapp-launchable"/>, <xref linkend="tag-webapp-icon"/>,
			<xref linkend="tag-categories"/>.
		</para>

	</section>
</section>
