Documentation


All app configuration is defined in the app.yml template file.

App

ocean:
  version: String
actions:
  - App::Action
images:
  - App::Image
steps:
  - App::Step

Properties

ocean.version

  • Version of Ocean runtime.
  • Required: Yes
  • Allowed values: 1

actions

  • List of actions.
  • Required: No

images

  • List of container images used by engines.
  • Required: Yes

steps

  • List of steps containing engine definitions. Steps are always executed sequentially one after another.
  • Required: Yes

App::Action

name: String
label: String
type: String
description: String
default_value: String
ui: App::Action::Ui
setting: App::Action::Setting

Properties

name

  • Action name.
  • Required: Yes

label

  • Label visible to the user in the web UI.
  • Required: Yes

description

  • Description visible to the user in the web UI.
  • Required: No

type

  • Action type.
  • Required: Yes
  • Allowed values: toggle

default_value

  • Default action value.
  • Required: Yes
  • Allowed values: toggle
    • type: toggle: "true", "false"

ui

  • Optional action UI values.
  • Required: No

setting

  • Optional action setting values.
  • Required: No

App::Action::Ui

label: String
toggle: App::Action::Ui::Toggle

Properties

label

  • User-friendly label for the action.
  • Required: Yes

toggle

  • User-friendly label for the action.
  • Required:
    • action.type: toggle: Yes

App::Action::Setting

label: String
description: String
group: String

Properties

label

  • User-friendly label for the setting.
  • Required: Yes

description

  • Optional setting description.
  • Required: No

group

  • Optional setting group.
  • Required: No

App::Action::Ui::Toggle

enabled.button.label: String
enabled.button.url: String
disabled.button.label: String
disabled.button.url: String

Properties

enabled.button.label

  • Optional button label for enabled toggle.
  • Required: No

enabled.button.url

  • Optional button URL for enabled toggle.
  • Required: No

disabled.button.label

  • Optional button label for disabled toggle.
  • Required: No

disabled.button.label

  • Optional button label for disabled toggle.
  • Required: No

App::Image

name: String
registry: String
image: String
tag: String
snapshottable: Boolean

Properties

name

  • Image name that can be referenced by an engine.
  • Required: Yes

registry

  • Container registry name to pull the image from.
  • Required: Yes
  • Allowed values: docker_hub, ocean_account_registry

image

  • Image name.
  • Required: Yes

tag

  • Image tag name.
  • Required: Yes

snapshottable

  • Is this image snapshottable by the user on Ocean.
  • Required: Yes

App::Step

engines:
  - App::Step::Engine

Properties

engines

  • List of engines to be executed in parallel. Only list multiple engines in one step as long as they are not dependent on each other.
  • Required: Yes

App::Step::Engine

name: String
networking:
  dns: App::Step::Engine::Networking::Dns
  ports:
    - App::Step::Engine::Networking::Port
settings:
  - App::Step::Engine::Setting
vars:
  - App::Step::Engine::Var
hooks:
  - App::Step::Engine::Hook
container: App::Step::Engine::Container
deployment: App::Step::Engine::Deployment
ui:
  buttons:
    - App::Step::Engine::Ui::Button
  badges:
    - App::Step::Engine::Ui::Badge

Properties

name

  • Engine name unique across the app.
  • Required: Yes

networking.dns

  • DNS settings
  • Required: No

settings

  • List of app settings.
  • Required: No

vars

  • List of dynamic variables that the app creator defined at the engine level. These are not environment variables that are set in App::Step::Engine::Orchestrator and passed to the container.
  • Required: No

hooks

  • List of app hooks triggered by actions.
  • Required: No

container

  • Defines engine container.
  • Required: No

deployment

  • Defines how the container should be deployed.
  • Required: Yes

ui.buttons

  • List of app buttons.
  • Required: No

ui.badges

  • List of app badges.
  • Required: No

App::Step::Engine::Networking::Dns

This section of the template allows the app developer to configure an engine subdomain. The user of the app can set a custom value for the subdomain once they install the app. Value has to be unique in the user account with the complete engine URL looking like this: <engine_value>.<account_name>.myocean.io.

enabled: Boolean
label: String
description: String
default_value: String

Properties

enabled

  • Is the DNS enables?
  • Required: Yes

label

  • User-friendly label to show in the settings.
  • Required: Yes

description

  • User-friendly description to show in the settings.
  • Required: No

default_value

  • Default DNS value.
  • Required: Yes

App::Step::Engine::Networking::Port

Engine port definition. Ocean reserves a public or private port once the app is installed in an environment. App ports are unique in the environment. Public ports are assigned randomly from 10000-10999. Private ports are assigned randomly from 11000-11999

name: String
public: Boolean

Properties

name

  • Port name.
  • Required: Yes

public

  • Should the port be public?
  • Required: Yes

App::Step::Engine::Setting

label: String
name: String
default_value: String
style: String
description: String
group: String
options:
  - App::Step::Engine::Setting::Option
validations:
  - App::Step::Engine::Setting::Validation

Properties

label

  • User-friendly label.
  • Required: Yes

name

  • Unique name.
  • Required: Yes

default_value

  • Default value for the setting.
  • Required: No

style

  • Setting style that the user sees in the web UI.
  • Required: Yes
  • Allowed values: input, secret, dropdown, toggle

description

  • Description for the setting that will be displayed in the tooltip.
  • Required: No

group

  • Setting group. All settings within the same group are rendered under one title.
  • Required: No

options

  • List of options for the dropdown style.
  • Required:
    • style: input: No
    • style: secret: No
    • style: dropdown: Yes
    • style: toggle: No

validations

  • List of validations for values.
  • Required: No

App::Step::Engine::Setting::Option

label: String
value: String

Properties

