pub struct AppView {Show 26 fields
pub build_type: Option<String>,
pub created_at: Option<i32>,
pub current_deployment_id: Option<String>,
pub description: Option<String>,
pub dockerfile: Option<String>,
pub domains: Option<Vec<String>>,
pub env: Option<Vec<EnvVarJson>>,
pub environment: Option<String>,
pub health: Option<String>,
pub id: Option<String>,
pub image: Option<Box<ImageView>>,
pub name: Option<String>,
pub namespace: Option<String>,
pub org: Option<String>,
pub phase: Option<String>,
pub port: Option<i32>,
pub project_id: Option<String>,
pub replicas: Option<i32>,
pub repo: Option<Box<GitSource>>,
pub secret_sync: Option<String>,
pub secret_sync_detail: Option<String>,
pub slug: Option<String>,
pub source: Option<String>,
pub status: Option<String>,
pub storage_gb: Option<i32>,
pub updated_at: Option<i32>,
}Fields§
§build_type: Option<String>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.
created_at: Option<i32>CreatedAt is when the app was created, unix seconds.
current_deployment_id: Option<String>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.
description: Option<String>Description is free text about what the app is. Nothing derives from it.
dockerfile: Option<String>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: Option<Vec<String>>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: Option<Vec<EnvVarJson>>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: Option<String>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: Option<String>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.
id: Option<String>ID is the server-minted application id (app_…). Routes address an app by project and slug; this is the key its deployments and builds carry.
image: Option<Box<ImageView>>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.
name: Option<String>Name is the display name. It is not an address — the slug is.
namespace: Option<String>Namespace is where the app’s cluster objects live, tenant-<org>. It is derived from the validated org and is never accepted from a request.
org: Option<String>Org is the tenant that owns the app. It comes from the validated identity, never from the request, and it is the boundary every route is scoped to.
phase: Option<String>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.
port: Option<i32>Port is the container port traffic is sent to. 8080 when the create asked for none, or for one outside 1–65535.
project_id: Option<String>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.
replicas: Option<i32>Replicas is how many copies the CR declares. It is CLAMPED to the deployment’s ceiling rather than refused, so it can be below what was asked.
repo: Option<Box<GitSource>>Repo is the git origin a source git app builds from, and the repo+branch a landed push has to match to build it.
secret_sync: Option<String>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.
secret_sync_detail: Option<String>SecretSyncDetail is the honest reason when the sync is not ready — a missing CRD, an RBAC grant, a per-tenant credential. Empty when it is.
slug: Option<String>Slug is the app’s identity in the cluster: the operator CR’s name, the first label of its default host, and the :app path segment. Unique per project.
source: Option<String>Source is what the app deploys FROM: git, which builds Repo, or image, which runs Image as it is. It decides whether a deploy builds at all.
status: Option<String>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.
storage_gb: Option<i32>StorageGB is the persistent volume size in GiB. Absent means stateless — no volume at all — and it is clamped like Replicas.
updated_at: Option<i32>UpdatedAt is when it last changed, unix seconds. Every lifecycle transition moves it, so it tracks deploys as well as edits.