openapi: 3.1.0
info:
title: Porter Bundle Bundles Runs API
description: The Porter Bundle API provides programmatic access to managing Cloud Native Application Bundles (CNAB) using Porter. It supports listing and inspecting bundles, managing installations, handling credential sets and parameter sets, and querying installation runs and outputs. Porter implements the CNAB spec for packaging applications with their dependencies into distributable installers.
version: 1.0.0
contact:
name: Porter Community
url: https://porter.sh/community/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:3000
description: Porter local server (porter server)
security:
- bearerAuth: []
tags:
- name: Runs
description: Operations for querying the history of bundle action executions and their outputs.
paths:
/v1/installations/{namespace}/{name}/runs:
get:
operationId: listInstallationRuns
summary: Porter List runs for an installation
description: Returns the history of all bundle action executions for a specific installation, ordered from most recent to oldest. Each run captures the action performed, the result, and timing information.
tags:
- Runs
parameters:
- $ref: '#/components/parameters/namespace_path'
- $ref: '#/components/parameters/name_path'
- $ref: '#/components/parameters/skip'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: List of runs
content:
application/json:
schema:
$ref: '#/components/schemas/RunListResponse'
'401':
description: Unauthorized
'404':
description: Installation not found
/v1/installations/{namespace}/{name}/runs/{run_id}:
get:
operationId: getInstallationRun
summary: Porter Get a specific run
description: Returns details of a single bundle action execution including the bundle action performed, parameters and credentials used, result status, and any outputs produced.
tags:
- Runs
parameters:
- $ref: '#/components/parameters/namespace_path'
- $ref: '#/components/parameters/name_path'
- $ref: '#/components/parameters/run_id'
responses:
'200':
description: Run details
content:
application/json:
schema:
$ref: '#/components/schemas/Run'
'401':
description: Unauthorized
'404':
description: Run not found
/v1/installations/{namespace}/{name}/runs/{run_id}/outputs:
get:
operationId: listRunOutputs
summary: Porter List outputs for a run
description: Returns all outputs produced during a specific bundle action execution. Outputs are values defined in the bundle that are written during an action and can be referenced by dependent bundles or inspected by users.
tags:
- Runs
parameters:
- $ref: '#/components/parameters/namespace_path'
- $ref: '#/components/parameters/name_path'
- $ref: '#/components/parameters/run_id'
responses:
'200':
description: List of outputs
content:
application/json:
schema:
$ref: '#/components/schemas/OutputListResponse'
'401':
description: Unauthorized
'404':
description: Run not found
components:
schemas:
Run:
type: object
description: A record of a single bundle action execution for an installation, capturing the action taken, parameters and credentials used, result, and timing.
properties:
id:
type: string
description: Unique identifier for this run.
installation:
type: string
description: Name of the installation this run belongs to.
namespace:
type: string
description: Porter namespace of the installation.
bundle:
type: string
description: OCI reference to the bundle used in this run.
action:
type: string
description: Bundle action executed in this run.
enum:
- install
- upgrade
- invoke
- uninstall
parameters:
type: object
description: Parameter values used during this run.
additionalProperties: {}
credentialSets:
type: array
description: Credential sets used during this run.
items:
type: string
parameterSets:
type: array
description: Parameter sets used during this run.
items:
type: string
result:
type: string
description: Outcome of the run.
enum:
- succeeded
- failed
- running
- pending
- cancelled
startedAt:
type: string
format: date-time
description: When the run started.
completedAt:
type: string
format: date-time
description: When the run completed.
Output:
type: object
description: A named output value produced by a bundle action execution.
properties:
name:
type: string
description: Name of the output as defined in the bundle.
type:
type: string
description: JSON Schema type of the output value.
sensitive:
type: boolean
description: Whether the output contains sensitive data.
value:
description: The output value. Absent for sensitive outputs.
runID:
type: string
description: ID of the run that produced this output.
RunListResponse:
type: object
description: Paginated list of runs.
properties:
items:
type: array
items:
$ref: '#/components/schemas/Run'
total:
type: integer
OutputListResponse:
type: object
description: List of outputs from a bundle run.
properties:
items:
type: array
items:
$ref: '#/components/schemas/Output'
parameters:
name_path:
name: name
in: path
required: true
description: Name of the resource.
schema:
type: string
namespace_path:
name: namespace
in: path
required: true
description: Porter namespace of the resource.
schema:
type: string
run_id:
name: run_id
in: path
required: true
description: Unique identifier of the run.
schema:
type: string
skip:
name: skip
in: query
required: false
description: Number of records to skip for pagination.
schema:
type: integer
minimum: 0
default: 0
limit:
name: limit
in: query
required: false
description: Maximum number of records to return per page.
schema:
type: integer
minimum: 1
maximum: 500
default: 100
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Bearer token for authenticating to the Porter server API.
externalDocs:
description: Porter Documentation
url: https://porter.sh/docs/