Ir al contenido

Precedencia de variables

Cuando Fetchpier resuelve un placeholder {{name}}, evalúa el nombre contra el entorno activo combinado con las mutaciones de script en curso. En orden de precedencia (de mayor a menor):

  1. Mutaciones de script en curso — valores seteados durante este envío con fp.environment.set(name, value). Se escriben en la capa local y persisten después del envío.
  2. La capa local del entorno activo — la capa superpuesta por máquina (columna Local). Cuando ambas capas definen un nombre, gana la local.
  3. La capa compartida del entorno activo — las variables commiteadas y compartidas con el equipo (columna Shared).

Si ninguna fuente define el nombre, el placeholder queda literal y se marca en la UI; la solicitud se envía igual, así podés inspeccionar qué habría salido.

Un token {{$name}} no se busca en el entorno: el prefijo $ está reservado para tokens del sistema, así que el nombre se compara contra el conjunto integrado de variables dinámicas y, si se reconoce, resuelve a datos recién generados para esa aparición. Un token $ no reconocido se comporta como cualquier variable sin resolver: queda literal, se marca, y el envío igual procede. Un nombre de variable de usuario que empiece con $ se rechaza al ingresarlo, así un nombre de usuario nunca puede tapar un token del sistema.

Dentro del valor de un entorno: {{$env.NAME}}

Section titled “Dentro del valor de un entorno: {{$env.NAME}}”

Una cadena separada aplica dentro del valor de una variable de entorno, donde {{$env.NAME}} lee del entorno del host. Se resuelve en cada envío, de mayor a menor:

  1. El archivo .env del workspace, si existe. Cuando la clave existe ahí —incluso con valor vacío— ese valor gana, incluso por sobre la shell del SO.
  2. El entorno del proceso Fetchpier (o fp) en ejecución.
  3. La cadena vacía, cuando ninguna de las fuentes define la clave. La solicitud igual sale, con el hueco visible en el payload saliente.

{{$env.NAME}} se reconoce solo dentro de los valores de variables de entorno. Escrito directamente en la URL, una cabecera, el body o un script de un .http, queda literal.

El espacio efímero por envío (fp.variables.*) es separado: se lee y escribe solo a través de la API de scripting, no mediante placeholders {{name}}, y se descarta al completarse el envío. Los cambios de entorno persistidos con fp.environment.set sobreviven al envío y son visibles para las solicitudes posteriores — pero siempre caen en la capa local, nunca en el archivo compartido.

El carácter de secreto no afecta la precedencia: una variable secreta resuelve exactamente igual que una plana, en el mismo orden. Solo cambia cómo se guarda el valor (encriptado) y cómo se renderiza en los logs (enmascarado como {secret:<name>}).