Docs / Authoring in the browser
The one draft, Activate, the edit lock
Authoring in the browser has one rule under everything: there is one draft per environment, and Activate is the only write. Every edit you make — a connection’s address, a function’s body, a script’s code, which script listens where — goes into one working copy in your browser. Nothing is saved per entity. Activate saves the whole draft as one step.
What that buys you
- A change that touches three entities lands as one version or not at all.
- Every Activate is a numbered version, with history, diff, blame and restore — Going back is the page that walks them. A secret is reported as changed in a diff, never shown.
- The editor knows the draft: a configured function you created a moment ago completes and hovers in a script before anything is activated, and a name that resolves to nothing is marked while you type.
- Test runs the draft — the script’s source, its linked libraries, a function’s definition as it is on screen — so what Test shows is what the activated script will get.
What is not a draft
The on/off switch on a script, a connection, a function, a mail account or a notification rule applies at once, without Activate: a kill switch never waits.
The edit lock
One browser window edits an environment at a time. When you open an environment for editing, your window holds its lock; a second window — yours in another tab, or a colleague’s — sees the environment read-only, with an offer to take the lock over from the badge in the title bar. After a take-over, the first window’s Activate is refused: two authors cannot overwrite each other.
The lock belongs to a window, not to a person. Close the window and the lock expires after a while; take it over from another window when you need it sooner. The command line and an agent over MCP take the lock the same way for the duration of a write and give it back — the loop is what an agent is taught to do with it.
Refusals you will meet
- Activate in production asks first, naming the environment. Sandbox never asks.
- A name a script could not call is refused on the form: a function’s name must be callable, an entity’s name URL-safe.
- A settings script that answers no value is a warning, not a refusal — in the editor, on Activate, and from the command line.
- A rename that leaves other entities naming the old name is a warning on Activate; nothing else could catch it.