Porter CredentialSets API

Operations for managing credential sets that supply secret values to bundle executions.

OpenAPI Specification

porter-credentialsets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Porter Bundle Bundles CredentialSets 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: CredentialSets
  description: Operations for managing credential sets that supply secret values to bundle executions.
paths:
  /v1/credentialsets:
    get:
      operationId: listCredentialSets
      summary: Porter List credential sets
      description: Returns all credential sets managed by Porter. A credential set maps bundle credential names to their sources, such as environment variables, files, or secret store references.
      tags:
      - CredentialSets
      parameters:
      - $ref: '#/components/parameters/namespace'
      - $ref: '#/components/parameters/name'
      - $ref: '#/components/parameters/skip'
      - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of credential sets
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialSetListResponse'
        '401':
          description: Unauthorized
    post:
      operationId: createCredentialSet
      summary: Porter Create a credential set
      description: Creates a new credential set defining how bundle credential names are resolved at execution time from sources such as environment variables, files, or secret store integrations.
      tags:
      - CredentialSets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialSet'
      responses:
        '201':
          description: Credential set created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialSet'
        '400':
          description: Invalid credential set specification
        '401':
          description: Unauthorized
        '409':
          description: Credential set already exists
  /v1/credentialsets/{namespace}/{name}:
    get:
      operationId: getCredentialSet
      summary: Porter Get a credential set
      description: Returns the specified credential set including its credential mappings. Secret values are never included in responses.
      tags:
      - CredentialSets
      parameters:
      - $ref: '#/components/parameters/namespace_path'
      - $ref: '#/components/parameters/name_path'
      responses:
        '200':
          description: Credential set details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialSet'
        '401':
          description: Unauthorized
        '404':
          description: Credential set not found
    put:
      operationId: updateCredentialSet
      summary: Porter Update a credential set
      description: Replaces the credential mappings in a credential set with the provided definition.
      tags:
      - CredentialSets
      parameters:
      - $ref: '#/components/parameters/namespace_path'
      - $ref: '#/components/parameters/name_path'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialSet'
      responses:
        '200':
          description: Credential set updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialSet'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '404':
          description: Credential set not found
    delete:
      operationId: deleteCredentialSet
      summary: Porter Delete a credential set
      description: Deletes the specified credential set. Installations referencing this credential set will fail if they are re-run.
      tags:
      - CredentialSets
      parameters:
      - $ref: '#/components/parameters/namespace_path'
      - $ref: '#/components/parameters/name_path'
      responses:
        '204':
          description: Credential set deleted
        '401':
          description: Unauthorized
        '404':
          description: Credential set not found
components:
  schemas:
    CredentialSet:
      type: object
      description: A named collection of credential mappings that resolve bundle credential names to their runtime sources such as environment variables, files, or secret store entries.
      required:
      - name
      - credentials
      properties:
        name:
          type: string
          description: Name of the credential set.
        namespace:
          type: string
          description: Porter namespace this credential set belongs to.
        credentials:
          type: array
          description: List of credential mappings.
          items:
            $ref: '#/components/schemas/CredentialMapping'
        labels:
          type: object
          additionalProperties:
            type: string
          description: Labels for categorizing the credential set.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the credential set was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the credential set was last updated.
    CredentialSetListResponse:
      type: object
      description: Paginated list of credential sets.
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/CredentialSet'
        total:
          type: integer
    CredentialMapping:
      type: object
      description: Maps a bundle credential name to its runtime source.
      required:
      - name
      - source
      properties:
        name:
          type: string
          description: Name of the bundle credential this mapping applies to.
        source:
          $ref: '#/components/schemas/ValueSource'
    ValueSource:
      type: object
      description: Defines where a credential or parameter value is sourced from at execution time. Exactly one of the source fields should be set.
      properties:
        env:
          type: string
          description: Name of an environment variable providing the value.
        path:
          type: string
          description: Absolute path to a file providing the value.
        value:
          type: string
          description: A literal string value.
        secret:
          type: string
          description: Reference to a secret in the configured secret store plugin, such as a secret name in HashiCorp Vault or Azure Key Vault.
        command:
          type: string
          description: Shell command whose stdout provides the value.
  parameters:
    name_path:
      name: name
      in: path
      required: true
      description: Name of the resource.
      schema:
        type: string
    name:
      name: name
      in: query
      required: false
      description: Filter results by resource name.
      schema:
        type: string
    namespace_path:
      name: namespace
      in: path
      required: true
      description: Porter namespace of the resource.
      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
    namespace:
      name: namespace
      in: query
      required: false
      description: Porter namespace to scope the query to. Defaults to the current namespace configured in Porter's context.
      schema:
        type: string
  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/