# App registration This call is to provide required info to register app on Flux. Note: Signature is following message signed in the format shown below - Example: - Endpoint: POST /apps/appregister Version: 6.6.1 Security: ZelID ## Request fields (text/plain): - `type` (string) Message type - `version` (integer) Message version - `appSpecifications` (object) - `appSpecifications.version` (integer) Version of message which is 7 - `appSpecifications.name` (string) Name of app - `appSpecifications.description` (string) Description of app - `appSpecifications.owner` (string) Your ZelID - `appSpecifications.compose` (array) - `appSpecifications.compose.description` (string) Description of component - `appSpecifications.compose.repotag` (string) Repotag of docker image in this format - `appSpecifications.compose.ports` (array) - `appSpecifications.compose.domains` (array) - `appSpecifications.compose.enviromentParameters` (array) - `appSpecifications.compose.commands` (array) - `appSpecifications.compose.containerPorts` (array) - `appSpecifications.compose.containerData` (string) Directory the data is stored and what dir is tied to the system folder - `appSpecifications.compose.cpu` (number) CPU amount requesting - `appSpecifications.compose.ram` (integer) Ram amount requesting in MB - `appSpecifications.compose.hdd` (integer) Storage space requesting in GB - `appSpecifications.compose.tiered` (boolean) If set to true you will also need following key/value pairs to provide tiered info. If false do not add the following key/value pairs. - `appSpecifications.compose.cpubasic` (number) CPU amount - `appSpecifications.compose.cpusuper` (number) CPU amount - `appSpecifications.compose.cpubamf` (number) CPU amount - `appSpecifications.compose.rambasic` (integer) Ram amount in MB - `appSpecifications.compose.ramsuper` (integer) Ram amount in MB - `appSpecifications.compose.rambamf` (integer) Ram amount in MB - `appSpecifications.compose.hddbasic` (integer) Storage space in GB - `appSpecifications.compose.hddsuper` (integer) Storage space in GB - `appSpecifications.compose.hddbamf` (integer) Storage space in GB - `appSpecifications.compose.secrets` (string) Array of strings of Secret Environmental Parameters. This will be encrypted and accessible to selected Enterprise Nodes only. - `appSpecifications.compose.repoauth` (string) Docker image authentication for private images in the format of username:apikey. This field will be encrypted and accessible to selected Enterprise Nodes only. - `appSpecifications.instances` (integer) Instances number - `appSpecifications.contacts` (array) - `appSpecifications.geolocation` (array) - `appSpecifications.expire` (integer) Number of blocks after apps expire - `appSpecifications.nodes` (array) - `appSpecifications.staticip` (boolean) If set to true apps will be installed of nodes with static IP only. - `timestamp` (integer) Current timestamp in epoch/unix - `signature` (object) Signature of data message you signed with ZelID. ## Response 200 fields (application/json): - `status` (string) Explanation of status Enum: "success", "error" - `data` (string) Hash of entire message and will be stored for 1 hour ## Response 400 fields (application/json): - `status` (string) Enum: "error" - `data` (object) - `data.name` (string) Example: "ValidationError" - `data.message` (string) Example: "Invalid input parameters" - `data.code` (string) Example: "VALIDATION_ERROR" - `data.details` (array) Detailed validation errors - `data.details.field` (string) Field name that failed validation - `data.details.message` (string) Validation error message ## Response 401 fields (application/json): - `status` (string) Enum: "error" - `data` (object) - `data.name` (string) Example: "UnauthorizedAccess" - `data.message` (string) Example: "Unauthorized. Invalid signature or insufficient privilege." - `data.code` (string) Example: "UNAUTHORIZED" ## Response 403 fields (application/json): - `status` (string) Error status Enum: "error" - `data` (object) Example: {"name":"ValidationError","message":"Invalid application name","code":"VALIDATION_ERROR"} - `data.name` (string) Error name/type Example: "ValidationError" - `data.message` (string) Error message Example: "Invalid application name" - `data.code` (string) Error code Example: "VALIDATION_ERROR" ## Response 409 fields (application/json): - `status` (string) Error status Enum: "error" - `data` (object) Example: {"name":"ValidationError","message":"Invalid application name","code":"VALIDATION_ERROR"} - `data.name` (string) Error name/type Example: "ValidationError" - `data.message` (string) Error message Example: "Invalid application name" - `data.code` (string) Error code Example: "VALIDATION_ERROR" ## Response 500 fields (application/json): - `status` (string) Enum: "error" - `data` (object) - `data.name` (string) Example: "InternalError" - `data.message` (string) Example: "Internal server error occurred" - `data.code` (string) Example: "INTERNAL_ERROR" ## Response 503 fields (application/json): - `status` (string) Enum: "error" - `data` (object) - `data.name` (string) Example: "ServiceUnavailable" - `data.message` (string) Example: "Service is temporarily unavailable" - `data.code` (string) Example: "SERVICE_UNAVAILABLE"