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.
Provider input types
Normalized provider snapshot contracts consumed by the pipeline.
Normalized provider snapshot contracts consumed by the pipeline.
Back to the reference overview.
Type index
- ProviderAsset — Downloadable asset attached to one provider release or candidate record.
- ProviderDescriptor — Metadata about one provider that contributed records to the snapshot.
- ProviderRecord — Normalized provider fact about one release, candidate, or ref context.
- ProviderSnapshotDocumentV1 — Provider-derived normalized snapshot from
site/provider-snapshot.json.
ProviderAsset
Downloadable asset attached to one provider release or candidate record.
- category:
provider - ownership:
provider-derived - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
name |
NonEmptyString | yes | Filename or display label of the downloadable asset. |
url |
UrlString | yes | Canonical download URL for the asset. |
kind |
NonEmptyString | no | Short asset kind label, for example binary, source, signature, or sbom. |
mediaType |
NonEmptyString | no | Declared media type for the asset payload when the provider exposes it. |
size |
NonNegativeInteger | no | Asset size in bytes when the provider exposes it. |
checksums |
dict[Identifier, NonEmptyString] | no | Checksum values keyed by algorithm name, such as sha512 or sha256. |
signatureUrl |
UrlString | no | URL of the detached signature file, if available. |
sbomUrl |
UrlString | no | URL of the asset’s software bill of materials, if available. |
provenanceUrl |
UrlString | no | URL of provenance or attestation metadata associated with this asset, if available. |
Selected field examples
name: Example:"spark-4.0.0-bin.tgz"url: Example:"https://downloads.example.org/spark-4.0.0-bin.tgz"kind: Example:"binary"mediaType: Example:"application/gzip"size: Example:125004321
ProviderDescriptor
Metadata about one provider that contributed records to the snapshot.
- category:
provider - ownership:
provider-derived - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
key |
ProviderKey | yes | Stable provider identifier referenced by every record emitted from this provider. |
type |
NonEmptyString | yes | Provider implementation type, such as github, git, or another fetcher-specific backend name. |
displayName |
NonEmptyString | no | Human-readable provider label shown in diagnostics or rendered metadata. |
baseUrl |
ProviderBaseUrl | no | Base URL for the provider service when records can link back to a human-browsable origin. |
fetchedAt |
TimestampString | yes | Timestamp when this provider snapshot section was fetched or refreshed. |
Selected field examples
key: Example:"github-releases"type: Example:"github"displayName: Example:"GitHub Releases"baseUrl: Example:"https://github.com/apache"fetchedAt: Example:"2026-04-03T18:00:00Z"
ProviderRecord
Normalized provider fact about one release, candidate, or ref context.
- category:
provider - ownership:
provider-derived - file contract: (inner type)
| Field | Type | Required | Description |
|---|---|---|---|
provider |
ProviderKey | yes | Provider key that identifies which fetched provider emitted this record. |
kind |
RecordKind | yes | Record kind, such as exact release, release candidate, development ref, line head, or named ref. |
componentSlug |
Slug | yes | Component slug that this provider record belongs to. |
artifactKey |
ArtifactKey | yes | Artifact key that this provider record belongs to. |
sourceKey |
SourceKey | no | Optional source binding key when the provider record came from one named catalog source. |
externalId |
NonEmptyString | no | Provider-specific stable identifier used to deduplicate and revisit the same upstream record. |
externalUrl |
UrlString | no | Human-browsable upstream URL for the release, tag, or ref record. |
version |
VersionString | no | Exact version string for release and candidate records when the provider exposes one. |
displayVersion |
NonEmptyString | no | Human-readable version label when the raw version string needs a friendlier presentation. |
tag |
NonEmptyString | no | Exact provider tag associated with this record when tags are available. |
ref |
RefString | no | Exact source-control ref associated with this record, especially for development, line-head, or named-ref contexts. |
commitSha |
NonEmptyString | no | Resolved commit SHA for the record when the provider exposes it. |
namedRefKey |
NonEmptyString | no | Catalog-authored named-ref key that this provider record enriches when the record represents a named ref. |
releaseLine |
NonEmptyString | no | Release-line key that groups this record with related versions such as 4.0. |
releaseLineAncestors |
list[NonEmptyString] | no | Ancestor release-line keys, ordered from nearest to farthest, used when lineage matters to selection or rendering. |
supportStatus |
NonEmptyString | no | Support-status key or label associated with this record. |
publicationState |
PublicationState | no | Publication state for the record, such as published, withdrawn, or tombstoned. |
maturity |
NonEmptyString | no | Maturity label such as preview, beta, or stable that readers can use to judge readiness. |
candidateSequence |
NonNegativeInteger | no | Numeric ordering hint for release candidates, usually the rc sequence number. |
voteStatus |
NonEmptyString | no | Vote status label for a candidate release when the provider exposes release-vote state. |
createdAt |
TimestampString | no | Timestamp when the upstream record was first created. |
publishedAt |
TimestampString | no | Timestamp when the upstream record became publicly available. |
updatedAt |
TimestampString | no | Timestamp of the most recent upstream update observed for this record. |
urls |
dict[NonEmptyString, UrlString] | no | Additional named URLs related to the record, such as notes, signatures, vote threads, or changelogs. |
assets |
list[ProviderAsset] | no | Downloadable assets attached to the record, including checksums and related provenance links when available. |
Selected field examples
provider: Example:"github-releases"componentSlug: Example:"spark"artifactKey: Example:"runtime"sourceKey: Example:"apache-spark"externalId: Example:"github:release:runtime-4.0.0"version: Example:"4.0.0"displayVersion: Example:"4.0.0 GA"tag: Example:"v4.0.0"ref: Example:"refs/heads/main"commitSha: Example:"6f0fd1f7b2c4a6d8e9f00123456789abcdef0123"namedRefKey: Example:"preview"releaseLine: Example:"4.0"releaseLineAncestors: Example:["4.x","stable"]supportStatus: Example:"supported"maturity: Example:"stable"candidateSequence: Example:1voteStatus: Example:"passed"
ProviderSnapshotDocumentV1
Provider-derived normalized snapshot from site/provider-snapshot.json.
- category:
provider - ownership:
provider-derived - file contract:
site/provider-snapshot.json
| Field | Type | Required | Description |
|---|---|---|---|
schemaVersion |
Literal[1] | yes | Schema version for the provider snapshot document. |
providers |
list[ProviderDescriptor] | yes | Provider descriptors for every provider that contributed records to this snapshot. |
records |
list[ProviderRecord] | yes | Normalized provider records for releases, candidates, tags, refs, and related downloadable assets. |
Example: Provider snapshot with one released record and one downloadable asset.
1{
2 "schemaVersion": 1,
3 "providers": [
4 {
5 "key": "github-releases",
6 "type": "github",
7 "displayName": "GitHub Releases",
8 "baseUrl": "https://github.com/apache/spark",
9 "fetchedAt": "2026-04-03T18:00:00Z"
10 }
11 ],
12 "records": [
13 {
14 "provider": "github-releases",
15 "kind": "released",
16 "componentSlug": "spark",
17 "artifactKey": "runtime",
18 "externalId": "spark-4.0.0",
19 "externalUrl": "https://github.com/apache/spark/releases/tag/v4.0.0",
20 "version": "4.0.0",
21 "publishedAt": "2026-04-03T18:00:00Z",
22 "assets": [
23 {
24 "name": "spark-4.0.0-src.tgz",
25 "url": "https://downloads.apache.org/spark/spark-4.0.0-src.tgz",
26 "checksums": {
27 "sha256": "abc123"
28 }
29 }
30 ]
31 }
32 ]
33}