Ambientes
Um ambiente é um conjunto nomeado de variáveis armazenado como JSON. Um workspace pode ter qualquer número deles; exatamente um está ativo por vez. O ambiente ativo é registrado no arquivo de estado pessoal do workspace, então sobrevive a reinícios, e se aquele ambiente não existir mais o Fetchpier cai para o primeiro disponível.
As variáveis definidas por um ambiente alimentam placeholders {{name}}, campos de auth e passphrases
de TLS. Pre-request scripts podem lê-las e escrevê-las — veja Variáveis.
Como um ambiente é nomeado em disco
Section titled “Como um ambiente é nomeado em disco”Cada ambiente vive em sua própria pasta, nomeada conforme o ambiente em uma forma segura para o sistema
de arquivos: caracteres acentuados são transliterados para sua letra base (Producción → produccion),
todo o resto fora de letras e dígitos se torna um hífen, e nomes muito longos são encurtados em um
hífen. Esse nome de pasta é o handle público do ambiente — é o que o controle de versão rastreia e o que
uma execução de linha de comando nomeia — enquanto o nome de exibição é mantido exatamente como você
digitou.
Dois ambientes não podem cair na mesma pasta: um nome que colide com um existente, ou que não contém nenhuma letra ou dígito, é rejeitado na hora e você é solicitado a escolher outro. O Fetchpier nunca inventa um nome em seu lugar. Um nome rejeitado deixa o campo aberto com o texto como você digitou, para que você o corrija em vez de redigitá-lo.
Separadamente de ambos os nomes, cada ambiente carrega um identificador interno estável que nunca muda. É isso que torna o rename seguro: renomear move a pasta e troca o rótulo, mas o ambiente que ele é continua o mesmo, então a seleção ativa, seu cookie jar e seus valores locais à máquina o acompanham sem nada para reapontar. Renomear a pasta de um ambiente à mão fora da app é uma forma legítima de renomeá-lo: o Fetchpier lê o que encontra, adota o nome da pasta como nome de exibição, e nunca move os arquivos de volta.
Gerenciar ambientes
Section titled “Gerenciar ambientes”O painel de Ambientes permite criar, editar e trocar de ambiente. Clicar em um ambiente da lista o abre para edição; clicar com o botão direito faz o mesmo e abre um menu com renomear, duplicar e apagar, então o menu nunca age sobre um ambiente cujas variáveis você não pode ver:
- Renomear edita a linha no lugar, pré-preenchida com o nome atual. Move a pasta do ambiente e o rerrotula; nada mais muda — o mesmo ambiente continua selecionado e ativo, e seus cookies e valores locais à máquina se movem com ele.
- Duplicar abre uma nova linha abaixo da origem, pré-preenchida com o primeiro
<nome>-copylivre (depois-copy-2, …). Nada é gravado até o nome ser confirmado. A cópia recebe cada variável da origem literalmente — planas, secretas e “precisa de valor” igualmente, então valores criptografados continuam funcionando sem nunca serem descriptografados — mas começa com um cookie jar vazio e sem overrides de valores locais: esse estado é pessoal de uma máquina e não faz parte do que está sendo compartilhado. - Apagar pede confirmação em um diálogo que nomeia o ambiente e afirma que seus cookies e overrides de valores locais à máquina vão com ele e não têm outra cópia. Quando o ambiente apagado era o selecionado, o primeiro ambiente restante toma seu lugar.
Uma caixa de busca fica acima da lista, com os botões de ordem à direita. A busca encontra o
texto em qualquer parte do nome do ambiente, ignorando maiúsculas e acentos (produccion encontra
Producción), e avisa quando nada corresponde — o campo de criação continua disponível, então uma busca
que não encontra nada está a uma tecla de criar o que você procurava. A ordem é por nome, A → Z ou
Z → A; o painel abre em A → Z. Ambas são formas de olhar a lista, não mudanças nela: nada é gravado,
nenhum ambiente se move em disco, e ambas são redefinidas na próxima vez que o painel é aberto. Uma linha
cujo nome está sendo editado continua visível mesmo quando a busca deixa de corresponder a ela, então um
nome rejeitado e seu erro nunca são filtrados no meio da correção.
Os ambientes aparecem em ordem alfabética onde quer que você escolha um. O dropdown de ambiente é ordenado por nome, e o painel de manutenção também, por padrão — a ordem em que as pastas estão em disco é um acaso, não uma escolha de ninguém.
O painel é um editor, não um seletor. Qual ambiente está ativo é escolhido apenas por você, pelo dropdown de ambiente. Selecionar uma linha no painel de manutenção carrega as variáveis daquele ambiente para edição e nada mais — fechar o painel nunca muda contra qual ambiente a próxima requisição resolve. A única exceção é apagar o ambiente ativo: ele não existe mais, então o primeiro restante toma seu lugar.
Dentro de um ambiente, todas as variáveis aparecem em uma única lista cujas linhas você pode reordenar arrastando; a ordem escolhida é significativa e persiste entre recarregamentos. Uma variável não compartilhada — uma que tem um valor local que o arquivo de ambiente compartilhado não tem — é a única exceção: ela fica no fim da lista e não tem handle de arraste até chegar ao arquivo compartilhado, porque até então não há onde registrar sua posição.
Settings HTTP
Section titled “Settings HTTP”Um pequeno conjunto de comportamentos HTTP é controlável em dois níveis: um default do workspace e um override por requisição. Os overrides por requisição têm prioridade; caso contrário, aplica-se o default do workspace.
| Setting | Significado |
|---|---|
httpVersion | auto (negocia — HTTP/2 se ambas as pontas suportarem), http1 ou http2. |
verifySsl | Se o certificado TLS do servidor é verificado. Por padrão, verdadeiro. |
followRedirects | Se respostas 3xx são seguidas automaticamente. |
maxRedirects | Limite de redirecionamentos seguidos. |
followAuthorizationOnRedirect | Se o cabeçalho Authorization é mantido quando um redirecionamento cruza de host. Por padrão, falso (cabeçalho removido). |
encodeUrl | Quando ligado, os valores dos parâmetros de query são codificados em porcentagem depois da resolução de {{variable}}, então um valor resolvido não pode quebrar a query; quando desligado, os valores resolvidos são enviados em cru — uma válvula de escape em que você assume a responsabilidade pelos bytes. |
disableCookieJar | Ignora a anexação e captura de cookies nesta requisição. |
Mudanças no nível do workspace são transmitidas a cada janela aberta, então usuários concorrentes do mesmo workspace veem comportamento consistente.
Além das settings overridáveis por requisição acima, o painel de settings do workspace expõe uma política no nível de todo o workspace:
| Setting | Significado |
|---|---|
binaryFileLimits.warnBytes | Limite de tamanho de arquivo acima do qual anexar um body binário dispara um pedido de confirmação. Padrão 50 MB. |
binaryFileLimits.blockBytes | Limite de tamanho de arquivo acima do qual um anexo binário é rejeitado de imediato. Padrão 100 MB. |
Esses dois limites deliberadamente não são por requisição: o limite é uma propriedade do que este workspace pode carregar — em particular, do que seu remoto Git vai aceitar em um push — e não uma propriedade das requisições individuais.