Skip to main content
GET
List package versions

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

organizationName
string
required

The unique identifier of the organization Standard identifier pattern for resource names

Pattern: ^[a-zA-Z0-9_ -]+$
environmentName
string
required

The unique identifier of the environment Standard identifier pattern for resource names

Pattern: ^[a-zA-Z0-9_ -]+$
packageName
string
required

The unique identifier of the package Standard identifier pattern for resource names

Pattern: ^[a-zA-Z0-9_ -]+$

Response

List of versions retrieved successfully

id
string

The unique version identifier, typically following semantic versioning (e.g., 1.2.3)

Pattern: ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$
createdAt
string<date-time>

ISO 8601 timestamp indicating when this version was created

updatedAt
string<date-time>

ISO 8601 timestamp indicating when this version was last modified

archiveStatus
enum<string>

Current status of the package version, controlling its availability

Available options:
archive,
unarchive,
error_state
stale
boolean
read-only

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.

staleSince
string<date-time> | null
read-only

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

staleReasons
enum<string>[]
read-only

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 declared freshness.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.
Available options:
FRESHNESS_WINDOW_EXCEEDED,
SOURCE_BUILD_FAILED,
REFRESH_IN_PROGRESS,
LAST_REFRESH_FAILED,
WINDOW_BELOW_BUILD_TIME
promoteWhenReady
boolean
read-only

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

promotedAt
string<date-time> | null
read-only

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.

demotedAt
string<date-time> | null
read-only

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
object | null

Metadata from indexing failures, attached to a package version

indexingProgress
object | null

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.

buildStatus
enum<string>
read-only

Single aggregate build status for this version, rolling up its materialization and indexing into one lifecycle so tables and indexes present as one family:

  • FAILED if either side failed.
  • else BUILDING while either side is still working (materializing, or indexing not yet settled).
  • else UNSUPPORTED when 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 READY once both sides have reached a servable resting state. Derived read-only projection.
Available options:
BUILDING,
READY,
FAILED,
UNSUPPORTED
scope
enum<string> | null
read-only

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 on Index.scope.) A package-level materializationSchedule is 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).
Available options:
version,
package
materializationSchedule
string | null
read-only

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

nextScheduledAt
string<date-time> | null
read-only

When the scheduler will next re-materialize this version on its materializationSchedule. Null when the version has no schedule.

lastRefreshedAt
string<date-time> | null
read-only

When a scheduled (SCHEDULER-trigger) re-materialization of this version last fired. Null when the version has no schedule or has not yet fired.

materializationFreshnessWindowSeconds
integer<int64> | null
read-only

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.

materializationFreshnessFallback
string | null
read-only

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.

buildPlan
object | null

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.