Variables are the plaintext counterpart of secrets. Same two-scope model, sameDocumentation Index
Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt
Use this file to discover all available pages before exploring further.
${var.*} substitution syntax, but values are visible to anyone with viewer role or above.
Use variables for:
- Feature flags (
FEATURE_NEW_ONBOARDING=on) - Log levels (
LOG_LEVEL=debug) - Non-sensitive endpoints (
REGISTRY_HOST=ghcr.io) - Build identifiers passed into
build.argsfor reproducibility
Two scopes
- Repository variables —
/{slug}/repos/{id}/variables. Scoped to one repo. - Organization variables —
/{slug}/settings/variables. Shared across every repo in the org.
${var.NAME} prefers the repo store with org fallback; explicit ${var.repo.NAME} / ${var.org.NAME} are strict.
Substitution
^[A-Z][A-Z0-9_]*$. Missing variables fail the deploy before any tenant pod starts.
What slipway logs about variables
Every deploy emits avars_resolved event with the resolved set: [{name, scope, source, value}, ...]. Values are included because variables aren’t secret — the event log is a useful audit trail for “what value was actually used.”
If you find yourself wanting to keep a variable’s value out of the event log, you want a secret instead.
Permissions
| Role | Read names | Read values | Create / update / delete |
|---|---|---|---|
| Viewer | yes | yes | no |
| Developer | yes | yes | yes |
| Admin | yes | yes | yes |
| Owner | yes | yes | yes |