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_refstringReference (Attestor uuid/subject) to a build-provenance attestation discovered for the digest (RL-2c). 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).

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