Organization
An organization is your tenancy boundary. It maps 1:1 to a GitHub (or GitLab) installation: when you install the app on an account, you get exactly one slipway org. The org has a slug derived from the account login — it shows up in your URLs and never changes.Repository
A repository is a GitHub repo slipway has ingested. A repo deploys once it’s part of an environment (below) — adding it to one validates itsslipway.yaml and starts tracking its default branch.
Service
A service is one container in your spec. A service with a public port gets its own URL; services in the same deployment can reach each other by name over a private network. A typical app is one service; a full-stack app is two or three (web, api, worker).
Deployment
A deployment is one attempt to bring a commit alive. It carries a status, an event log, a public-URL map, and — for ephemeral runs — a TTL. Every deployment belongs to an environment: the environment is the definition of what runs, and the deployment is one live run of it.Environment
An environment is the blueprint for what runs: which repo (or repos) take part, on which branch, and with which variables and secrets. It ties them together so they deploy as a unit and can talk to each other — a frontend, an API, and a database, brought up side by side. An environment isn’t live on its own. Deploying it produces a deployment — a running copy at its own URL — and one environment can have many deployments over its life (a push, a pull request, a Deploy now). A single enabled repo gets a one-component environment automatically, so every deployment flows through the same path. See Environments.Ephemeral & TTL
A deployment can be ephemeral — created with a TTL (default 5 minutes for manual deploys). The clock starts when the status reaches healthy, not when the deploy was created, so a slow build doesn’t eat your preview window. When it elapses, slipway tears the deployment down. Pull-request and default-branch deployments are not ephemeral. They live until a newer commit supersedes them or the PR closes.Supersession
When a new commit lands for the same branch or PR, slipway cancels any in-flight deploy for it, builds the new one, and — once it’s healthy — marks the previous one superseded. The public hostname stays stable across commits, so reviewers’ links never break; traffic hands over to the newest build the instant it’s healthy.Quick reference
| Term | Meaning |
|---|---|
| Apps base domain | The parent zone previews are served under by default: <env>-<service>-<id>.<apps-base>. Bring your own under Custom domains. |
| Cutover | The moment a public URL starts serving the new build. |
| Dev instance | An ephemeral copy of an environment spun up from the sw dev up CLI to test a branch. Reaped when the CLI exits. |
| Primary instance | An environment’s always-on instance — no TTL, watches its tracked refs, auto-deploys on push. Stays up until torn down. |
| Preview auth | Optional gating on public URLs: shared token, GitHub org membership, or a per-deployment token. |
| Probe | A startup, readiness, or liveness check in healthcheck: — one of http, tcp, exec, or grpc. |
| Resolution | Expanding every ${secret.*} and ${var.*} reference to its value at deploy time. A missing reference fails the deploy. |
| Snapshot | A point-in-time copy of a named volume. New previews seed from the latest one. |
<id> | The short, stable identifier in a preview URL. Every service in one instance shares it, and it survives redeploys. |