List package versions
Retrieves all versions of a specific package, including version identifiers, creation timestamps, and archive status information.
Authorization: Requires read access to the package. Response: Returns array of version objects ordered by creation date.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the organization Standard identifier pattern for resource names
^[a-zA-Z0-9_ -]+$The unique identifier of the environment Standard identifier pattern for resource names
^[a-zA-Z0-9_ -]+$The unique identifier of the package Standard identifier pattern for resource names
^[a-zA-Z0-9_ -]+$Response
List of versions retrieved successfully
The unique version identifier, typically following semantic versioning (e.g., 1.2.3)
^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ISO 8601 timestamp indicating when this version was created
ISO 8601 timestamp indicating when this version was last modified
Current status of the package version, controlling its availability
archive, unarchive, error_state True when this version serves at least one stale artifact — a
materialized source or index that is serving non-current data for any
reason (docs/persistence.md §9.7). Display-only roll-up (the OR of its
artifacts' stale); the version still serves prior values.
False/absent otherwise.
The earliest fresh→stale crossover instant across the version's stale artifacts (§9.7 roll-up). Null when no artifact carries an age-based crossover (or the version is fresh).
The union of the version's artifacts' staleness cause(s) (§9.7). Empty when fresh.
Machine-readable cause for an artifact's staleness (docs/persistence.md
§9.7 — one indicator, orthogonal reasons). Split into GATING reasons
(their presence sets stale=true) and ANNOTATION reasons (they explain
why an already-stale artifact keeps aging, never flip it on their own):
FRESHNESS_WINDOW_EXCEEDED(gating) — data age passed the declaredfreshness.window(§9.3 tables, §9.5 indexes).SOURCE_BUILD_FAILED(gating) — serving prior values because this version's source materialization FAILED (the reused-over-failed case, generalized; symmetric for a source whose latest rebuild failed while a prior generation still serves).REFRESH_IN_PROGRESS(annotation) — a scheduled refresh has fired but no fresher generation has landed yet (self-heals).LAST_REFRESH_FAILED(annotation) — the refresh stream was disarmed after repeated fires without landing a fresher generation.WINDOW_BELOW_BUILD_TIME(annotation) — the declared freshness window is shorter than the estimated build duration, so the objective is physically unachievable (the rebuild cannot complete inside the window). The window needs widening, or what it covers reducing.
FRESHNESS_WINDOW_EXCEEDED, SOURCE_BUILD_FAILED, REFRESH_IN_PROGRESS, LAST_REFRESH_FAILED, WINDOW_BELOW_BUILD_TIME Whether this version is armed for auto-promote: the version-lifecycle
reconciler promotes it to the package's latestVersion once it is ready
(fully indexed and settled into a servable resting state — materialized,
or no persist sources / DuckDB serving live) and has never been latest.
Read-only state set by the system at publish when the package's
autoPromote policy is enabled (at most one version per package is armed
at a time); cleared once the intent resolves (after promotion, or on
terminal materialization failure).
When this version most recently became the package's latest. Null if it has never been promoted. Used as the auto-promote "never been latest" rollback guard.
When this version most recently stopped being the package's latest. Null while it is the current latest or has never been latest. Auto-archive's ttl is measured from this timestamp.
Metadata from indexing failures, attached to a package version
Aggregate package-indexing (source-extraction) progress for a package version, polled from the entity-indexing service while the version is being indexed. Populated on the single-version read while indexing is in progress (indexStatus = indexing); null once indexed/failed or when progress is unavailable. Mirrors ConnectionIndexingProgress. Per-dimension index progress is surfaced separately via the index-run / dimensional-index APIs, not here.
Single aggregate build status for this version, rolling up its materialization and indexing into one lifecycle so tables and indexes present as one family:
FAILEDif either side failed.- else
BUILDINGwhile either side is still working (materializing, or indexing not yet settled). - else
UNSUPPORTEDwhen the version declares persist sources whose dialect cannot be materialized in v0 (DuckDB) — nothing is built and those sources serve live — and indexing has settled. - else
READYonce both sides have reached a servable resting state. Derived read-only projection.
BUILDING, READY, FAILED, UNSUPPORTED The version's materialization scope mode, ingested from the package
manifest root (Package.scope) at materialize time:
version: this version owns its materialized source tables — they are not reused across versions. (Dimension indexes are the exception: they remain content-addressed and may still be shared across versions regardless of scope until per-version index isolation lands with the index-cadence scheduler — see the note onIndex.scope.) A package-levelmaterializationScheduleis legal only in this mode.package: materialized source tables may be reused across the package's own versions when fresh; cadence is freshness only (no schedule). Null when unknown (older versions materialized before scope was recorded); the control plane treats null as the default (package).
version, package The version's re-materialization cadence — the 5-field UNIX cron from
the package manifest's materialization.schedule (e.g. 0 6 * * *),
ingested at materialize time. Null when the package declares no
schedule (the version materializes only on publish or on-demand rebuild).
When the scheduler will next re-materialize this version on its
materializationSchedule. Null when the version has no schedule.
When a scheduled (SCHEDULER-trigger) re-materialization of this version last fired. Null when the version has no schedule or has not yet fired.
The package-level freshness window declared in the package manifest's
materialization.freshness.window, parsed to seconds and ingested
write-once at materialize time. This is the refresh objective / staleness
bound that individual sources and indexes inherit as the package default
under most-specific-wins resolution. Null when the package declares no
freshness window. Mutually exclusive with materializationSchedule: a
version configures a schedule OR a freshness window, never both.
The package-level freshness fallback (materialization.freshness.fallback)
— the query-time behavior when the window is missed ("live" | "stale_ok" |
"fail"), reported verbatim from the manifest. Null when unset or no
freshness is declared.
The persist build plan's dependency graph (DAG) for this version — the persist sources and their dependsOn edges. Read from the publisher's deterministic build plan. Populated only on the single-version GET (getVersion); null on list responses and when the version declares no persist source or no healthy worker can serve the plan.