JFrog Release Lifecycle Management REST API

API for managing release bundles, promotion workflows, and evidence collection throughout the software release lifecycle from development to production.

OpenAPI Specification

jfrog-release-lifecycle-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: JFrog Release Lifecycle Management REST API
  description: >-
    API for managing release bundles, promotion workflows, and evidence
    collection throughout the software release lifecycle from development to
    production. Provides capabilities for creating immutable release bundles,
    promoting them through environments, and collecting attestation evidence.
  version: 2.x
  contact:
    name: JFrog
    url: https://jfrog.com
  license:
    name: Proprietary
    url: https://jfrog.com/terms-of-service/
  termsOfService: https://jfrog.com/terms-of-service/
externalDocs:
  description: JFrog Release Lifecycle Management REST API Documentation
  url: https://jfrog.com/help/r/jfrog-rest-apis/release-lifecycle-management
servers:
  - url: https://{server}.jfrog.io/lifecycle/api
    description: JFrog Cloud
    variables:
      server:
        default: myserver
        description: Your JFrog server name
  - url: https://{host}/lifecycle/api
    description: Self-hosted JFrog instance
    variables:
      host:
        default: localhost:8082
        description: Your self-hosted JFrog server host
security:
  - bearerAuth: []
  - basicAuth: []
tags:
  - name: Distribution
    description: Distribute release bundles to edge nodes
  - name: Evidence
    description: Collect and manage release evidence and attestations
  - name: Promotion
    description: Promote release bundles through environments
  - name: Release Bundles V2
    description: Create and manage release bundles v2
