Resources · Running it day to day
Running it day to day
The launch is one afternoon. The same contract runs the year after it.
Resources · Running it day to day
The launch is one afternoon. The same contract runs the year after it.
Shipping an update is the same governed operation as shipping the first version: upload_assets returns a fresh bundleId (root index.html required, static content types, bounded file count and size), and launch_service with that bundle carries the deploy through the same durable task machinery. There is no side door for "just a small change".
DNS is typed, not templated: upsert_dns_record validates the record, applies it, and writes the ledger entry; list_dns_records reads current state; export_dns_zone returns a BIND-format zone file whenever you want the whole picture in a standard format.
Free operations still leave receipts. A $0 redeploy or record change consumes no budget and needs no approval, but it lands in the append-only ledger like every other mutation — day-2 work is auditable by default.
An agent can send from an address at your domain with send_email — and because a sent email cannot be unsent, the operation treats it with the same seriousness as spending money:
Acceptance is not delivery. A provider accepting the message is not proof the recipient received or read it, and outbound mail is plain text. The result deliberately omits the provider message id and every address and body value.
Reading the inbox works through email_snapshot_read: the agent resolves an already-captured, server-issued snapshot with a bounded cursor. It never holds a live credential into the mailbox, so revoking the agent's key never requires rotating your mail access.
Inboxes themselves are managed with create_inbox, and addresses attach and detach with attach_address / detach_address — each one a ledgered operation with its own receipt.
Day-2 work includes changing your mind. move_service relocates a service between projects; remove_service stops a service and its billing; teardown unwinds what a project created, computed from the ledger rather than from a hand-maintained script.
Watching is an operation too: get_audit_log reads the trail, get_status reports current state, and when the budget itself is the constraint, request_budget_increase raises it — through a human gate, because expanding spend authority is exactly the kind of thing an agent must not grant itself.
Related: exit paths, human approval gates.
How an agent reaches SproutPad, what a scoped key can do, and why every entrance returns the same envelope.
Why the money is held before it is spent, what an estimate is not, and how headroom is actually computed.
What gets gated, who can decide it, what the approval page must show, and what happens if nobody answers.