Common Message and Data Structure Definitions

The following is a list of message and data schemas that are necessary for dploy. These structures are generally used to define communication protocols between various services. They should be language agnostic.

BuildRequest

Used to describe build jobs. These are sent to the DeployQueue.

Schema

broadcast_id

A broadcast id of the format [random-uuid]:[commit]

app

The app name

archive_uri

URI to a tar.gz of the app

commit

The SHA1 commit of the app

update_message

A message about the update

release_version

The release version to use. 0 means the latest version

BroadcastMessage

Used for broadcasting messages to the client

Schema

type

The message type

Must be output or status

body

The message body

Must be data of type BroadcastOutputData or BroadcastStatusData Schema

BroadcastOutputData

type

Must be line or raw

data

(optional) output string

BroadcastStatusData Schema

type

Must be info, error, or completed

data

(optional) A status message

AppBuildRequest

Used to describe app build jobs. These are sent to the BuildCenter. They are created by processing DeployRequests.

Schema

app_release

The current AppRelease

archive_uri

URI to a tar.gz file of the app’s repository

AppRelease

Used throughout different sections of the build process. It is also a major component of the cargo file. These snapshots are also used to track versions of a particular app.

Schema

version

The release version number

app

The app name

commit

The SHA1 commit of the app

env

An EnvVars type

processes

A dict of the available processes and their associated commands

EnvVars

Dictionary of services and their environment variables. This is meant to be persisted in some kind of database.

ZoneDeployOrder

Instructions for a dploy-zone to deploy an app given its cargo file.

Schema

app

The app name

cargo_uri

URI to a downloadable cargo file

ZoneStopDeploy

Stop a set of running apps

Schema

apps

A list of apps to stop