Entity Definitions

This document describes the core entities in the Release Orchestrator data model.

Entity Relationship Overview

┌─────────────────────────────────────────────────────────────────────────────┐
│                          ENTITY RELATIONSHIPS                               │
│                                                                             │
│  ┌──────────┐       ┌──────────────┐       ┌────────────┐                  │
│  │ Tenant   │───────│ Environment  │───────│ Target     │                  │
│  └──────────┘       └──────────────┘       └────────────┘                  │
│       │                    │                     │                          │
│       │                    │                     │                          │
│       ▼                    ▼                     ▼                          │
│  ┌──────────┐       ┌──────────────┐       ┌────────────┐                  │
│  │ Component│       │ Approval     │       │ Agent      │                  │
│  └──────────┘       │ Policy       │       └────────────┘                  │
│       │             └──────────────┘             │                          │
│       │                    │                     │                          │
│       ▼                    │                     ▼                          │
│  ┌──────────┐              │              ┌─────────────┐                  │
│  │ Version  │              │              │ Deployment  │                  │
│  │ Map      │              │              │ Task        │                  │
│  └──────────┘              │              └─────────────┘                  │
│       │                    │                     │                          │
│       │                    │                     │                          │
│       ▼                    │                     ▼                          │
│  ┌─────────────────────────┼─────────────────────────────┐                 │
│  │                         │                             │                 │
│  │  ┌──────────┐     ┌─────▼─────┐     ┌─────────────┐  │                 │
│  │  │ Release  │─────│ Promotion │─────│ Deployment  │  │                 │
│  │  └──────────┘     └───────────┘     │ Job         │  │                 │
│  │       │                 │           └─────────────┘  │                 │
│  │       │                 │                 │          │                 │
│  │       │                 ▼                 │          │                 │
│  │       │           ┌───────────┐           │          │                 │
│  │       │           │ Approval  │           │          │                 │
│  │       │           └───────────┘           │          │                 │
│  │       │                 │                 │          │                 │
│  │       │                 ▼                 ▼          │                 │
│  │       │           ┌───────────┐     ┌───────────┐   │                 │
│  │       │           │ Decision  │     │ Generated │   │                 │
│  │       │           │ Record    │     │ Artifacts │   │                 │
│  │       │           └───────────┘     └───────────┘   │                 │
│  │       │                 │                 │          │                 │
│  │       │                 └────────┬────────┘          │                 │
│  │       │                          │                   │                 │
│  │       │                          ▼                   │                 │
│  │       │                    ┌───────────┐             │                 │
│  │       └───────────────────►│ Evidence  │◄────────────┘                 │
│  │                            │ Packet    │                                │
│  │                            └───────────┘                                │
│  │                                  │                                      │
│  │                                  ▼                                      │
│  │                            ┌───────────┐                                │
│  │                            │ Version   │                                │
│  │                            │ Sticker   │                                │
│  │                            └───────────┘                                │
│  │                                                                         │
│  └─────────────────────────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────────────────────────┘

Core Entities

Environment

Represents a deployment target environment (dev, staging, production).

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
namestringUnique name (e.g., “prod”)
display_namestringDisplay name (e.g., “Production”)
order_indexintegerPromotion order
configJSONBEnvironment configuration
freeze_windowsJSONBActive freeze windows
required_approvalsintegerApprovals needed for promotion
require_sodbooleanRequire separation of duties
created_attimestampCreation time

Target

Represents a deployment target (host, service).

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
environment_idUUIDEnvironment reference
namestringTarget name
target_typestringType (docker_host, compose_host, etc.)
connectionJSONBConnection configuration
labelsJSONBTarget labels
health_statusstringCurrent health status
current_digeststringCurrently deployed digest

Agent

Represents a deployment agent.

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
namestringAgent name
versionstringAgent version
capabilitiesJSONBAgent capabilities
statusstringonline/offline/degraded
last_heartbeattimestampLast heartbeat time

Component

Represents a deployable component (maps to an image repository).

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
namestringTenant-unique component name
display_namestringDisplay name
descriptionstringOptional operator description
image_repositorystringDefault image repository used for registry sync and release authoring
registry_integration_idstringDefault tenant registry integration used to resolve tags to digests
versioning_strategystringVersion label strategy: semver, branch-tag, or label
statusstringactive or retired
default_channelstringDefault version channel
default_version_labelstringOptional fallback label used when the strategy cannot derive a label
environment_registry_overridesJSON objectOptional per-environment registry integration and repository override
labelsJSON objectTenant-defined component labels
created_attimestampCreation time
updated_attimestampLast update time

Version Map

Maps image tags to immutable digests and operator-facing version labels.

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
component_idUUIDComponent reference
tagstringImage tag
digeststringImage digest (sha256:…)
version_labelstringOperator-facing version label derived from the component strategy
channelstringVersion channel (for example stable, main, prod)
source_commit_shastringSource commit captured from registry/OCI labels when present
source_repo_urlstringSource repository URL captured from registry/OCI config labels or operator override
source_branchstringSource branch/ref captured from registry/OCI config labels or operator override
scm_manually_setbooleanTrue when operator-supplied SCM values should survive registry re-sync
discovered_attimestampTime the tag/digest pair was recorded
built_attimestampOptional build timestamp from registry metadata
metadataJSON objectRegistry and OCI label metadata retained for audit/debugging

The digest is the immutable release identity. Tags and labels remain human-facing metadata. Mutable branch tags are safe because each distinct (component_id, tag, digest) is stored as its own version row.

Release Component (truth-store binding)

