IMPORTANT: Developer documentation for the current development branch. This content is unreleased, may change without notice, and must not be treated as Buildish release documentation.
Authored input types
Consumer-owned and component-owned authored contract models.
Back to the reference overview.
Type index
- ArtifactConfig — One independently versioned release unit inside a component.
- ArtifactLifecycleConfig — Lifecycle metadata for an artifact’s stable versions, release lines, and support policy.
- ArtifactVersioningConfig — How the pipeline discovers development, maintenance, tag, and named-ref versions.
- CandidateSelectionPolicy — Rule for which release candidates should become published contexts.
- CatalogDefaults — Shared defaults applied before per-component overrides.
- CompatibilityAssertionConfig — Compatibility statement between two published identities, such as an artifact and a supported platform.
- ComponentCatalogEntry — Component entry in the consumer catalog.
- ComponentContentSelection — Source selection for a component’s shared pages, docs, and assets.
- ComponentIdentity — Stable identity for a component repository.
- ComponentLifecycleHints — Optional lifecycle defaults shared across all artifacts in a component repository.
- ComponentMetadataDocumentV1 — Canonical component metadata that defines stable identity, repository content roots, and optional lifecycle defaults shared across a component repository.
- ContentRoots — Repository-relative locations of authored component content.
- ExactReleaseConfig — Per-version lifecycle metadata and publication overrides for one exact release.
- GroupConfig — Reusable defaults and grouping hints shared by several components.
- LineHeadSelectionPolicy — Rule for which release-line head refs should appear as publishable contexts.
- LinkCheckConfig — Site-wide policy for internal page-link validation during
check. - LocalizationConfig — Locale and translation defaults.
- MountConfig — Mounted subtree, such as generated API docs or imported assets, published below one public path.
- NamedRefConfig — Named source-control ref intentionally exposed as a stable version context.
- OriginConfig — Named public base URL that published routes can resolve against.
- PublicationConfig — Resolved-or-authored route layout choices for a component or artifact.
- PublicationSelectionPolicy — Planning-time rule set for which version contexts are staged and linked.
- RedirectRuleConfig — Redirect rule that sends one published path to another internal or external target.
- ReleaseLineConfig — One logical release line, such as
4.0, together with its lifecycle metadata. - ReleaseSelectionPolicy — Rule for which exact released versions should become published contexts.
- RouteAliasConfig — Additional public route that resolves to the same published destination.
- SiteCatalogDocumentV1 — Canonical site catalog that lists participating components, shared defaults, source bindings, publication origins, and publication policy for one site.
- SiteContentConfig — Top-level pages and asset trees that belong to the site as a whole.
- SourceConfig — Named repository or checkout binding reused by components and artifacts.
- SupportStatusDefinition — One reusable support-status label, description, and default lifecycle behavior.
- SupportWindow — Lifecycle dates and support notes for one release line or exact release.
- ValidationConfig — Optional site-wide validation policies that affect
checkbehavior.
ArtifactConfig
One independently versioned release unit inside a component.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
key |
ArtifactKey | yes | Stable artifact identifier used in typed references, staged metadata, and provider records. |
displayName |
NonEmptyString | no | Human-readable artifact label shown to readers when the raw key is not ideal UI text. |
source |
SourceKey | yes | Named source entry that owns the versioned docs and assets for this artifact. |
docsRoot |
RepoRelativePath | no | Artifact-specific docs root that overrides any inherited docs location when versioned docs live in a custom subdirectory. |
assetsRoot |
RepoRelativePath | no | Artifact-specific asset root that overrides inherited component asset locations for this artifact’s versioned output. |
versioning |
ArtifactVersioningConfig | yes | Rules for discovering development refs, maintenance refs, tags, and named refs for this artifact. |
publicationSelection |
PublicationSelectionPolicy | no | Artifact-specific override for which version contexts should be staged and published. |
lifecycle |
ArtifactLifecycleConfig | no | Lifecycle metadata for stable versions, release lines, and support policy for this artifact. |
compatibility |
list[CompatibilityAssertionConfig] | no | Compatibility statements that should be emitted for this artifact in staged metadata. |
mounts |
list[MountConfig] | no | Mounted generated or imported subtrees that belong to this artifact’s published surface. |
Selected field examples
key: Example:"runtime"displayName: Example:"Runtime"source: Example:"apache-spark"docsRoot: Example:"docs/runtime"assetsRoot: Example:"docs/runtime/assets"
ArtifactLifecycleConfig
Lifecycle metadata for an artifact’s stable versions, release lines, and support policy.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
latestStable |
VersionString | no | Most recent stable version that readers should treat as the default recommendation for this artifact. |
releaseLines |
list[ReleaseLineConfig] | no | Release-line definitions for this artifact, including latest versions and optional support metadata. |
releases |
list[ExactReleaseConfig] | no | Per-version lifecycle metadata and publication overrides for exact released versions. |
supportStatusVocabulary |
dict[Identifier, SupportStatusDefinition] | no | Reusable support-status definitions that release lines and exact releases can refer to by key. |
supportPolicyUrl |
UrlString | no | Canonical URL for the support policy document that readers should consult for this artifact. |
defaultSupportWindow |
SupportWindow | no | Fallback lifecycle window applied when a line or exact release does not provide a more specific support window. |
Selected field examples
latestStable: Example:"4.0.1"
ArtifactVersioningConfig
How the pipeline discovers development, maintenance, tag, and named-ref versions.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
developmentRef |
RefString | yes | Source-control ref that represents the moving development docs for this artifact. |
maintenanceRefPattern |
NonEmptyString | no | Pattern used to derive maintenance branch refs from a release-line key, usually with {line} as the substitution placeholder. |
tagPattern |
RegexString | yes | Regular expression used to recognize provider tags that belong to this artifact’s version stream. |
namedRefs |
list[NamedRefConfig] | no | Additional intentionally named version contexts, such as preview or stable branches, that should be selectable by key. |
Selected field examples
developmentRef: Example:"main"maintenanceRefPattern: Example:"release/{line}"tagPattern: Example:"^v[0-9]+\\.[0-9]+\\.[0-9]+$"
CandidateSelectionPolicy
Rule for which release candidates should become published contexts.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
mode |
CandidateSelectionMode | yes | Selection strategy for candidate releases, such as disabling them or selecting an explicit set. |
versions |
list[VersionString] | no | Candidate version strings to include when mode is explicit and provider versions are available. |
externalIds |
list[NonEmptyString] | no | Provider-specific candidate identifiers to include when version strings alone are not enough to identify the desired candidate records. |
Selected field examples
versions: Example:["4.1.0-rc1"]externalIds: Example:["github:runtime-4.1.0-rc1"]
CatalogDefaults
Shared defaults applied before per-component overrides.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
metadataFile |
RepoRelativePath | no | Default location of site/component.yaml within each source tree. |
pagesRoot |
RepoRelativePath | no | Default repository-relative root for non-versioned component pages. |
docsRoot |
RepoRelativePath | no | Default repository-relative root for component docs content. |
assetsRoot |
RepoRelativePath | no | Default repository-relative root for component static assets. |
publication |
PublicationDefaults | no | Shared publication defaults inherited by components unless they override them. |
localization |
LocalizationConfig | no | Shared localization defaults inherited by components unless they override them. |
CompatibilityAssertionConfig
Compatibility statement between two published identities, such as an artifact and a supported platform.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
subjectRef |
ReferenceString | yes | Typed internal reference string for the thing whose compatibility is being described. |
targetRef |
ReferenceString | yes | Typed internal reference string for the thing that the subject is compatible with or constrained by. |
relation |
NonEmptyString | yes | Relationship label that names the compatibility statement, such as testedWith, requires, or incompatibleWith. |
scope |
NonEmptyString | no | Optional scope label that narrows the compatibility statement to one subsystem, API surface, or deployment mode. |
confidence |
NonEmptyString | no | Optional confidence label that tells readers how strong or direct the supporting evidence is. |
notes |
NonEmptyString | no | Additional human-readable explanation, caveats, or migration advice for the compatibility statement. |
Selected field examples
subjectRef: Example:"artifact:spark/runtime"targetRef: Example:"artifact:spark/operator"relation: Example:"testedWith"scope: Example:"kubernetes"confidence: Example:"verified"
ComponentCatalogEntry
Component entry in the consumer catalog.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
slug |
Slug | yes | Stable component identifier. |
displayName |
NonEmptyString | no | Human-readable component name override or convenience value. |
localDir |
RepoRelativePath | no | Simple shorthand for binding the component to one workspace-local checkout directory. |
weight |
int | no | Optional ordering hint for component listings, menus, and other consumer-rendered component collections. |
group |
Identifier | no | Optional group key for inherited defaults and renderer grouping. |
content |
ComponentContentSelection | no | Shared content-source selection for component pages, docs, and assets. |
publication |
PublicationConfig | no | Explicit publication configuration for this component. |
publicationSelection |
PublicationSelectionPolicy | no | Default version-context selection policy inherited by contained artifacts unless they override it. |
localization |
LocalizationConfig | no | Component-specific localization overrides. |
compatibility |
list[CompatibilityAssertionConfig] | no | Component-level compatibility assertions emitted into staged metadata. |
mounts |
list[MountConfig] | no | Component-level generated or imported documentation mounts. |
artifacts |
list[ArtifactConfig] | no | Independently versioned artifacts belonging to this component. |
ComponentContentSelection
Source selection for a component’s shared pages, docs, and assets.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
source |
SourceKey | no | Named source that owns shared component pages, docs, and assets roots. |
ComponentIdentity
Stable identity for a component repository.
- category:
authored - ownership:
component-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
slug |
Slug | yes | Stable component identifier used by consumer catalogs and staged metadata. |
displayName |
NonEmptyString | no | Human-readable component name shown in rendered navigation and listings. |
ComponentLifecycleHints
Optional lifecycle defaults shared across all artifacts in a component repository.
- category:
authored - ownership:
component-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
latestStable |
VersionString | no | Latest stable version for the component when one overall release line is enough. |
supportStatusVocabulary |
dict[Identifier, SupportStatusDefinition] | no | Optional support-status vocabulary shared by artifacts in this repository. |
ComponentMetadataDocumentV1
Canonical component metadata that defines stable identity, repository content roots, and optional lifecycle defaults shared across a component repository.
- category:
authored - ownership:
component-owned - file contract:
site/component.yaml
| Field | Type | Required | Description |
|---|---|---|---|
schemaVersion |
Literal[1] | yes | Schema version for the component metadata file. |
component |
ComponentIdentity | yes | Stable identity for the component repository. |
content |
ContentRoots | no | Repository-relative authored content roots owned by this component. |
lifecycle |
ComponentLifecycleHints | no | Optional high-level lifecycle hints shared across the component repository. |
Content roots
Use pagesRoot for unversioned component pages and docsRoot for versioned or development docs content.
Example: Component metadata with identity, content roots, and lifecycle hints.
1schemaVersion: 1
2component:
3 slug: spark
4 displayName: Apache Spark
5content:
6 pagesRoot: site/pages
7 docsRoot: docs
8lifecycle:
9 latestStable: 4.0.0
10 supportStatusVocabulary:
11 active:
12 displayName: Active
13 order: 10
ContentRoots
Repository-relative locations of authored component content.
- category:
authored - ownership:
component-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
pagesRoot |
RepoRelativePath | no | Repository-relative root for non-versioned component-owned pages. |
docsRoot |
RepoRelativePath | no | Repository-relative root for versioned or development docs content. |
assetsRoot |
RepoRelativePath | no | Repository-relative root for component-owned static assets. |
ExactReleaseConfig
Per-version lifecycle metadata and publication overrides for one exact release.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
version |
VersionString | yes | Exact released version that this metadata entry applies to. |
releaseLine |
NonEmptyString | no | Release-line key that this version belongs to when the provider data alone does not already make that relationship obvious. |
supportStatus |
NonEmptyString | no | Support-status key or label that should override the line-level status for this exact version. |
supportWindow |
SupportWindow | no | Lifecycle dates and support notes that apply only to this exact release. |
publicationState |
PublicationState | no | Publication-state override for this version, such as published, withdrawn, or tombstoned. |
withdrawalBehavior |
WithdrawalBehavior | no | What readers should experience when this release has been withdrawn, for example a redirect or a hard removal. |
redirectTarget |
ReferenceString | UrlString | no | Replacement route or external URL to send readers to when withdrawalBehavior is redirect. |
reason |
NonEmptyString | no | Human-readable explanation of the withdrawal, redirect, or support-state override for this release. |
Selected field examples
version: Example:"4.0.0"releaseLine: Example:"4.0"supportStatus: Example:"withdrawn"redirectTarget: Example:"route:/spark/releases/4.0.1/"reason: Example:"Superseded by 4.0.1."
GroupConfig
Reusable defaults and grouping hints shared by several components.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
displayName |
NonEmptyString | no | Human-readable group name for renderers or generated navigation. |
pathPrefix |
PublicPath | no | Shared public path prefix applied to grouped component publication roots. |
navigationSection |
NonEmptyString | no | Optional renderer-facing grouping label for navigation or listings. |
weight |
int | no | Optional ordering hint shared by components in this group. |
publication |
PublicationConfig | no | Publication defaults inherited by grouped components unless they override them. |
LineHeadSelectionPolicy
Rule for which release-line head refs should appear as publishable contexts.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
mode |
LineHeadSelectionMode | yes | Selection strategy for release-line head contexts, such as taking all lines or only an explicit subset. |
keys |
list[NonEmptyString] | no | Explicit release-line keys to publish when mode is explicit. |
Selected field examples
keys: Example:["3.5","4.0"]
LinkCheckConfig
Site-wide policy for internal page-link validation during check.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
enabled |
bool | no | Whether the pipeline should validate authored internal page links against resolved public routes. |
mode |
LinkCheckMode | no | How authored relative page links should resolve in the published site. |
checkRootAbsolute |
bool | no | Whether root-absolute links such as /components/foo/ should also be validated when they match declared internal prefixes. |
internalPrefixes |
list[PublicPath] | no | Root-absolute public-path prefixes that should be treated as internal links when root-absolute checking is enabled. |
Selected field examples
internalPrefixes: Example:["/components/","/docs/"]
LocalizationConfig
Locale and translation defaults.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
defaultLocale |
NonEmptyString | no | Default locale used when a page does not declare a more specific locale. |
supportedLocales |
list[NonEmptyString] | no | Supported locale keys for this site or component. |
routeMode |
RouteMode | no | How localized pages should be routed within the published URL space. |
fallbackLocale |
NonEmptyString | no | Fallback locale used when a requested translation is unavailable. |
MountConfig
Mounted subtree, such as generated API docs or imported assets, published below one public path.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
source |
MountSourceRef | yes | Typed source reference that identifies the generated or imported subtree to mount. |
mountPath |
PublicPath | yes | Public path where the mounted subtree should appear in the published site. |
kind |
NonEmptyString | yes | Short kind label that tells renderers and tooling what sort of mounted content this is. |
trustClass |
TrustClass | yes | Trust level for the mounted content, used by downstream tooling to decide how much confidence to place in its structure or metadata. |
versionScope |
NonEmptyString | no | Optional label describing which version context this mount belongs to, when the same component can expose several mounted trees. |
indexBehavior |
IndexBehavior | no | How the mounted subtree should participate in generated indexes, listings, or navigation structures. |
ownership |
NonEmptyString | no | Logical owner label used in staged metadata to explain who is responsible for this mounted subtree. |
metadata |
ExtensionsObject | no | Small JSON-like extension object for extra mount metadata that downstream tooling may consume. |
Selected field examples
source: Example:"generated/api"mountPath: Example:"/spark/api/"kind: Example:"generatedApi"versionScope: Example:"release"ownership: Example:"runtime-docs"
NamedRefConfig
Named source-control ref intentionally exposed as a stable version context.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
key |
Identifier | yes | Stable identifier used elsewhere in the catalog to select this named ref. |
ref |
RefString | yes | Exact source-control ref to resolve when this named context is selected. |
displayName |
NonEmptyString | no | Human-readable label shown in version pickers, breadcrumbs, or other rendered UI. |
maturity |
NonEmptyString | no | Short maturity label that explains how stable or experimental this named ref should be treated. |
description |
NonEmptyString | no | Human-readable explanation of what this named ref contains or who should use it. |
Selected field examples
key: Example:"preview"ref: Example:"refs/heads/preview"displayName: Example:"Preview"maturity: Example:"preview"description: Example:"Early access docs for the next planned minor release."
OriginConfig
Named public base URL that published routes can resolve against.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
baseUrl |
UrlString | yes | Base public URL for this publication origin. |
canonical |
bool | no | Whether this origin should be treated as canonical when multiple origins publish the same target. |
labels |
list[NonEmptyString] | no | Optional human-readable labels for renderer or deployment tooling. |
PublicationConfig
Resolved-or-authored route layout choices for a component or artifact.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
origin |
OriginKey | no | Publication origin key to use for this component or artifact. |
pathSegment |
NonEmptyString | no | Path segment appended below an inherited path prefix or mount root. |
mountPath |
PublicPath | no | Explicit public root path for the component’s published content. |
componentPath |
PublicPath | no | Explicit public path for the component landing page or overview root. |
developmentPath |
PublicPath | no | Explicit public path for the moving development docs surface. |
docsPath |
PublicPath | no | Explicit public docs landing path exposed to downstream consumers; defaults to the development path unless an additional docs segment or override is configured. |
assetsPath |
PublicPath | no | Explicit public path for static assets below the component root. |
canonicalPath |
PublicPath | no | Optional canonical public path used when aliases or multiple origins are present. |
aliases |
list[RouteAliasConfig] | no | Additional public aliases that should resolve to the same published target. |
redirects |
list[RedirectRuleConfig] | no | Redirect rules to emit for legacy or moved routes. |
Selected field examples
mountPath: Example:"/spark/"
PublicationSelectionPolicy
Planning-time rule set for which version contexts are staged and linked.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
development |
bool | no | Whether to publish the moving development context represented by the artifact’s developmentRef. |
lineHeads |
LineHeadSelectionPolicy | no | Rule for including release-line head contexts such as 4.0 or 3.5. |
releases |
ReleaseSelectionPolicy | no | Rule for including exact released-version contexts such as 4.0.1. |
namedRefs |
list[Identifier] | no | Named ref keys to include as publishable contexts in addition to development, line-head, or released versions. |
candidates |
CandidateSelectionPolicy | no | Rule for including release-candidate contexts when they should be visible to readers. |
Selected field examples
namedRefs: Example:["preview","stable"]
RedirectRuleConfig
Redirect rule that sends one published path to another internal or external target.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
fromPath |
PublicPath | yes | Public path that should redirect instead of serving its own content. |
fromOrigin |
OriginKey | no | Optional origin override when the redirect should only exist on one named publication origin. |
target |
ReferenceString | UrlString | yes | Destination of the redirect, either as a typed internal reference string or as a fully qualified external URL. |
status |
int | no | HTTP redirect status to emit; when omitted, downstream tooling applies its default redirect status. |
reason |
NonEmptyString | no | Short explanation of why the redirect exists, for example to describe a rename, consolidation, or withdrawn release route. |
Selected field examples
fromPath: Example:"/spark/docs/current/"fromOrigin: Example:"archive"target: Example:"route:/spark/development/"status: Example:308reason: Example:"Development docs moved to the new route."
ReleaseLineConfig
One logical release line, such as 4.0, together with its lifecycle metadata.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
key |
NonEmptyString | yes | Stable key for the release line, typically matching the family label used in URLs and navigation. |
displayName |
NonEmptyString | no | Human-readable label shown to readers when the raw line key is not ideal UI text. |
parent |
NonEmptyString | no | Optional parent release-line key used to model lineage such as 4.x inheriting from 3.x policy or navigation structure. |
latest |
VersionString | yes | Latest released version currently considered the head of this release line. |
supportStatus |
NonEmptyString | no | Support-status key or label that should be shown for the line as a whole. |
aliases |
list[NonEmptyString] | no | Alternate labels that should also resolve to this release line in generated metadata or UI. |
maintenanceRef |
RefString | no | Explicit maintenance branch ref for the line when it should not be derived from maintenanceRefPattern. |
supportWindow |
SupportWindow | no | Lifecycle dates and support notes that apply to the release line. |
Selected field examples
key: Example:"4.0"displayName: Example:"4.0 line"parent: Example:"3.5"latest: Example:"4.0.1"supportStatus: Example:"supported"aliases: Example:["stable"]maintenanceRef: Example:"refs/heads/release-4.0"
ReleaseSelectionPolicy
Rule for which exact released versions should become published contexts.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
mode |
ReleaseSelectionMode | yes | Selection strategy for released versions, for example the latest n releases or one explicit version list. |
count |
PositiveInteger | no | How many most-recent releases to include when mode is latestN. |
versions |
list[VersionString] | no | Exact released versions to include when mode is explicit. |
Selected field examples
count: Example:3versions: Example:["4.0.0","4.0.1"]
RouteAliasConfig
Additional public route that resolves to the same published destination.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
path |
PublicPath | yes | Alternate public path that should resolve to the same page family or landing target as the primary route. |
origin |
OriginKey | no | Optional origin override when the alias should only exist on one named publication origin. |
label |
NonEmptyString | no | Human-readable label that renderers can use when presenting this alias in navigation or metadata. |
Selected field examples
path: Example:"/spark/stable/"origin: Example:"archive"label: Example:"stable"
SiteCatalogDocumentV1
Canonical site catalog that lists participating components, shared defaults, source bindings, publication origins, and publication policy for one site.
- category:
authored - ownership:
consumer-owned - file contract:
site/catalog.yaml
| Field | Type | Required | Description |
|---|---|---|---|
schemaVersion |
Literal[1] | yes | Schema version for the catalog format. |
defaults |
CatalogDefaults | no | Shared default settings applied before per-component overrides. |
site |
SiteContentConfig | no | Consumer-owned top-level site pages, assets, and vendor-asset declarations. |
origins |
dict[OriginKey, OriginConfig] | no | Named publication origins that components can target. |
sources |
dict[SourceKey, SourceConfig] | no | Named repository or checkout bindings used by components and artifacts. |
groups |
dict[Identifier, GroupConfig] | no | Optional grouping defaults shared by multiple components. |
validation |
ValidationConfig | no | Optional site-wide validation policies that extend the default check behavior. |
components |
list[ComponentCatalogEntry] | yes | Participating components in this consumer-authored catalog. |
Inheritance
Defaults flow from defaults to groups to individual component entries. See component entries.
Example: Catalog with a single component, a single artifact, and release selection policy.
1schemaVersion: 1
2defaults:
3 docsRoot: docs
4 publication:
5 origin: docs
6site: {}
7origins:
8 docs:
9 baseUrl: https://docs.example.org
10sources:
11 runtime:
12 localDir: components/runtime
13components:
14- slug: spark
15 weight: 100
16 content:
17 source: runtime
18 publication:
19 mountPath: /spark/
20 artifacts:
21 - key: runtime
22 source: runtime
23 versioning:
24 developmentRef: main
25 tagPattern: ^v.*$
26 publicationSelection:
27 development: true
28 lineHeads:
29 mode: allAuthored
30 releases:
31 mode: latestPerLine
32 lifecycle:
33 releaseLines:
34 - key: '4.0'
35 latest: 4.0.0
36 maintenanceRef: maintenance/4.0
37 releases:
38 - version: 4.0.0
SiteContentConfig
Top-level pages and asset trees that belong to the site as a whole.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
pagesRoot |
RepoRelativePath | no | Repository-relative root for consumer-owned top-level site pages. |
assetsRoot |
RepoRelativePath | no | Repository-relative root for consumer-owned top-level static assets. |
vendorAssets |
list[TopLevelAssetConfig] | no | Additional imported asset trees mounted into the top-level site assets area. |
SourceConfig
Named repository or checkout binding reused by components and artifacts.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
localDir |
RepoRelativePath | yes | Workspace-relative checkout or source directory. |
repository |
UrlString | no | Optional remote repository URL whose repository root corresponds to this source root. |
defaultBranch |
RefString | no | Optional default branch or ref for this source. |
metadataFile |
RepoRelativePath | no | Optional override for the component metadata file inside this source tree. |
SupportStatusDefinition
One reusable support-status label, description, and default lifecycle behavior.
- category:
authored - ownership:
component-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
displayName |
NonEmptyString | yes | Human-readable status label shown to readers, such as Supported or Security fixes only. |
order |
int | no | Optional sort order used when several support statuses should appear in a stable display order. |
description |
NonEmptyString | no | Human-readable explanation of what this support status means in practice. |
defaultMaintenancePhase |
NonEmptyString | no | Default maintenance-phase label to apply when a release uses this support status and does not provide a more specific phase. |
Selected field examples
displayName: Example:"Supported"order: Example:10description: Example:"Receives regular fixes and new patch releases."defaultMaintenancePhase: Example:"active"
SupportWindow
Lifecycle dates and support notes for one release line or exact release.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
releaseDate |
TimestampString | no | Release date for the line or version that this support window describes. |
maintenancePhase |
NonEmptyString | no | Short label for the current maintenance phase, such as general availability, maintenance, or security-only support. |
endOfActiveSupportDate |
TimestampString | no | Date after which the release no longer receives full active support. |
endOfSupportDate |
TimestampString | no | Date after which the release is no longer supported in normal maintenance channels. |
endOfLifeDate |
TimestampString | no | Final retirement date after which the release should be treated as fully end-of-life. |
supportPolicyUrl |
UrlString | no | Canonical URL that explains the support policy referenced by this support window. |
notes |
NonEmptyString | no | Additional notes that clarify exceptions, migration advice, or support caveats. |
Selected field examples
releaseDate: Example:"2026-04-01T00:00:00Z"maintenancePhase: Example:"security-fixes"
ValidationConfig
Optional site-wide validation policies that affect check behavior.
- category:
authored - ownership:
consumer-owned - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
linkChecks |
LinkCheckConfig | no | Optional internal page-link checking policy resolved against staged public routes. |