BuildType is how a git app builds: pack, the zero-config default that detects the project, or dockerfile. An image app carries image, which means it never builds.
CurrentDeploymentID is the deployment that is live — the pointer a deploy advances monotonically by version, so it never regresses to an older one. Empty until the first deploy reaches the cluster.
Dockerfile is the path inside the repo to build from, for buildType dockerfile. The build path keys off its presence, and it is validated at create against the same allowlist the privileged build enforces.
Domains are the ingress hosts rendered into the app's CR, its own <slug>.<org>.<sites host> first. That one is seeded at create and cannot be removed; a custom host joins only after add-domain and DNS verification.
Env is the app's environment variables, with every SECRET value masked to "" — the plaintext is in KMS and this surface never echoes it. That masking is why an empty secret value means "keep what is sealed" when posted back.
Environment is the deploy target this app names, production when none was given. It is a LABEL: /v1/platform/environments derives the environment list from the apps that name one, so an environment exists as long as an app points at it and no route creates or deletes one.
Health rolls ready-vs-desired replicas up to a colour: green (all ready), yellow (some ready, or deliberately scaled to zero), red (none), or "" when the cluster reports no replica counts at all — unknown, never a guessed green.
Image is the image a source image app runs. For a git app only the tag is filled, stamped by the deploy that went live; the built ref is on the deployment.
Phase is the operator's own status.phase for the app's Service CR, read from the cluster on this request. Empty when there is no CR yet or the cluster could not be read.
ProjectID is the IAM project the app lives under, and it is that project's NAME — the (org,name) key IAM identifies it by, which is also what the :project path segment carries. There is no platform-minted project id.
SecretSync is how far the app's secret env has got into the cluster: ""|pending|syncing|ready|failed (secrets.go). It is best-effort and never fails a deploy, so pending is ordinary right after one.
Status is the lifecycle THIS store records: draft (created, nothing in the cluster yet), building, deploying, live, stopped or error. What the cluster itself says is Phase and Health.