The ask
A service role, say provision, that a signup app (a "home" or "hub") can hold on the open internet. It can:
POST /api/cli/apps/{account}/{app}/instances, creating a host that does not exist yet;- read back the records it created, if that is needed for the wait loop (a
GET on a host it made).
It cannot list the app's instances, PATCH, DELETE, move, attach domains, write path maps, or read logs. It carries a quota, such as instances per hour and a total, enforced console-side, and a 429 names the quota when it's hit.
Why
The user-models spec (pegamento, branch design-user-models, docs/superpowers/specs/2026-09-27-user-models-design.md) recommends a stateless home or hub that provisions a customer's instance at signup. Pegamento doctrine §9, amended 2026-09-28, allows that only with a credential that can only create, within a quota. Then the worst case of a compromise on the sign-in surface is instances up to the quota, which is cost, not access.
Today the only credential that can create is the instance role, which also deletes, repoints and moves every instance of the app. Tito Go and Rutline hold it anyway, and the published skill now tells authors to keep it on the signup app only and name it as a leak. This request is what lets that caveat go.
Related
- #155 (instance-bound tokens) is the other half: a credential an instance holds about itself. This one is a credential a central app holds about instances it has not made yet.
- The path-map door (
PUT .../domains/{host}/paths) is what a hub also needs. Whether that belongs in the same role, or a second narrow one, is a design question for whoever takes this.