Inputs dos arquivos .yaml

Nesta seção, você encontra a referência sobre os inputs dos arquivos plugin.yaml, template.yaml e task.yaml.

Inputs

Os arquivos de configuração que possuem o campo inputs são:

Esses inputs coletam informações relevantes para o escopo do projeto, Template, Plugin ou Task, dessa forma, os inputs são interpretados pelo STK CLI durante a execução dos comandos para pedir essas informações para os usuários.

Tipos de input

Os tipos de input são definidos no campo type, confira quais são:

TiposValor
textString.
boolBoolean.
intInteger.
passwordO valor na CLI fica oculto no formato: ****.
multiselectLista os valores, permitindo escolher 1 ou mais valores (string).

Confira os inputs em um arquivo template.yaml:

name: my-template
description: Describe your template explaining its purpose
types:
  - app-template
inputs:
  - label: Input Example
    type: text
    name: example
    default: any text
    required: true
    help: "Inform any text (e.g: My first text input)"

Campos Obrigatórios do input

  • name: Nome do input (será manipulado depois).
  • label: Texto que aparecerá no terminal pedindo o input para o usuário.
  • type:
    • text (string).
    • bool (boolean).
    • int (integer)
    • password (O valor na CLI fica oculto no formato: ****).
    • multiselect (lista os valores, permitindo escolher 1 ou mais valores) (string).

Exemplos de inputs com campos obrigatórios

Input do tipo texto

- label: Type your name
  name: name
  type: text

Input do tipo multiselect

inputs:
  - label: Choose one or more days
    name: days
    type: multiselect
    items:
      - Monday 
      - Tuesday 
      - Wednesday 
      - Thursday 
      - Friday

Campos Opcionais do input

  • help: Texto apoio usado para orientar o usuário preencher o input.
- label: Type your name
  name: name
  type: text
  help: "Inform your firstname (e.g: John)"
  • default: Valor padrão associado ao input caso nenhum valor for informado.
- label: Type your name
  name: name
  type: text
  default: John
  • required: Booleano que indica se um valor é opcional ou não, o valor será false caso nenhum valor for informado.
- label: Type your name
  name: name
  type: text
  required: true
  • items: Lista de valores possíveis para o input (usado com type text (select) ou type multiselect)
- label: Type your name
  name: name
  type: text
  items: 
        - John
        - Bill
  • pattern: Configura uma validação do campo informado no input
- label: Type your name
  name: name
  type: text
  pattern: [A-Za-z]  
  • condition: Após receber um valor no input, é determinada uma condição para que um segundo input seja exibido para a pessoa usuária caso a condição for atendida. Se a condição não for atendida, nada acontecerá após o input com o condition.

    • variable: Nome da variável que será usada para avaliar a condição.
    • operator: Operador usado para avaliar a condição. Os valores de operadores válidos são: ==, !=, >, >=, <, <=, containsAny, containsAll, containsOnly, notContainsAny e notContainsAll.
    Clique para ver mais detalhes dos operadores:
    OperadorDescrição
    ==Valida se os valores são iguais.
    !=Valida se os valores são diferentes.
    >Valida se a variável é maior ao valor.
    <Valida se a variável é menor ao valor.
    >=Valida se a variável é maior ou igual ao valor.
    <=Valida se a variável é menor ou igual ao valor.
    containsAnyValida se a variável do tipo lista contém qualquer um dos valores contidos em value.
    containsAllValida se a variável do tipo lista contém todos os valores valores contidos em value.
    containsOnlyValida se a variável do tipo lista contém todos os valores valores contidos em value e não contém outros elementos.
    • value: Valor usado para a avaliação.

Confira o exemplo abaixo de uso de condition em um input. Neste exemplo o usuário responde qual linguagem deseja usar dentre as opções de Java e Kotlin, e dependendo da linguagem escolhida, vê as versões disponíveis.

inputs:
  - label: Qual linguagem deseja usar?
    type: text
    name: language
    items:
      - Java
      - Kotlin
  - label: Qual versão do Java deseja usar?
    type: text
    name: java_version
    items:
      - "11"
      - "17"
    condition:
      variable: language
      operator: ==
      value: Java
  - label: Qual versão do Kotlin deseja usar?
    type: text
    name: kotlin_version
    items:
      - 1.6
      - 1.7
    condition:
      variable: language
      operator: ==
      value: Kotlin

No exemplo exibido a condition determina a lista que será exibida, dependenendo do valor do input language. Caso o valor seja igual a Java, a lista de versões de Java é exibida, caso seja igual a Kotlin, a lista de versões de Kotlin é exibida.

Próximos passos