bay init writes a draft from the
repository, and a repo with no config at all still ships — detection runs
instead. The file exists for everything detection cannot prove.
The filename is still
supersonic.json, not bay.json. It is read by the
control plane, not typed by a person, and renaming it would break every config
already committed for no gain.The three top-level keys
number
The config format.
1 today.object
What is provisioned once per app — a database, a bucket. Two services share
one database. See Resources.
Validate before you ship
The lock file
A ship writessupersonic.lock.json next to your config: what that ship
decided — the runtime it picked, the base image, the commands it resolved. It is
there so a decision made on your behalf is one you can read and change, rather
than one you have to reverse-engineer from a build log.