paths:
  /v2/release_bundle:
    post:
      operationId: createReleaseBundle
      summary: JFrog Create Release Bundle v2
      description: Creates a new release bundle version 2 from specified artifacts.
      tags:
        - Release Bundles V2
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReleaseBundleV2Request'
      responses:
        '201':
          description: Release bundle created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseBundleV2'
        '400':
          description: Invalid request
  /v2/release_bundle/records:
    get:
      operationId: listReleaseBundles
      summary: JFrog List Release Bundles v2
      description: Returns a list of all release bundle v2 records.
      tags:
        - Release Bundles V2
      parameters:
        - name: name
          in: query
          schema:
            type: string
          description: Filter by release bundle name
        - name: after
          in: query
          schema:
            type: string
          description: Cursor for pagination
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
          description: Maximum number of results
      responses:
        '200':
          description: Release bundles list
          content:
            application/json:
              schema:
                type: object
                properties:
                  release_bundles:
                    type: array
                    items:
                      $ref: '#/components/schemas/ReleaseBundleV2Summary'
  /v2/release_bundle/records/{name}/{version}:
    get:
      operationId: getReleaseBundle
      summary: JFrog Get Release Bundle v2
      description: Returns details for a specific release bundle version.
      tags:
        - Release Bundles V2
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: Release bundle name
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: Release bundle version
      responses:
        '200':
          description: Release bundle details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleaseBundleV2'
    delete:
      operationId: deleteReleaseBundle
      summary: JFrog Delete Release Bundle v2
      description: Deletes a release bundle version.
      tags:
        - Release Bundles V2
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: Release bundle name
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: Release bundle version
      responses:
        '204':
          description: Release bundle deleted
  /v2/promotion/records/{name}/{version}:
    get:
      operationId: getPromotionStatus
      summary: JFrog Get Promotion Status
      description: Returns the promotion status and history for a release bundle version.
      tags:
        - Promotion
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: Release bundle name
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: Release bundle version
      responses:
        '200':
          description: Promotion status retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PromotionStatus'
  /v2/promotion:
    post:
      operationId: promoteReleaseBundle
      summary: JFrog Promote Release Bundle
      description: Promotes a release bundle to a target environment.
      tags:
        - Promotion
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PromotionRequest'
      responses:
        '200':
          description: Promotion initiated
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  promotion_id:
                    type: string
  /v2/release_bundle/distribute/{name}/{version}:
    post:
      operationId: distributeReleaseBundle
      summary: JFrog Distribute Release Bundle v2
      description: Distributes a release bundle to specified edge nodes.
      tags:
        - Distribution
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: Release bundle name
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: Release bundle version
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributeRequest'
      responses:
        '200':
          description: Distribution initiated
  /v2/release_bundle/distribute/{name}/{version}/status:
    get:
      operationId: getDistributionStatus
      summary: JFrog Get Distribution Status
      description: Returns distribution status for a release bundle.
      tags:
        - Distribution
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: Release bundle name
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: Release bundle version
      responses:
        '200':
          description: Distribution status
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  sites:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        status:
                          type: string
  /v2/evidence:
    post:
      operationId: createEvidence
      summary: JFrog Create Evidence
      description: Creates a new evidence record attached to a release bundle.
      tags:
        - Evidence
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EvidenceRequest'
      responses:
        '201':
          description: Evidence created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Evidence'
  /v2/evidence/{name}/{version}:
    get:
      operationId: getEvidence
      summary: JFrog Get Evidence
      description: Returns all evidence records for a release bundle version.
      tags:
        - Evidence
      parameters:
        - name: name
          in: path
          required: true
          schema:
            type: string
          description: Release bundle name
        - name: version
          in: path
          required: true
          schema:
            type: string
          description: Release bundle version
      responses:
        '200':
          description: Evidence records retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  evidence:
                    type: array
                    items:
                      $ref: '#/components/schemas/Evidence'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token authentication
    basicAuth:
      type: http
      scheme: basic
      description: Basic username/password authentication
  schemas:
    ReleaseBundleV2Request:
      type: object
      properties:
        release_bundle_name:
          type: string
        release_bundle_version:
          type: string
        skip_docker_manifest_resolution:
          type: boolean
          default: false
        source_type:
          type: string
          enum: [artifacts, builds, release_bundles, aql]
        source:
          type: object
          properties:
            artifacts:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  sha256:
                    type: string
            builds:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  number:
                    type: string
                  project:
                    type: string
            release_bundles:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  version:
                    type: string
                  project_key:
                    type: string
            aql:
              type: string
      required:
        - release_bundle_name
        - release_bundle_version
        - source_type
        - source
    ReleaseBundleV2:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        status:
          type: string
          enum: [CREATED, SIGNED, PROMOTED, DISTRIBUTED]
        created:
          type: string
          format: date-time
        created_by:
          type: string
        source_type:
          type: string
        artifacts:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              sha256:
                type: string
              size:
                type: integer
        current_environment:
          type: string
        promotion_history:
          type: array
          items:
            type: object
            properties:
              environment:
                type: string
              promoted_at:
                type: string
                format: date-time
              promoted_by:
                type: string
    ReleaseBundleV2Summary:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        status:
          type: string
        created:
          type: string
          format: date-time
        artifacts_count:
          type: integer
        current_environment:
          type: string
    PromotionRequest:
      type: object
      properties:
        release_bundle_name:
          type: string
        release_bundle_version:
          type: string
        environment:
          type: string
          description: Target environment name (e.g., DEV, STAGING, PROD)
        included_repository_keys:
          type: array
          items:
            type: string
        overwrite_existing_artifacts:
          type: boolean
          default: false
      required:
        - release_bundle_name
        - release_bundle_version
        - environment
    PromotionStatus:
      type: object
      properties:
        name:
          type: string
        version:
          type: string
        current_environment:
          type: string
        promotions:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
                enum: [COMPLETED, IN_PROGRESS, FAILED]
              environment:
                type: string
              created:
                type: string
                format: date-time
              created_by:
                type: string
    DistributeRequest:
      type: object
      properties:
        auto_create_missing_repositories:
          type: boolean
          default: false
        distribution_rules:
          type: array
          items:
            type: object
            properties:
              site_name:
                type: string
      required:
        - distribution_rules
    EvidenceRequest:
      type: object
      properties:
        release_bundle_name:
          type: string
        release_bundle_version:
          type: string
        environment:
          type: string
        evidence_type:
          type: string
          enum: [test_results, approval, scan_results, build_info, custom]
        description:
          type: string
        dsse_file_path:
          type: string
          description: Path to a DSSE signed envelope file in Artifactory
      required:
        - release_bundle_name
        - release_bundle_version
    Evidence:
      type: object
      properties:
        id:
          type: string
        release_bundle_name:
          type: string
        release_bundle_version:
          type: string
        environment:
          type: string
        evidence_type:
          type: string
        description:
          type: string
        created:
          type: string
          format: date-time
        created_by:
          type: string
        dsse_file_path:
          type: string