Press Apps
Usage Examples
App Specs
Creating an App Spec
An app spec can be created by defining the metadata, release info and configuration details in a yaml file. The following example shows how to create an app spec for a block.
# app_spec.yaml
body:
version: 1
kind: app
metadata:
name: example-app
title: Example App
summary: Example App
description: Creating a new app from CLI
descriptionContentType: text/markdown
imageUrl: https://my-block-pics.com/image-0.jpg
tags:
- name: CLI
release:
version: 1.0.0
notes: This is the original release
config:
- id: existing_block_spec_id_1
release:
version: 1.0.0
autoRunOnDeploy: True
- id: existing_block_spec_id_2
release:
version: 1.0.0
autoRunOnDeploy: False
featured: true
scope: shared
tenants:
- tenant1
- tenant2
The autoRunOnDeploy
property indicates whether the resource should be run or executed once the app is fully deployed (i.e., all blocks are deployed). If autoRunOnDeploy
is set to True
, the resource will be executed upon full deployment of the app.
To create the app spec, use the following command. Similar to blocks, if we have variable expression in our yaml file, we can utilize the defined parameters by including the path to app_params.yaml
file.
peak apps specs create path/to/create_app_spec.yaml -v path/to/app_params.yaml
Updating App Spec Metadata
We can update the metadata and discoverability of an existing app spec by providing its id and the payload containg new metadata.
# app_spec_metadata.yaml
body:
metadata:
name: updated-app
title: Updated App
summary: Updated APP
description: Updating app spec metadata
descriptionContentType: text/markdown
imageUrl: https://my-block-pics.com/image-0.jpg
status: available
tags:
- name: CLI
featured: false
scope: private
We can use the following command to update the spec metadata:
peak apps specs update-metadata <spec_id> path/to/update_app_spec_metadata.yaml
Creating a new App Spec Release
We can create a new release for an existing app spec by providing spec id and payload containing new configuration details and release info.
# app_spec_release.yaml
body:
release:
version: 2.0.0
notes: This is a new release
config:
- id: existing_block_spec_id_1
release:
version: 2.0.0
autoRunOnDeploy: True
- id: existing_block_spec_id_2
release:
version: 2.0.0
autoRunOnDeploy: False
The autoRunOnDeploy
property indicates whether the resource should be run or executed once the app is fully deployed (i.e., all blocks are deployed). If autoRunOnDeploy
is set to True
, the resource will be executed upon full deployment of the app.
We can use the following command to create a new app spec release:
peak apps specs create-release <spec_id> path/to/create_app_spec_release.yaml
App Deployments
Creating a new App Deployment
We can create a app deployment by providing payload containing metadata, parameters, revision and spec info.
# app_deployment.yaml
body:
metadata:
name: app-deployment
title: App Deployment
summary: App Deployment
description: Creating a new app deployment
descriptionContentType: text/markdown
imageUrl: https://my-block-pics.com/image-0.jpg
tags:
- name: CLI
parameters:
block-1:
build:
watcher_user: "abc@123.com"
use_cache: true
runtime_exceeded: 10
run:
agg_type: "SUM"
num_iterations: 50
email_notifications: true
file_names:
- input.csv
- output.csv
block-2:
build:
watcher_user: "xyz@456.com"
use_cache: false
runtime_exceeded: 50
run:
agg_type: "MAX"
num_iterations: 10
email_notifications: false
file_names:
- input.csv
- output.csv
revision:
notes: This is the initial revision
spec:
id: 0bddb4c6-40c5-45c3-b477-fceb2c051609
release:
version: 1.0.0
We can use the following command to create a new app deployment:
peak apps deployments create path/to/create_app_deployment.yaml
Creating a new App Deployment Revision
We can create a app deployment revision by providing payload containing parameters, revision and release info.
# app_deployment_revision.yaml
body:
parameters:
block-1:
build:
watcher_user: "abc@123.com"
use_cache: true
runtime_exceeded: 10
run:
agg_type: "SUM"
num_iterations: 50
email_notifications: true
file_names:
- input.csv
- output.csv
block-2:
build:
watcher_user: "xyz@456.com"
use_cache: false
runtime_exceeded: 50
run:
agg_type: "MAX"
num_iterations: 10
email_notifications: false
file_names:
- input.csv
- output.csv
revision:
notes: This is the initial revision
release:
version: 2.0.0
We can use the following command to create a new app deployment revision:
peak apps deployments create path/to/create_app_deployment_revision.yaml
Updating App Deployment Metadata
We can update the app deployment metadata by providing deployment id and payload containing updated metadata.
# app_deployment_metadata.yaml
body:
name: update-block-deployment
title: Update Block Deployment
summary: Update Block Deployment
description: Updating block deployment metadata
descriptionContentType: text/markdown
imageUrl: https://my-block-pics.com/image-0.jpg
tags:
- name: CLI
We can use the following command to update app deployment metadata:
peak apps deployments update-metadata <deployment_id> path/to/update_app_deployment_metadata.yaml
Redeploying an App Deployment
We can redeploy latest revision of an existing app deployment provided it is in failed
or warning
state and all its block deployments are also in failed
or warning
state.
We can use the following command to redeploy an app deployment:
peak apps deployments redeploy <deployment_id>