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
miserunresource:schema:generate
miserunresource: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).
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).
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).
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.
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.
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.