Commands are an important part of the
Replicated ecosystem for bootstrapping a configuration screen to help streamline the
installation of your application on-premise.
Important concepts to understand when using cmds
:
-
cmds
ONLY RUNS AT YAML IMPORT TIME (during app installation & during app updates). -
cmds
are computed, meaning they can not be templated with the{{repl }}
template functions. -
cmds
need to be “defined” in your yaml to be used by configuration options. -
cmds
are called in a configuration option in one of 3 ways:value_cmd
default_cmd
data_cmd
- If called via
value_cmd
ordata_cmd
the initial value/data will persist through updates, restarts etc (just as it would be if the customer input that value into the settings screen themselves). - If called from
default_cmd
this value will be recalculated every time the app is updated or installed.
Example App:
- I want a user to be able to specify a hostname but would like it to default to its public ip address.
- I want to generate a default random admin password for my application.
Step 1: Define my cmds
.
cmds:
- name: host_ip
cmd: get_my_public_ip_address
args: []
- name: generate_random_password_32_char
cmd: random
args:
- "32"
Step 2: Call my commands from config section.
config:
- name: App
title: App Configuration
description: Set default values for my App to Use
items:
- name: hostname
title: Hostname
type: text
value_cmd:
name: get_my_public_ip_address
value_at: 0
required: true
- name: admin_pw
title: Admin User Password
type: text
value_cmd:
name: generate_random_password_32_char
value_at: 0
required: true