Artie Source Readers API

The Source Readers API from Artie — 5 operation(s) for source readers.

OpenAPI Specification

artie-source-readers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: External API endpoints for Artie
  title: Artie Column Hashing Salts Source Readers API
  version: v1.0.51
servers:
- url: https://api.artie.com
security:
- ApiKey: []
tags:
- name: Source Readers
paths:
  /source-readers:
    get:
      description: Lists all source readers for the authenticated company.
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/PayloadsSourceReader'
                type: array
          description: OK
        '500':
          description: Internal Server Error
      summary: List source readers
      tags:
      - Source Readers
    post:
      description: Creates a new source reader for the authenticated company.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouterSourceReaderCreateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadsSourceReader'
          description: OK
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: Create a source reader
      tags:
      - Source Readers
  /source-readers/{uuid}:
    delete:
      description: Permanently deletes a source reader by UUID. The source reader must not be associated with any active pipelines before deletion.
      parameters:
      - in: path
        name: uuid
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: Delete a source reader
      tags:
      - Source Readers
    get:
      description: Retrieves the details of a source reader by UUID, including its configuration, status, connector association, and table settings.
      parameters:
      - in: path
        name: uuid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadsSourceReader'
          description: OK
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      summary: Get a source reader
      tags:
      - Source Readers
    post:
      description: Updates an existing source reader by UUID. You can modify the name, settings, table configuration, and shared status of the source reader.
      parameters:
      - in: path
        name: uuid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayloadsSourceReader'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadsSourceReader'
          description: OK
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: Update a source reader
      tags:
      - Source Readers
  /source-readers/{uuid}/deploy:
    post:
      description: Deploys a shared source reader to the data plane. The source reader must be shared and pass validation before it can be deployed.
      parameters:
      - in: path
        name: uuid
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: Deploy a source reader
      tags:
      - Source Readers
  /source-readers/{uuid}/status:
    post:
      description: Changes the status of a shared source reader (e.g. running, paused). Only shared source readers are supported; for non-shared source readers, use the pipeline status endpoint instead.
      parameters:
      - in: path
        name: uuid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouterSourceReaderUpdateStatusRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayloadsSourceReader'
          description: OK
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: Update source reader status
      tags:
      - Source Readers
  /source-readers/validate-unsaved:
    post:
      description: Validates a source reader configuration without persisting it.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouterSourceReaderValidateUnsavedRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouterSourceReaderValidateUnsavedResponse'
          description: OK
        '204':
          description: No Content
        '500':
          description: Internal Server Error
      summary: Validate an unsaved source reader
      tags:
      - Source Readers
