Ir al contenido

Buscar en la documentación

Busca en la documentación de Skiffly

Variables y referencias

Variables de servicio, variables compartidas, referencias `${{Service.VAR}}` entre servicios y las variables integradas SKIFFLY_* que recibe cada contenedor.

Las variables se guardan por entorno, ya sea para un servicio o compartidas por todos los servicios del entorno. Las variables de servicio tienen prioridad sobre las compartidas con el mismo nombre. Los valores se cifran en reposo y se inyectan en el contenedor como variables de entorno en el momento del despliegue.

Servicio → Variables. Las variables compartidas viven en Variables compartidas del entorno. El editor en bruto acepta texto con formato .env para ediciones en bloque.

Referencias#

Un valor puede apuntar a otra variable en lugar de repetirla:

SintaxisSignificado
${{Postgres.DATABASE_URL}}variable DATABASE_URL del servicio llamado Postgres (funcionan el nombre, el slug o el id)
${{shared.REGION}}variable compartida REGION del entorno
${{Postgres.SKIFFLY_PRIVATE_DOMAIN}}una variable integrada de otro servicio
https://${{self.SKIFFLY_PUBLIC_DOMAIN}}self dentro de plantillas y @skiffly/config: el servicio que se está definiendo

Las referencias se resuelven en el momento del despliegue, de forma recursiva (una variable que referencia una variable que referencia una integrada funciona). Cada servicio se renderiza con su propio entorno, así que la misma referencia da la base de datos de staging en staging y la de producción en production. Las referencias que no se pueden resolver se convierten en una cadena vacía y en una advertencia en el log del despliegue.

skiffly variables set 'DATABASE_URL=${{Postgres.DATABASE_URL}}' 'REDIS_URL=${{Redis.REDIS_URL}}'

Las plantillas de Postgres, MySQL, Redis y MongoDB ya exponen DATABASE_URL, MYSQL_URL, REDIS_URL y MONGO_URL construidas a partir de sus propias credenciales y hostname privado, así que una app normalmente necesita una referencia por base de datos.

Variables integradas#

Cada contenedor recibe estas, y otros servicios pueden referenciarlas:

VariableValor
PORTel puerto en el que el servicio debe escuchar
SKIFFLY_PUBLIC_DOMAINprimer dominio público del servicio (api-x1y2.skiffly.cloud o un dominio propio verificado); sin definir si no hay dominio
SKIFFLY_PRIVATE_DOMAINhostname en la red privada (api)
SKIFFLY_SERVICE_NAME, SKIFFLY_SERVICE_IDnombre e id del servicio
SKIFFLY_PROJECT_IDid del proyecto
SKIFFLY_ENVIRONMENT, SKIFFLY_ENVIRONMENT_IDslug del entorno (production, pr-42) e id
SKIFFLY_DEPLOYMENT_IDid del despliegue en ejecución
SKIFFLY_GIT_COMMIT_SHAcommit que se construyó (servicios de repositorio)

PORT, SKIFFLY_DEPLOYMENT_ID, SKIFFLY_PUBLIC_DOMAIN y SKIFFLY_GIT_COMMIT_SHA se definen en el propio servicio; cuando se referencian desde otro servicio (${{api.SKIFFLY_PUBLIC_DOMAIN}}) se resuelven a partir del estado actual de ese servicio.

Secretos#

Las variables se guardan cifradas (AES-256-GCM) y en el panel solo las ven los miembros del espacio de trabajo. La CLI enmascara los valores en las tablas y solo los imprime con --kv/--json; list-variables del servidor MCP devuelve los nombres a menos que el agente pida los valores. En configuración como código usa preserve() y generate() para que los secretos nunca terminen en el archivo.