App store
Introduction
App store serves a purpose of publishing locally developed apps with their versions and redistributing them to other namespaces.
App version developed on any namespace can be submitted to app store as release candidate. Release candidate can be tested on app store and key user decides if it can be approved and released as official app version or rejected, because its not yet ready. Released app version are installable on any namespace which is connected to app store.
Namespace connected to app store can:
- submit release candidate - app version is published to app store as release candidate
- install app version - install released app version on namespace
Instructions how to connect any namespace to app store can be found in Connect to App Store section.
App store is located on e1-master namespace and app management is slightly different than on any other namespace:
- stores only release candidates and released versions of any published app
- apps on app store are read-only and only one way to alter live state of an app is to restore specific app version (setting it as live)
- released app version cannot be deleted from app store
Connect to App Store
Marketplace namespaces are connected to app store (e1-master) by default. To connect your custom namespace:
- request app store namespace token from dev team
- on namespace that needs to be connected to app store, go to "Platform administration", find UPW config under
config/upw,platform/datain Consul key-value store and click "edit" action:

- save provided namespace token under
app-store → tokenproperty and click "Save":

UPW service should restart and if everything goes well, namespace will be connected to app store and related actions will be enabled (submitting release candidates and installing released app versions).
If there is a need to disable app store integration on specific namespace, set app-store → enabled to false in UPW config (true by default).
Submit Release Candidate
To submit app version as release candidate to app store, click "Submit Release Candidate" action on specific app version:

Confirmation dialog will pop up:

When action is finished, app version will be flagged with "Submitted" status:

On app store side, submitted app will be flagged as "Review Required" and submitted released candidate will appear in "Versions" table:

When "Submitted" status tag is hovered on, namespace domain will appear which release candidate was submitted from:

Such release candidate then can be set aas live (restored) and tested accordingly.
INFO
Submitting release candidate of specific version will only publish a state of this particular version, any unsaved app changes won't be a part of a release candidate.
Lock Submitting Release Candidates
It's possible to lock submitting release candidates for specific app on app store. To do so, click "Lock Versioning" on app card in app store:

Application will be flagged with "Versioning locked":

And submitting release candidates from other namespaces will be unavailable:

Approve Release Candidate
When release candidate is tested on app store namespace and is ready to be released as official version, click "Approve Version" action on specific release candidate:

Confirmation dialog will pop up:

When action is completed, release candidate will be removed and new official version based on released candidate will be created and flagged with "Released" status. First released version of an app is flagged as "1". Each released version increments version string.

On namespace which the release candidate was submitted from, the related version will be flagged as "Released as <released_version>" to indicate that release candidate of this version was approved and released as official version.

Released version will appear in "Versions To Install" table:

Reject Release Candidate
When release candidate is flawed and cannot be released as official app version, click "Reject Version" action on specific release candidate:

Fill mandatory rejection reason:

When action is completed, release candidate will be removed from app store:

On namespace which the release candidate was submitted from, the related version will be flagged with "Rejected" status to indicate that release candidate of this version was rejected on app store.

When "Rejected" status tag is hovered on, rejection reason will be displayed:

Install app version
To install app version from store and app is already installed on namespace, go to "Versions To Install" table and click "Install Version" action on specific release version:

Confirmation dialog will pop up:

When action is completed, version is installed and appears in "Installed Versions" table. In example below, version flagged with "Released as 1" can be safety deleted (to remove redundancy), because its officially released version was just installed.

If app is not yet installed on the namespace, go to "App Store" section in app management, select app and version to install and click "Install Version" action:

When action is completed, app and version is installed. Installed app will disappear from "App store" section. To install other app versions, just go to "Versions to Install" table and proceed as instructed above.

WARNING
Installing app version does not mean that this version will be set as live. To set installed version as live, just click "Restore Version" action on specific app version (as described in Restore App Version section)
App Release Log
To check app's release history (release candidates submissions, approves and rejections) on app store, go to "Release log" table in app management:
