Pular para o conteúdo

Precedência de variáveis

Quando o Fetchpier resolve um placeholder {{name}}, ele avalia o nome contra o ambiente ativo combinado com quaisquer mutações de script em andamento. Em ordem de precedência (do maior ao menor):

  1. Mutações de script em andamento — valores definidos durante este envio com fp.environment.set(name, value). Eles são gravados na camada local e persistem após o envio.
  2. A camada local do ambiente ativo — a camada sobreposta por máquina (coluna Local). Quando ambas as camadas definem um nome, a local ganha.
  3. A camada compartilhada do ambiente ativo — as variáveis commitadas e compartilhadas com a equipe (coluna Shared).

Se nenhuma fonte definir o nome, o placeholder fica literal e é sinalizado na UI; a requisição é enviada mesmo assim, para você inspecionar o que teria saído.

Um token {{$name}} não é buscado no ambiente: o prefixo $ é reservado para tokens do sistema, então o nome é comparado com o conjunto embutido de variáveis dinâmicas e, se reconhecido, resolve para dados recém-gerados naquela ocorrência. Um token $ não reconhecido se comporta como qualquer variável não resolvida: fica literal, é sinalizado, e o envio prossegue. Um nome de variável de usuário que comece com $ é rejeitado na entrada, então um nome de usuário nunca pode encobrir um token do sistema.

Dentro do valor de um ambiente: {{$env.NAME}}

Section titled “Dentro do valor de um ambiente: {{$env.NAME}}”

Uma cadeia separada se aplica dentro do valor de uma variável de ambiente, onde {{$env.NAME}} lê do ambiente do host. Ela é resolvida em cada envio, do maior ao menor:

  1. O arquivo .env do workspace, se existir. Quando a chave existe ali — inclusive com valor vazio — aquele valor ganha, mesmo sobre o shell do SO.
  2. O ambiente do processo Fetchpier (ou fp) em execução.
  3. A string vazia, quando nenhuma das fontes define a chave. A requisição sai de qualquer forma, com o buraco visível no payload de saída.

{{$env.NAME}} é reconhecido apenas dentro dos valores de variáveis de ambiente. Escrito diretamente na URL, em um cabeçalho, no body ou em um script de um .http, ele fica literal.

O espaço efêmero por envio (fp.variables.*) é separado: é lido e escrito apenas através da API de scripting, não por placeholders {{name}}, e é descartado quando o envio termina. As mudanças de ambiente persistidas com fp.environment.set sobrevivem ao envio e ficam visíveis para requisições posteriores — mas sempre caem na camada local, nunca no arquivo compartilhado.

O caráter secreto não afeta a precedência: uma variável secreta resolve exatamente como uma plana, na mesma ordem. Ele só muda como o valor é armazenado (criptografado) e como é renderizado nos logs (mascarado como {secret:<name>}).