label

  • User-friendly label.
  • Required: Yes

value

  • Required: Yes

App::Step::Engine::Setting::Validation

type: String
value: String

Properties

type

  • Validation type.
  • Required: Yes
  • Allowed values: presence

value

  • Required: Yes
  • Allowed values:
    • type: presence: "true", "false"

App::Step::Engine::Var

name: String
value: String

Properties

name

  • Unique variable name.
  • Required: Yes

value

  • Required: Yes

App::Step::Engine::Hook

Hooks are executed by triggering a trigger. A hook is a docker exec command into an existing engine container.

user: String
workdir: String
trigger: App::Step::Engine::Hook::Trigger
toggle: App::Step::Engine::Hook::Toggle

Properties

user

  • Container user.
  • Required: No

workdir

  • Container workdir.
  • Required: No

trigger

  • What triggers this hook.
  • Required: Yes

toggle

  • If the trigger type is action and action is a toggle define its behavior here.
  • Required: Yes, if trigger.type is action and action.type is trigger.

App::Step::Engine::Trigger

type: String
name: String

Properties

type

  • Type of the trigger.
  • Required: Yes
  • Allowed values: action

name

  • Name of the trigger.
  • Required: Yes

App::Step::Engine::Toggle

enabled.command: String
disabled.command: String

Properties

enabled.command

  • Command to be triggered for the enabled state.
  • Required: Yes

disabled.command

  • Command to be triggered for the disabled state.
  • Required: Yes

App::Step::Engine::Deployment

strategy: String

Properties

strategy

  • Describes how containers should be deployed.
  • Required: Yes
  • Allowed values: main_and_workers, main, workers, workers_fill_pool, workers_fill_pool_if_available

App::Step::Engine::Container

runner: App::Step::Engine::Orchestrator::Container::Runner
image_name: String
user: String
workdir: String
mounts:
  app_files:
    App::Step::Engine::Orchestrator::Container::Mount::AppInstall
  data_stores: String
nodes:
  main: App::Step::Engine::Orchestrator::Container::Node
  worker: App::Step::Engine::Orchestrator::Container::Node

Properties

runner

  • Container runner definition.
  • Required: No

image_name

  • Name of the image from the images section.
  • Required: Yes

user

  • User to pass to the container. If empty the -u arg is not set.
  • Required: No

workdir

  • Workdir to set in the container. If empty the -w arg is not set.
  • Required: No

mounts

  • List of optional mounts:
    • app_files list of mounts that reference app files.
    • data_stores
  • Required: No

nodes

  • Deprecated.

App::Step::Engine::Orchestrator::Container::Mount::AppInstall

name: String
app_files_path: String
container_path: String
readonly: Boolean
shared: Boolean

Properties

name

  • Mount name unique across the engine.
  • Required: Yes

app_files_path

  • Path inside of the app bundle files directory.
  • Required: Yes

app_files_path

  • Path inside the container.
  • Required: Yes

readonly

  • Is the mounted directory read-only.
  • Required: Yes

shared

  • Can the mounted directory be shared between engines?
  • Required: No
  • default: false

App::Step::Engine::Orchestrator::Container::Runner

modes:
  - String

Properties

modes

  • List of special modes to run the container with.
  • Required: No
  • Allowed values:
    • systemd sets --privileged, -v /sys/fs/cgroup:/sys/fs/cgroup:ro.

App::Step::Engine::Orchestrator::Container::Node

env_vars: App::Step::Engine::Orchestrator::Container::Node::EnvVar
entrypoint: String
command: String

Properties

env_vars

  • List of environment variables to pass to the container.
  • Required: No

entrypoint

  • Container entrypoint.
  • Required: No

command

  • Container command.
  • Required: No

App::Step::Engine::Orchestrator::Container::Node::EnvVar

name: String
value: String

Properties

name

  • Environment variable name.
  • Required: Yes

name

  • Environment variable value.
  • Required: Yes

App::Step::Engine::Ui::Button

node_target: String
label: String
url: String
visibility_conditions:
  - App::Step::Engine::Ui:VisibilityCondition

Properties

node_target

  • What node type should this button be visible on?
  • Required: Yes
  • Allowed values: main, workers, all

label

  • User-friendly label on the button.
  • Required: Yes

url

  • Button URL.
  • Required: Yes

visibility_conditions

  • List of visibility conditions.
  • Required: No

App::Step::Engine::Ui::Badge

node_target: String
label: String
tooltip: String
visibility_conditions:
  - App::Step::Engine::Ui:VisibilityCondition

Properties

node_target

  • What node type should this button be visible on?
  • Required: Yes
  • Allowed values: main, workers, all

label

  • User-friendly label on the button.
  • Required: Yes

tooltip

  • Tooltip that shows up on mouse hover events.
  • Required: No

visibility_conditions

  • List of visibility conditions.
  • Required: No

App::Step::Engine::Ui:VisibilityCondition

type: String
setting: App::Step::Engine::Ui:VisibilityCondition::Setting
action: App::Step::Engine::Ui:VisibilityCondition::Action

Properties

type

  • Type of visibility condition.
  • Required: Yes
  • Allowed values: setting, action

setting

  • Setting definition.
  • Required:
    • type: setting: Yes

action

  • ACtion definition.
  • Required:
    • type: action: Yes

App::Step::Engine::Ui:VisibilityCondition::Setting

name: String
value: String

Properties

name

  • Name of the engine setting.
  • Required: Yes

value

  • Expected value of the engine setting to pass the visibility condition.
  • Required: Yes

App::Step::Engine::Ui:VisibilityCondition::Action

name: String
value: String

Properties

name

  • Name of the app action.
  • Required: Yes

value

  • User value from the app action.
  • Required: Yes

On This Page