tessl.io Workflows API

Background workflow executions and repository workflow configs.

OpenAPI Specification

tesslio-workflows-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Tessl Admin Keys Workflows API
  version: 1.0.0
  description: Admin-scoped API keys for support tooling.
servers:
- url: https://api.tessl.io
tags:
- name: Workflows
  description: Background workflow executions and repository workflow configs.
paths:
  /v1/uploads:
    post:
      tags:
      - Workflows
      description: Issues a presigned S3 upload URL for a file. When `encrypted` is true, a per-upload RSA public key is also returned (SPKI DER, base64) for the client to encrypt to; `workspaceId` is required in that case. The matching private key is wrapped under the workspace data key and stored against the upload, never returned.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - contentType
              - filename
              properties:
                contentType:
                  type: string
                filename:
                  minLength: 1
                  maxLength: 255
                  pattern: ^[^/\\<>:"|?*\x00-\x1f]+$
                  type: string
                workspaceId:
                  format: uuid
                  type: string
                encrypted:
                  type: boolean
      parameters:
      - schema:
          type: string
        example: Bearer <token>
        in: header
        name: Authorization
        required: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - presignedUrl
                - expiresIn
                - key
                properties:
                  presignedUrl:
                    format: uri
                    type: string
                  expiresIn:
                    type: number
                  key:
                    type: string
                  publicKey:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                description: Unauthorized
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Unauthorized
                      status:
                        type: number
                        enum:
                        - 401
                      message:
                        type: string
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                description: Forbidden
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Forbidden
                      status:
                        type: number
                        enum:
                        - 403
                      message:
                        type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                description: Not Found
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Not Found
                      status:
                        type: number
                        enum:
                        - 404
                      message:
                        type: string
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Internal Server Error
                type: object
                required:
                - error
                properties:
                  error:
                    type: object
                    required:
                    - title
                    - status
                    - message
                    properties:
                      title:
                        type: string
                        enum:
                        - Internal Server Error
                      status:
                        type: number
                        enum:
                        - 500
                      message:
                        type: string