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
parameters:
build:
- name: watcher_user
type: string
required: true
title: Watcher User Email
description: Set the watcher user email
defaultValue: user@peak.ai
hideValue: false
- name: use_cache
type: boolean
required: false
title: Image Caching
description: Enable image caching for the workflow
defaultValue: false
- name: runtime_exceeded
type: number
required: false
title: Runtime Exceeded
description: Select the runtime exceeded value to trigger a failed notification for the workflow (in minutes)
options:
- title: Low
value: 10
- title: Medium
value: 50
- title: High
value: 100
defaultValue: 10
run:
- name: agg_type
type: string
required: false
title: Agg Type
description: Select an aggregation function (e.g., AVG, SUM, COUNT)
defaultValue: AVG
hideValue: true
- name: email_notifications
type: boolean
required: false
title: Email Notifications
description: Enable email notifications
defaultValue: false
- name: num_iterations
type: number
required: false
title: Number of Iterations
description: Select the number of iterations
options:
- title: Low
value: 10
- title: Medium
value: 50
- title: High
value: 100
defaultValue: 10
- name: file_names
type: string_array
required: true
title: File Names
description: Specify input and output file names
defaultValue:
- input.csv
- output.csv
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
parameters:
build:
- name: watcher_user
type: string
required: true
title: Watcher User Email
description: Set the watcher user email
defaultValue: user@peak.ai
hideValue: false
- name: use_cache
type: boolean
required: false
title: Image Caching
description: Enable image caching for the workflow
defaultValue: false
- name: runtime_exceeded
type: number
required: false
title: Runtime Exceeded
description: Select the runtime exceeded value to trigger a failed notification for the workflow (in minutes)
options:
- title: Low
value: 10
- title: Medium
value: 50
- title: High
value: 100
defaultValue: 10
run:
- name: agg_type
type: string
required: false
title: Agg Type
description: Select an aggregation function (e.g., AVG, SUM, COUNT)
defaultValue: AVG
hideValue: true
- name: email_notifications
type: boolean
required: false
title: Email Notifications
description: Enable email notifications
defaultValue: false
- name: num_iterations
type: number
required: false
title: Number of Iterations
description: Select the number of iterations
options:
- title: Low
value: 10
- title: Medium
value: 50
- title: High
value: 100
defaultValue: 10
- name: file_names
type: string_array
required: true
title: File Names
description: Specify input and output file names
defaultValue:
- input.csv
- output.csv
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
appParameters:
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
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:
appParameters:
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
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>