Skip to main content

Documentation Index

Fetch the complete documentation index at: https://ryvn.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Releases can include metadata about artifacts (container images), dependencies (required services), and migrations (database schema changes). This metadata is defined in a {service-name}-release.ryvn.yaml file that the Ryvn CLI reads when creating releases.
Unlike other Ryvn resource types (Service, Environment, ServiceInstallation), release metadata files do not use the kind/metadata.name envelope. The file contains only the release content fields (artifacts, dependencies, migrations) and the service and version are inferred from the filename and CLI arguments.
# Example: my-app-release.ryvn.yaml
artifacts:
  - name: api
    image:
      repository: ghcr.io/my-org/api
      tag: "1.0.0"

dependencies:
  - service: database
    minVersion: "1.0.0"
    maxVersion: "2.x.x"
    optional: false

migrations:
  - version: 1
    name: "initial schema"
  - version: 2

Specify artifacts

Artifacts define the container images associated with a release.
artifacts:
  - name: api
    image:
      repository: ghcr.io/acme/api
      tag: "1.0.0"
Multiple artifacts:
artifacts:
  - name: api
    image:
      repository: ghcr.io/acme/api
      tag: "2.0.0"

  - name: worker
    image:
      repository: ghcr.io/acme/worker
      tag: "2.0.0"

  - name: migrator
    image:
      repository: ghcr.io/acme/migrator
      tag: "2.0.0"

Specify dependencies

Dependencies specify other services required for this service to function.
dependencies:
  - service: database
    minVersion: "1.0.0"
    maxVersion: "2.x.x"
    optional: false
Multiple dependencies with optional:
dependencies:
  - service: postgres
    minVersion: "14.0.0"
    maxVersion: "15.x.x"
    optional: false

  - service: redis
    minVersion: "7.x.x"
    optional: false

  - service: elasticsearch
    minVersion: "8.x.x"
    optional: true
Version constraints support wildcards:
  • 1.2.3 - Exact version
  • 1.2.x - Any patch version of 1.2
  • 1.x.x - Any minor/patch version of 1
  • 0.x.x - Any version in the 0.x series

Specify migrations

Migrations track database schema changes associated with a release. Migrations block (version required, name optional):
migrations:
  - version: 1
    name: "create base tables"
  - version: 2
  - version: 3
    name: "add indexes"

Properties

artifacts[].name

string — required Identifier for the artifact (e.g., “api”, “worker”, “migrator”). Must be unique within a release.
name: api

artifacts[].image.repository

string — required Full image repository URL including registry path.
image:
  repository: ghcr.io/acme/api

artifacts[].image.tag

string — required Image tag, typically the release version.
image:
  tag: "1.0.0"

dependencies[].service

string — required Name of the required service.
service: database

dependencies[].minVersion

string — optional Minimum required version. Supports wildcards.
minVersion: "1.0.0"

dependencies[].maxVersion

string — optional Maximum allowed version. Supports wildcards.
maxVersion: "2.x.x"

dependencies[].optional

boolean — required Whether the dependency is optional. Required dependencies block deployment if missing.
optional: false

migrations[].version

integer — required Migration version number. Must be a non-negative integer.
version: 1

migrations[].name

string — optional Optional name for the migration (max 120 characters). Provides context about what the migration does.
name: "add users table"

Examples

Basic service with single artifact:
artifacts:
  - name: api
    image:
      repository: ghcr.io/acme/api
      tag: "1.0.0"
Service with dependencies:
artifacts:
  - name: user-service
    image:
      repository: ghcr.io/acme/user-service
      tag: "2.0.0"

dependencies:
  - service: auth-service
    minVersion: "1.0.0"
    maxVersion: "2.x.x"
    optional: false

  - service: notification-service
    minVersion: "1.x.x"
    optional: true

migrations:
  - version: 5
    name: "add user preferences table"
Multi-artifact service:
artifacts:
  - name: ingestor
    image:
      repository: ghcr.io/acme/ingestor
      tag: "3.0.0"

  - name: processor
    image:
      repository: ghcr.io/acme/processor
      tag: "3.0.0"

  - name: exporter
    image:
      repository: ghcr.io/acme/exporter
      tag: "3.0.0"

dependencies:
  - service: message-queue
    minVersion: "2.0.0"
    maxVersion: "3.x.x"
    optional: false

  - service: storage-service
    minVersion: "1.x.x"
    optional: false

migrations:
  - version: 10
    name: "create processing_jobs table"
  - version: 11
    name: "add indexes for export queries"
  - version: 12