ApplicationId

The Application ID is the string "$(click_package)_$(application)_$(version)" (without the quotes and with the obvious substitutions made).

click_package is the dotted name of the click package; a package com.ubuntu.foo_0.5_all.click would have click_package of com.ubuntu.foo.

application is the hook name from your manifest.json file (obtainable for an installed package with click info com.ubuntu.foo). The manifest.json will contain a section like: "hooks": { "myapphookname": { "desktop": "FooApp.desktop" } }. The application here is myapphookname.

version is the installed version number.

This ID is used for identifying the application throughout the system:

  • Click
  • Mir
  • HUD
  • AppArmorProfile

  • Content Hub
  • Download manager
  • Infographic (libusermetrics)
  • etc

The following restrictions to the components apply, from various parts of the system:

filesystem

store1

apparmor2

deb3,4

intersection

click_package

[^\0/]+

[a-zA-Z0-9.-]+

[a-zA-Z0-9+.:]+

[a-z0-9][a-z0-9+.-]+

[a-z0-9][a-z0-9.-]+

application

[^\0/]+

[a-zA-Z0-9+.:~-]+

[a-zA-Z0-9+.-]+

[a-zA-Z0-9+.:~-]+

version

[^\0/]+

[0-9.]+

[a-zA-Z0-9+.:~-]+

[0-9][a-zA-Z0-9.+:~-]*

[0-9][0-9.]*

  1. The store supports debian versioning (ie, same as the 'deb' entry) but the AppStore interface uses a reduced scheme to keep it simple for users

  2. security manifest definition

  3. click file-format definition

  4. click hooks definition

Additionally, version should be structured more or less as you would expect, and be strictly monotonically increasing (new versions should always be greater than old versions).

Alternate nomenclatures:

  • 'APP_ID' and '${id}' (from click documentation) are synomymous with 'ApplicationId'. The full regex for a valid APP_ID is:

    [a-z0-9][a-z0-9+.-]+_[a-zA-Z0-9+.-]+_[0-9][a-zA-Z0-9.+:~-]*
  • 'click package name' ("name" in the click manifest) and 'APP_PKGNAME' are synonymous with $(click_package)
  • 'application name' and 'appname' are synonymous with $(application)
  • 'APP_VERSION' is synonymous with $(version)

Note: as of 2013-09-18 only one $(application) is allowed per click package. Future versions will support specifying multiple $(application)s per click package (this is already supported in the click manifest and click-apparmor, where the keys to the click manifest's hooks dictionary define the values for each $(application)).

AppStore/Interfaces/ApplicationId (last edited 2016-06-10 18:13:43 by sil)