Skip to content

Applications ​

Define containerized and script applications, manage versioned releases, and deploy to device groups.

Overview ​

An Application is a named, versioned unit of software that can be deployed to devices. Each application has:

  • A type: container or script
  • Versions: immutable release snapshots with a spec JSON
  • Deployments: rollout campaigns targeting a device group

Application List ​

Navigate to Applications to see all apps in your tenant.

Columns: Name, Type, Versions count, Latest Version, Created date.

Filter by Type (container / script).

Creating an Application ​

  1. Click + Create Application.
  2. Enter a Name (e.g. nginx, edge-collector).
  3. Select Type: Container or Script.
  4. Click Create.

Versions ​

A version bundles an immutable spec describing how to run the app.

Creating a Version ​

  1. Open an application, go to the Versions tab.

  2. Click Create Version.

  3. Enter a Version string (e.g. 1.0.0, 2024-03-15).

  4. Fill in the spec using either:

    • Form mode — guided fields (image, ports, volumes, env vars, etc.)
    • Raw JSON — paste a full spec object directly
  5. Click Create.

Container Spec Fields ​

FieldDescription
imageContainer image (e.g. nginx:latest)
portsPort mappings (host:container)
volumesVolume mounts (host:container:options)
envEnvironment variables (KEY=value)
network_modeDocker network mode
hostnameContainer hostname
restart_policyalways / on-failure / unless-stopped / no
memoryMemory limit (e.g. 256m, 1g)
cpusCPU limit (e.g. 0.5, 2)
privilegedRun as privileged container
cap_add / cap_dropLinux capabilities
labelsDocker labels
entrypointOverride container entrypoint
cmdOverride container command
working_dirWorking directory inside container
userRun as user

Script Spec Fields ​

FieldDescription
commandExecutable path
argsCommand arguments
envEnvironment variables
working_dirWorking directory
timeoutExecution timeout (e.g. 30s, 5m)
userRun as user

Deployments ​

A deployment pushes a specific version to all devices in a target group via a rollout.

Starting a Deployment ​

  1. In the Versions tab, click Deploy next to the version you want to deploy.
  2. Select a Device Group.
  3. Choose a Strategy:
    • Rolling — update devices in batches (configure batch size and failure threshold)
    • Canary — deploy to a small batch first, then expand
    • Blue-Green — deploy new version alongside old, then switch traffic
  4. Click Deploy.

A rollout is created automatically and tracked in Applications → Deployments and in Rollouts.

Monitoring a Deployment ​

The Deployments tab shows all deployment campaigns for the app:

  • Status: Running / Completed / Failed / Cancelled
  • Progress bar (succeeded / failed / pending devices)
  • Links to the underlying rollout

Click a deployment row to open its detail view.

Cancelling a Deployment ​

From the deployment detail, click Cancel Deployment. Devices that have already updated keep the new version; remaining devices are not updated.

Undeploying ​

From the deployment detail, click Undeploy. This creates a new rollout that removes the app from all devices in the target group.

App Shadow Keys ​

When an app is deployed, the backend writes to the device shadow under the key apps.<app-name>. The agent's app reconciler reads this and manages the container or script lifecycle accordingly.

Shadow desired state example:

json
{
  "apps": {
    "nginx": {
      "version": "1.0.0",
      "spec": { "image": "nginx:latest", "ports": ["80:80"] }
    }
  }
}

Weave — IoT Device Management Platform