The App Manager¶
The App Manager is a technical tool for configuring, building and deploying Apps. An App can have multiple platforms to run on.
Workflow¶
An App is a single, isolated entity. All other resources are dependent on a single App – they cannot be shared between Apps.
An App can have a arbitrary number of Platforms. A Platform is a special configuration for building the App. It consists of exactly one CodeSource, exactly one DataSource and at least one (but possible more) Targets. Dependent on its type, the platform will build a specialized product when a Build is created.
Available CodeSource Types, DataSource Types, Target Types and Platform Types can be obtained by getting the Types resource. There may be dependencies: a type may require an explicit platform (e.g. the TargetType 'App Store' could only work with the PlatformType 'iOS').
When creating a Build for a Platforms, the App Server will obtain Code from the CodeSource, Data from the DataSource, then build it according to the Platform and save it for later use. A successful Build can then be deployed to one or many selected Targets of all configured Targets of the Platform by creating a Deployment.
A Build or a Deployment is either running, failed or successfully finished.
App Manager API¶
- Entry Point: https://appserver.entrecode.de/
- Richardson Maturity Level: 3 (full Hypermedia)
- Media Type:
application/hal+json
(HAL) - Root Resource:
ec:apps
(App List) - Authentication: Bearer Token aquired using the Account Server API
Make sure to read entrecode API Basics first.
State Diagram¶
Link Relations¶
Link Relation names are those registered with the IANA. Additionally, custom link relations are used which are built in the form https://doc.entrecode.de/en/latest/App_Manager/#link-relations/<relation>
. Those relations are also links to their own documentation (on this page).
For brevity, CURIE Syntax is used which results in relation names of the form ec:<relation>/<optional_subrelation>
.
Additional to the official link relations defined by IANA the App Manager uses the following:
Link Relation | Target Resource | Description |
---|---|---|
ec:app |
App | A single App |
ec:app-stats |
App Stats | App Statistics |
ec:app/build |
Build | A single Build |
ec:app/build/by-id |
Build | Templated Link Relation to a specific Build by buildID |
ec:app/build/latest |
Build | The last build of a Platform |
ec:app/builds |
Build List | List of Builds |
ec:app/builds/options |
Build List | Filter Options of the Build List |
ec:app/by-id |
App | Templated Link Relation to a specific App by appID |
ec:app/codesource |
CodeSource | The configured CodeSource of a Platform |
ec:app/codesource/by-id |
CodeSource | Templated Link Relation to a specific CodeSouce by codeSourceID |
ec:app/codesources |
CodeSource List | CodeSources configured in an App |
ec:app/codesources/options |
CodeSource List | Filter Options of the CodeSource List |
ec:app/datasource |
DataSource | The configured DataSource of a Platform |
ec:app/datasource/by-id |
DataSource | Templated Link Relation to a specific DataSource by dataSourceID |
ec:app/datasources |
DataSource List | DataSources configured in an App |
ec:app/datasources/options |
DataSource List | Filter Options of the DataSource List |
ec:app/deployment |
Deployment | A single Deployment of a Platform |
ec:app/deployment/by-id |
Deployment | Templated Link Relation to a specific Deployment by deploymentID |
ec:app/deployment/latest |
Deployment | The latest Deployment of a Platform |
ec:app/deployments |
Deployment List | All Deployments of a Platform. Also used to create a new Deployment |
ec:app/deployments/options |
Deyploment List | Filter Options of the Deployment List |
ec:app/platform |
Platform | A single Platform |
ec:app/platform/by-id |
Platform | Templated Link Relation to a specific Platform by platformID |
ec:app/platforms |
Platform List | A list of Platforms of an App |
ec:app/platforms/options |
Platform List | Filter Options of the Platform List |
ec:app/target |
Target | A configured Target of a Platform |
ec:app/target/by-id |
Target | Templated Link Relation to a specific Target by targetID |
ec:app/targets |
Target List | Targets configured in an App |
ec:app/targets/options |
Target List | Filter Options of Targets List |
ec:apps |
App List | List of Apps |
ec:apps/options |
App List | Filter Options of the App List |
ec:apps/types |
App Manager Type Info | Information about available CodeSource-, DataSource-, Target- and Platform-Types |