Each release pins its component digests in release_orchestrator.release_components (the DTO lives in component_json; scalar columns are audit-query projections). Sprint 20260704_007 (RL-1) adds source lineage — the “birth certificate” that answers which commit produced release X — as columns on this table (not a joined table: lineage is 1:1 with a pinned digest).

FieldTypeDescription
source_commit_shastringSource git commit the digest was built from. From OCI labels (org.opencontainers.image.revision), the component_versions sync, or operator input — never invented.
source_repo_urlstringSource repository URL (org.opencontainers.image.source / component_versions / operator).
pipeline_refstringCI pipeline/run reference, when known.
provenance_attestation_refstringEvidence uuid of a build-provenance attestation discovered for the digest at component add (RL-2c): an entry of a configured provenance artifact kind (ReleaseOrchestrator:Provenance:ProvenanceArtifactKinds, default slsa-provenance) whose artifact binds exactly to the digest. NULL ⇒ provenance: absent.
lineage_statusstringknown | ambiguous (digest maps to >1 distinct commit — newest-sync recorded, collision flagged) | unknown (honest absence).

Populated at component-add from the resolved component version’s OCI-label lineage, from a component_versions lookup by digest for the raw-digest ingress path, and by an Attestor provenance lookup; and back-filled onto already-pinned components by the component_versions sync write-through (digest is the join key; tags never). Surfaced in the release-detail UI, in stella release show, and as the advisory provenance-present predicate in the gate decision basis (RL-3).

source_commit_sha, source_repo_url and pipeline_ref record lineage from labels, sync or operator input; they are not attested and never count as CI evidence. The CI evidence receipt and the Chain of Custody Source and Build stages read the provenance attestation itself, at request time, through the first-delivery API.

Release

A versioned bundle of component digests.

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
namestringRelease name
display_namestringDisplay name
componentsJSONBComponent/digest mappings
source_refJSONBSource code reference
statusstringdraft/ready/deployed/deprecated
created_byUUIDCreator user reference

Promotion

A request to promote a release to an environment.

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
release_idUUIDRelease reference
source_environment_idUUIDSource environment (nullable)
target_environment_idUUIDTarget environment
statusstringPromotion status
decision_recordJSONBGate evaluation results
workflow_run_idUUIDAssociated workflow run
requested_byUUIDRequesting user
requested_attimestampRequest time

Approval

An approval or rejection of a promotion.

FieldTypeDescription
idUUIDPrimary key
promotion_idUUIDPromotion reference
approver_idUUIDApproving user
actionstringapproved/rejected
commentstringApproval comment
approved_attimestampApproval time

Deployment Job

A deployment execution job.

FieldTypeDescription
idUUIDPrimary key
promotion_idUUIDPromotion reference
release_idUUIDRelease reference
environment_idUUIDEnvironment reference
statusstringJob status
strategystringDeployment strategy
artifactsJSONBGenerated artifacts
rollback_ofUUIDIf rollback, original job

Deployment Task

A task to deploy to a single target.

FieldTypeDescription
idUUIDPrimary key
job_idUUIDJob reference
target_idUUIDTarget reference
digeststringDigest to deploy
statusstringTask status
agent_idUUIDAssigned agent
logstextExecution logs
previous_digeststringPrevious digest (for rollback)

Evidence Packet

Immutable audit evidence for a promotion/deployment.

FieldTypeDescription
idUUIDPrimary key
promotion_idUUIDPromotion reference
packet_typestringType of evidence
contentJSONBEvidence content
content_hashstringSHA-256 of content
signaturestringCryptographic signature
signer_key_refstringSigning key reference
created_attimestampCreation time (no update)

Version Sticker

Version marker placed on deployment targets.

FieldTypeDescription
idUUIDPrimary key
target_idUUIDTarget reference
release_idUUIDRelease reference
promotion_idUUIDPromotion reference
sticker_contentJSONBSticker JSON content
content_hashstringContent hash
written_attimestampWrite time
drift_detectedbooleanDrift detection flag

Workflow Entities

Workflow Template

A reusable workflow definition.

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference (null for builtin)
namestringTemplate name
versionintegerTemplate version
nodesJSONBStep nodes
edgesJSONBStep edges
inputsJSONBInput definitions
outputsJSONBOutput definitions
is_builtinbooleanIs built-in template

Workflow Run

An execution of a workflow template.

FieldTypeDescription
idUUIDPrimary key
template_idUUIDTemplate reference
template_versionintegerTemplate version at execution
statusstringRun status
contextJSONBExecution context
inputsJSONBInput values
outputsJSONBOutput values
started_attimestampStart time
completed_attimestampCompletion time

Step Run

Execution of a single step within a workflow run.

FieldTypeDescription
idUUIDPrimary key
workflow_run_idUUIDWorkflow run reference
node_idstringNode ID from template
statusstringStep status
inputsJSONBResolved inputs
outputsJSONBProduced outputs
logstextExecution logs
attempt_numberintegerRetry attempt number

Plugin Entities

Plugin

A registered plugin.

FieldTypeDescription
idUUIDPrimary key
plugin_idstringUnique plugin identifier
versionstringPlugin version
vendorstringPlugin vendor
manifestJSONBPlugin manifest
statusstringPlugin status
entrypointstringPlugin entrypoint path

Plugin Instance

A tenant-specific plugin configuration.

FieldTypeDescription
idUUIDPrimary key
plugin_idUUIDPlugin reference
tenant_idUUIDTenant reference
configJSONBTenant configuration
enabledbooleanIs enabled for tenant

Integration Entities

Integration

A configured external integration.

FieldTypeDescription
idUUIDPrimary key
tenant_idUUIDTenant reference
type_idstringIntegration type
namestringIntegration name
configJSONBIntegration configuration
credential_refstringVault credential reference
health_statusstringConnection health

References