components:
  schemas:
    RouterSourceReaderUpdateStatusRequest:
      properties:
        status:
          $ref: '#/components/schemas/EnumsSourceReaderStatus'
      required:
      - status
      type: object
    PayloadsSourceReaderSettingsPayload:
      properties:
        archiveLogPassword:
          type:
          - 'null'
          - string
        archiveLogPath:
          type:
          - 'null'
          - string
        azureBlobStorageConfig:
          $ref: '#/components/schemas/PayloadsAzureBlobStorageConfig'
        backfillBatchSize:
          minimum: 0
          type:
          - 'null'
          - integer
        compositeTypesAsText:
          type:
          - 'null'
          - boolean
        databasesToSync:
          items:
            type: string
          type:
          - 'null'
          - array
        disableAutoFetchTables:
          type:
          - 'null'
          - boolean
        disableFullDocumentBeforeChange:
          type:
          - 'null'
          - boolean
        disableNoCursorTimeout:
          type:
          - 'null'
          - boolean
        enableClientSideFullDocumentLookup:
          type:
          - 'null'
          - boolean
        enableHeartbeats:
          type:
          - 'null'
          - boolean
        enableSchemaHistoryCompaction:
          type:
          - 'null'
          - boolean
        maxConnIdleTimeSeconds:
          type:
          - 'null'
          - integer
        messageCompression:
          enum:
          - gzip
          - ''
          type:
          - 'null'
          - string
        mssqlChangeTrackingConcurrency:
          type:
          - 'null'
          - integer
        mssqlChangeTrackingMaxIdleConns:
          type:
          - 'null'
          - integer
        mssqlChangeTrackingPollIntervalMs:
          minimum: 0
          type:
          - 'null'
          - integer
        mssqlReplicationMethod:
          type:
          - 'null'
          - string
        oneTopicPerSchema:
          type:
          - 'null'
          - boolean
        publicationAutoCreateMode:
          type:
          - 'null'
          - string
        publicationNameOverride:
          type:
          - 'null'
          - string
        publishViaPartitionRoot:
          type:
          - 'null'
          - boolean
        replicationSlotOverride:
          type:
          - 'null'
          - string
        unifyAcrossDatabases:
          type:
          - 'null'
          - boolean
        unifyAcrossSchemas:
          type:
          - 'null'
          - boolean
        unifyAcrossSchemasMaxParallelism:
          maximum: 3
          minimum: 0
          type:
          - 'null'
          - integer
        unifyAcrossSchemasRegex:
          type:
          - 'null'
          - string
        useAdvanceOnPrimaryKeepAlive:
          type:
          - 'null'
          - boolean
        useNumericTypesForMoney:
          type:
          - 'null'
          - boolean
        useReaderForOracleStreaming:
          type:
          - 'null'
          - boolean
      type: object
    PayloadsSourceReaderTablesConfig:
      additionalProperties:
        $ref: '#/components/schemas/PayloadsSourceReaderTable'
      type:
      - 'null'
      - object
    EnumsSourceReaderStatus:
      enum:
      - draft
      - paused
      - running
      type: string
    RouterSourceReaderValidateUnsavedResponse:
      properties:
        error:
          type: string
      required:
      - error
      type: object
    RouterSourceReaderValidateUnsavedRequest:
      properties:
        sourceReader:
          $ref: '#/components/schemas/PayloadsSourceReader'
      required:
      - sourceReader
      type: object
    RouterSourceReaderCreateRequest:
      properties:
        connectorUUID:
          format: uuid
          type: string
        containerName:
          type: string
        dataPlaneName:
          type: string
        database:
          type: string
        isShared:
          type: boolean
        name:
          type: string
        settings:
          $ref: '#/components/schemas/PayloadsSourceReaderSettingsPayload'
        tablesConfig:
          $ref: '#/components/schemas/PayloadsSourceReaderTablesConfig'
      required:
      - connectorUUID
      type: object
    PayloadsSourceReaderTable:
      properties:
        excludeColumns:
          items:
            type: string
          type: array
        includeColumns:
          items:
            type: string
          type: array
        name:
          type: string
        schema:
          type: string
        unifyAcrossDatabases:
          type: boolean
        unifyAcrossSchemas:
          type: boolean
      type: object
    PayloadsSourceReader:
      properties:
        apiBaseURL:
          type: string
        companyUUID:
          format: uuid
          type: string
        connectorUUID:
          format: uuid
          type: string
        containerName:
          type: string
        createdAt:
          format: date-time
          type: string
        dataPlaneName:
          type: string
        database:
          type: string
        environmentUUID:
          format: uuid
          type: string
        isShared:
          type:
          - 'null'
          - boolean
        isValid:
          type: boolean
        name:
          type: string
        settings:
          $ref: '#/components/schemas/PayloadsSourceReaderSettingsPayload'
        status:
          $ref: '#/components/schemas/EnumsSourceReaderStatus'
        tablesConfig:
          $ref: '#/components/schemas/PayloadsSourceReaderTablesConfig'
        updatedAt:
          format: date-time
          type: string
        uuid:
          format: uuid
          type: string
      required:
      - uuid
      - name
      - companyUUID
      - dataPlaneName
      - environmentUUID
      - connectorUUID
      - status
      - isValid
      - database
      - containerName
      - settings
      type: object
    PayloadsAzureBlobStorageConfig:
      properties:
        accountURL:
          type: string
        containerName:
          type: string
        sasToken:
          type: string
      type: object
  securitySchemes:
    ApiKey:
      description: API key passed as a Bearer token in the Authorization header.
      scheme: bearer
      type: http