Orgs, spaces, and apps
Three objects carry almost everything you do on Sprintsail.
Organisation
An org is your team or company. It owns spaces, it carries quotas, and it is the boundary for membership — being in an org is what gives someone the ability to see anything inside it.
Your first org is created during onboarding. Most teams need exactly one.
cf orgs
cf target -o acme
Space
A space is an environment inside an org. dev, staging, and prod are the
common shape, but nothing forces that — a space per service or per team works equally
well.
Spaces are where apps and services actually live, and they are the level at which most
permissions are granted. Someone can have full control of dev and read-only access to
prod.
cf create-space staging -o acme
cf spaces
cf target -o acme -s staging
Spaces created in the console appear in cf spaces immediately, and the reverse is also
true. There is no separate console-side record that can drift out of step.
App
An app is your running workload. It has:
- Source or an image — what gets run
- Instances — how many copies are running
- Memory — the limit per instance
- Environment variables — configuration, including bound service credentials
- Deployment history — a record of each push
cf push orders-api
cf apps
cf app orders-api
App status, and why it is worth trusting
Most platforms report a deploy as successful the moment the deployment request is accepted. That is a useful thing to know, but it is not the same as your app working — an app can deploy cleanly and then crash on startup every time.
Sprintsail derives app status from what the instances are actually doing:
| Status | Meaning |
|---|---|
running | All requested instances are up |
partial | Some instances are up, others are not |
crashed | The app is meant to be running and no instance is up |
stopped | You stopped it |
not_deployed | Nothing has been pushed yet |
A push that lands but fails to start reads as crashed, not green. This is the difference between a status you can page on and a status you have to double-check.
Naming
App names are unique within a space, not globally. Two teams can both run an app called
api in their own spaces without collision.