Site Config
SiteConfig
Defines the per-environment deployment of a static site (CDN target).
The static-site counterpart of DeploymentConfig. A target: CDN Application serves an immutable, content-hashed bundle from a public bucket fronted by the load balancer + Cloud CDN, so there is no compute container to tune — no env/ports/scaling/health. Instead this manifest carries only what genuinely differs per environment: which published bundle version is live, and an open set of files injected into the served bucket at deploy time (e.g. a runtime config.json/config.js). The same bundle bytes are promoted staging→prod unchanged; only the injected files differ. Resolved by the site-config computer into a ComputedStaticArtifact plus the file set, and applied by the site-config executor (public bucket + cdn-deployer job).
| Property | Type | Description |
|---|---|---|
| apiVersion | string | API schema version. Pins the manifest to a specific schema contract for backward-compatibility. Must be the constant lowops.manifests.v1. |
| kind | string | Resource kind discriminator. Identifies this document as a SiteConfig so the engine routes it to the correct defaulter, validator, computer, and executor. Must be the constant SiteConfig. |
| metadata | map | Classification labels and graph linkage. Free-form key/value pairs used to classify the manifest. Reserved keys (name, project, environment, organizational-unit, organization) are read by the engine to resolve this manifest's identity and its parent Project in the dependency graph. name must match the target: CDN Application it deploys. |
| spec | Spec | Desired static-site configuration. The authoritative, user-authored specification for this static-site deployment. See Spec. |
FilesEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | VolumeMountFile |
Spec
User-provided per-environment static-site configuration.
The only environment-specific inputs for a static site: the live bundle version and an open files map for per-environment files to inject into the served bucket. No compute knobs (env/ports/scaling/health) exist here — a static site has no running container to tune.
| Property | Type | Description |
|---|---|---|
| version | string | Live bundle version. Required. The published generic-package version served in this environment (e.g. v1.4.2). Paired with the build's static bundle by the computer; the version-aware cdn-deployer job only re-exports the bucket when this differs from the bucket's recorded version marker (latest-wins). The same version is promoted staging→prod as identical bytes. |
| files | list of FilesEntry | Per-environment files injected into the served bucket. The single mechanism for per-environment overrides: a map of destination path within the served bucket (e.g. config.json, config.js, robots.txt, .well-known/apple-app-site-association) to its verbatim contents. The engine makes NO assumption about format or filename — authors inject exactly what their runtime reads. These are written at deploy time and, being injected rather than baked, keep the hashed bundle byte-identical across environments. They are the OVERRIDE layer: the cdn-deployer job skips any bundle path also declared here, so an injected config.js always wins over one shipped in the bundle. Paths must be relative (never /-prefixed), free of .., and outside the engine-internal __infrastream/ prefix. See VolumeMountFile. |
| description | string | Human-readable description of this deployment. Optional free text describing the role of this static-site config. Used as context by AI assistants when reasoning about the manifest. |
FilesEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | VolumeMountFile |
VolumeMountFile
Defines a synthesized file content within a volume mount.
Handled by startup scripts to create physical files on disk with the necessary text or binary payloads.
| Property | Type | Description |
|---|---|---|
| mimeType | string | MIME type of the file. Content type recorded for the synthesized file; defaulted by the deployment config computer when left empty. Carried into the computed volume-mount file entry. |
| content | string | File contents. The literal payload written to the file at the mount path. Interpreted as base64 when base64_encoded is set, otherwise as plain text. |
| base64Encoded | bool | Content is base64-encoded. When true, content is decoded from base64 before being written, allowing binary files. Carried into the computed volume-mount file entry. |