The dashboard
Opening it
driftTyped at a terminal, drift with no arguments launches the dashboard. Run from a pipe or a CI job it prints help instead, so a script never hangs waiting on a screen nobody is watching. drift portal is a hidden alias that opens the same screen.
Launch is gated on a usable session, checked before the screen opens: a token that has expired is refreshed silently, and only a hard failure (no session, or the refresh failing too) brings up a login prompt. The dashboard needs a window of at least 130×35; below that it shows your current and required size until you resize.
The layout
A sidebar on the left lists every slice you own plus a row for creating one. The rest of the screen is one of four tabs (Slice, Atomic, Backbone, Canvas) and everything in it is scoped to the active slice. Pressing Enter on a sidebar row makes that slice active, which is the same setting drift slice use writes, so the choice survives the session and applies to every other command.
The header carries a keybind guide for whatever pane has focus, so the list below is a reference rather than something to memorise. The bottom line carries the running CLI version, the result of your last action, and a nudge when a newer release exists.
Keys
Arrow keys and j/k/h/l both move.
| Key | Anywhere |
|---|---|
tab | Switch focus between the sidebar and the main pane |
1–4 | Switch tab |
r | Refresh, bypassing the per-tab cache |
o / Ctrl-O | Open a slice's URL in a browser: the highlighted one from the sidebar, the active one from anywhere else |
Ctrl-S | Platform status, read from the public status page. Any key dismisses it. |
esc | Back: leave a drill-down, collapse an open function, cancel a prompt |
Ctrl-C | Quit, from modals and confirmations included |
| Pane | Keys |
|---|---|
| Sidebar | enter make active · N new slice · D delete slice · o open URL |
| Slice | s snapshot · c configure · w download · d delete |
| Atomic | enter expand · N new function · s stat cards · d delete · f full-screen logs |
| Backbone | [ ] primitive · enter open · s set a secret · d delete a secret |
The Slice tab
Four panels: the slice's memory census measured against the function memory you declared, its current configuration, its snapshots, and the itemised monthly bill for that configuration.
| Key | What happens |
|---|---|
s | Prompts for a snapshot name and starts one. Enter on an empty prompt lets the platform name it. |
w | Downloads the selected snapshot as <name>.tar.gz into the directory you launched from. |
d | Deletes the selected snapshot, after a confirmation. |
c | Runs drift slice resize on this slice, opened on the shape it already has. |
A snapshot is taken in the background, so the list does not update on its own. Press r to see it land.
The Atomic tab
A rail of the slice's functions on the left. Enter opens one, and while it is open its metrics and log tail are re-fetched every two seconds, so logs stream without touching a key. f expands the logs to the full screen and s hides the stat cards above them.
The open function's element, trigger and schedule are shown but not editable here: selecting one prints the command that sets it. Deploying is the same; see the CLI reference for drift atomic deploy.
The Backbone tab
[ and ] step through NoSQL, Cache, Queues, Blobs, Locks and Secrets, wrapping at either end. Enter opens a collection's documents, a queue's messages or a bucket's keys as a scrollable dump, and r re-fetches that dump in place. Cache, locks and secrets list only.
Secrets are the one primitive with write keys: s prompts for NAME=value and sets it, d deletes the selected one after a confirmation. A value takes effect on the next invocation of any function that declared it.
The Canvas tab
Informational. It states the same-origin arrangement (your site at the slice root, your functions under /api/*) and prints the deploy command; publishing a site is a CLI step. The Canvas guide covers routes and limits.
Creating a slice from here
N in the sidebar offers two paths:
| Path | What it does |
|---|---|
| Empty slice | Runs drift slice create and makes the slice from what you dial in. Nothing is deployed into it. |
| From a Driftfile | Opens a small directory browser, then suspends the dashboard and runs the real drift file apply, output and all, returning to the dashboard when it finishes. |
The browser leads with the Driftfiles it found near where you launched: your working directory and up to three ancestors, three levels deep. g jumps to a path you type, ← goes up a level.
The Atomic tab's N mirrors this for functions: pick a directory to deploy with drift atomic deploy, or one to scaffold into with drift atomic new. Both suspend the dashboard the same way and run the same command you would have typed.
Shaping a slice
A slice's shape is set by drift slice create and drift slice resize, which draw their own form in the terminal — a tree you move around in, with the price updating as you type. It is not a pane in this dashboard: the dashboard shows you what your slices ARE, and those two commands are what change one.
There is no web page for this. There was one, at slices.ondrift.eu; it was retired once the terminal form could do the whole job, and the host now answers 410.
It is the same form for creating and for resizing, and it collects the whole shape: name, functions and the memory each books, scheduled jobs, collections, SQL databases, queues, blobs, secrets, realtime connections, retention and the billing period. Function memory runs from 8MB to 256MB — Memory and concurrency explains what a booking buys.
The price is recomputed on every change by the same endpoint that prices the create itself, so the form's total and the bill are one number. A configuration that stays inside the free grant — every limit at or under it, and no more functions, collections, buckets, databases or queues than it allows, at no greater total size — is the free slice; crossing any one of those bounds makes it a configured slice, priced per unit. What it costs lists the grant and the unit prices.
A handoff needs a browser, and says so when there is not one.
Deleting a slice
D in the sidebar turns the pane red, spells out what is destroyed (functions, sites, the whole of Backbone, logs, metrics and deploy history) and asks you to type the slice's name. Anything else cancels. There is no undo and no backup to restore from, so take a snapshot first if you want the data.
Deleting the active slice clears the active slice.
drift slice use <name>, or Enter on a sidebar row.