Skip to main content

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).

PropertyTypeDescription
apiVersionstringAPI schema version. Pins the manifest to a specific schema contract for backward-compatibility. Must be the constant lowops.manifests.v1.
kindstringResource 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.
metadatamapClassification 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.
specSpecDesired static-site configuration. The authoritative, user-authored specification for this static-site deployment. See Spec.

FilesEntry​

PropertyTypeDescription
keystring
valueVolumeMountFile

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.

PropertyTypeDescription
versionstringLive 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.
fileslist of FilesEntryPer-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.
descriptionstringHuman-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​

PropertyTypeDescription
keystring
valueVolumeMountFile

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.

PropertyTypeDescription
mimeTypestringMIME 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.
contentstringFile contents. The literal payload written to the file at the mount path. Interpreted as base64 when base64_encoded is set, otherwise as plain text.
base64EncodedboolContent is base64-encoded. When true, content is decoded from base64 before being written, allowing binary files. Carried into the computed volume-mount file entry.