Skip to content
Config Schema

Schema Reference

These schemas are generated from the Rust types in crates/rise-resource-api/ and are byte-identical across runs. They are regenerated and verified in CI via:

Terminal window
mise run resource:schema:generate
mise run resource:schema:check

The raw JSON files live under /operator-docs/schemas/ (linked from each section). Tooling can consume them directly: JSON Schema Draft 2020-12.

The wire envelope for any resource — built-in or external. spec and status are generic (kind-specific shapes are validated by typed validators for built-ins and JSON Schema for external custom resources).

Resource

Download JSON
Field Type Required Description
apiVersion string yes
kind string yes
metadata ResourceMetadata yes
spec object<string, any> no
status object<string, any> no
Nested types (2)

OwnerReference

Field Type Required Description
apiVersion string yes
blockOwnerDeletion boolean no default: false
kind string yes
name string yes
uid string yes

ResourceMetadata

Field Type Required Description
annotations object<string, string> no default: {}
deletionTimestamp string | null no
discriminator string | null no
finalizers array<string> no default: []
name string yes
ownerReferences array<OwnerReference> no
revision integer | null no
uid string | null no

Standard metadata fields common to every resource. The fields uid, revision, discriminator, and deletionTimestamp are server-controlled (rejected on create; only revision is required on update).

ResourceMetadata

Download JSON
Field Type Required Description
annotations object<string, string> no default: {}
deletionTimestamp string | null no
discriminator string | null no
finalizers array<string> no default: []
name string yes
ownerReferences array<OwnerReference> no
revision integer | null no
uid string | null no
Nested types (1)

OwnerReference

Field Type Required Description
apiVersion string yes
blockOwnerDeletion boolean no default: false
kind string yes
name string yes
uid string yes

The shape of status for kinds that surface controller-owned status. Each entry under controllers is keyed by the controller’s identity_id (a Kubernetes-style controller ID, e.g. controller.example.com or controller.example.com/my-controller).

ControllerStatusMap

Download JSON
Field Type Required Description
controllers object<string, any> no

The built-in Organization resource — root-scoped (apiVersion: rise.dev/v1alpha1, kind: Organization). spec.deploymentControllerClass is the controller identifier that owns this org’s deployments; the Kubernetes controller reconciles only orgs whose value matches its configured controller_class_name. The default organization additionally carries an annotation kubernetes.rise.dev/namespace-prefix that the Kubernetes controller uses to build per-project namespace names.

Organization

Download JSON
Field Type Required Description
apiVersion string yes
kind string yes
metadata ResourceMetadata yes
spec OrganizationSpec no
status OrganizationStatus no
Nested types (4)

OrganizationSpec

Field Type Required Description
deploymentControllerClass string | null no
displayName string yes

OrganizationStatus

Field Type Required Description
controllers object<string, any> no

OwnerReference

Field Type Required Description
apiVersion string yes
blockOwnerDeletion boolean no default: false
kind string yes
name string yes
uid string yes

ResourceMetadata

Field Type Required Description
annotations object<string, string> no default: {}
deletionTimestamp string | null no
discriminator string | null no
finalizers array<string> no default: []
name string yes
ownerReferences array<OwnerReference> no
revision integer | null no
uid string | null no

The built-in ResourceDefinition resource that registers custom resource kinds. Identity fields (group, kind, plural, parent) become immutable once instances exist. See Custom Resources for the registration flow and version lifecycle.

ResourceDefinition

Download JSON
Field Type Required Description
apiVersion string yes
kind string yes
metadata ResourceMetadata yes
spec ResourceDefinitionSpec no
status ResourceDefinitionStatus no
Nested types (6)

OwnerReference

Field Type Required Description
apiVersion string yes
blockOwnerDeletion boolean no default: false
kind string yes
name string yes
uid string yes

ResourceDefinitionSpec

Field Type Required Description
allowedStatusControllerIds array<string> no default: []
group string yes
kind string yes
parent ResourceParentRef | null no The resource is root-scoped when this is absent; otherwise it must live under a parent of the referenced API group and kind.
plural string yes
versions array<ResourceDefinitionVersion> yes

ResourceDefinitionStatus

Field Type Required Description
controllers object<string, any> no

ResourceDefinitionVersion

Field Type Required Description
name string yes
schema any no
served boolean yes
storage boolean yes

ResourceMetadata

Field Type Required Description
annotations object<string, string> no default: {}
deletionTimestamp string | null no
discriminator string | null no
finalizers array<string> no default: []
name string yes
ownerReferences array<OwnerReference> no
revision integer | null no
uid string | null no

ResourceParentRef

Field Type Required Description
apiVersion string yes
kind string yes

These are generated by separate commands (backend config-schema, backend rise-toml-schema), not by backend schemas generate. They are kept separate to avoid two code paths for the same artifact.

  • Backend settings schema
  • rise.toml schema: docs/user/public/schemas/rise-toml-v1.schema.json — served by the user docs site at /schemas/rise-toml-v1.schema.json