Projects & environments
A project is the unit of delivery. It owns its environments, its variables, its deployments and every service created inside it.
Environments
Each project starts with three environments:
- production — the default branch.
- preview — ephemeral, created per pull request, superseded when a newer
preview arrives.
- development — long-lived, for shared non-production work.
You can add custom environments, and each one can claim a branch pattern using glob syntax (release/*, v?1). A custom environment that claims a branch gets a stable hostname (<project>-<env>.app.tngat.com) and its own variables; preview environments stay ephemeral.
# Which environment would this branch deploy to?
curl "https://api.tngat.com/api/v1/projects/shopfront/environments/route?branch=release%2F2.1" \
-H "Authorization: Bearer $TNGAT_API_KEY"Variables
Variables are scoped to a project and an environment, so the same key can hold different values per environment. At deploy time the builder resolves the variables for the target environment and injects them into the container.
Export and import round-trips with .env files from the project's Environments tab, so moving a project between environments stays familiar.
Secrets are write-only over the API: a value is stored encrypted and reads return it masked. Never commit a real secret to a repository that the builder reads from.
Transferring a project
Owners can move a project to another organization from Project → Settings → Transfer. The API checks that the caller is an owner in the source org *and* holds project:write in the destination, then writes audit rows into both organizations.