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):
- 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. - A camada local do ambiente ativo — a camada sobreposta por máquina (coluna
Local). Quando ambas as camadas definem um nome, a local ganha. - 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:
- O arquivo
.envdo workspace, se existir. Quando a chave existe ali — inclusive com valor vazio — aquele valor ganha, mesmo sobre o shell do SO. - O ambiente do processo Fetchpier (ou
fp) em execução. - 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 que não faz parte da precedência
Section titled “O que não faz parte da precedência”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>}).