Skip to main content

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:

StatusMeaning
runningAll requested instances are up
partialSome instances are up, others are not
crashedThe app is meant to be running and no instance is up
stoppedYou stopped it
not_deployedNothing 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.