Driftfile
A Driftfile declares what runs on a slice: which Atomic functions to deploy, which Backbone collections to seed, which Canvas sites to publish. You run drift file apply from the project root, and the platform ships the lot into the slice the file names.
It does not say how big anything is. A slice's shape — how many functions, what each books, how much storage each collection gets, and what the lot costs — is chosen in the slice's shape, which owns it. The Driftfile fills the slots that shape created.
That split is the thing to hold on to: drift slice create/resize declare what exists, the Driftfile says which source fills it. So applying a file never creates a slice, never grows one and never shrinks one, and it refuses against a slice that does not exist.
The file
The file is named Driftfile: capital D, no extension, just like a Makefile or Dockerfile. It lives at the project root, next to your atomic/, backbone/, and canvas/ folders. The format inside is YAML. The CLI looks for ./Driftfile where you run the deploy. There is no second config file and no lockfile; multiple environments live in this one file under environments:, not a forest of per-environment variants.
-
my-project/the project root
-
atomic/your functions
- submit.go
- validator.go
-
backbone/seeds and schemas
- permit-types.jsonlupserted by
_id
- permit-types.jsonlupserted by
-
canvas/your sites
- public/mounted at /
- reviewer/mounted at /reviewer
- Driftfilethe manifest, at the root
-
atomic/your functions
The shape of the file
- AnatomyEvery top-level key, the name rules, short forms.
- A worked exampleOne app with every section written out.
Section by section
- AtomicFunction limits, schedules, alerts and egress.
- BackboneCollections, databases, buckets, queues, secrets.
- CanvasStatic sites, and the route each mounts on.
- DomainsCustom hostnames the slice answers on.
- EnvironmentsOne project, several slices, one file.
- Deploying and validatingLint it, hook a build onto it, read its errors.
The smallest Driftfile
The minimum is the slice it applies to and one thing to put in it:
slice: hello
canvas: ./canvasdrift file new writes a starter one for you.
Keys that moved to the slice's shape
Seventeen capacity keys still parse and are ignored — the value stays where you wrote it, nothing reads it, and drift file lint says so once per key. They are listed with their destinations on Anatomy. Nothing breaks if you leave them in; nothing happens either.