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):
- 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. - La capa local del entorno activo — la capa superpuesta por máquina (columna
Local). Cuando ambas capas definen un nombre, gana la local. - 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:
- El archivo
.envdel workspace, si existe. Cuando la clave existe ahí —incluso con valor vacío— ese valor gana, incluso por sobre la shell del SO. - El entorno del proceso Fetchpier (o
fp) en ejecución. - 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.
Qué no es parte de la precedencia
Section titled “Qué no es parte de la precedencia”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>}).