---
openapi: 3.0.3
info:
  title: Dashjoin API
  termsOfService: https://dashjoin.com/legal.html#privacy
  contact:
    name: Dashjoin
    url: https://dashjoin.com
    email: info@dashjoin.com
  version: 1.0.0
security:
- SecurityScheme: []
- Basic_Auth: []
tags:
- name: default
  description: Dashjoin Platform API
paths:
  /*:
    get:
      responses:
        "204":
          description: No Content
  /rest/database/all/{database}/{table}:
    post:
      tags:
      - Data
      summary: like read but returns all matches in a list (arguments are and-connected
        column equalities)
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: descending
        in: query
        schema:
          type: boolean
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: offset
        in: query
        schema:
          format: int32
          type: integer
      - name: sort
        in: query
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        default:
          description: Tabular result (list of JSON objects)
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/crud/{database}/{table}:
    get:
      tags:
      - Data
      summary: like read but returns all matches in a list (arguments are and-connected
        column equalities)
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: arguments
        in: query
        schema:
          type: string
      - name: descending
        in: query
        schema:
          type: boolean
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: offset
        in: query
        schema:
          format: int32
          type: integer
      - name: sort
        in: query
        schema:
          type: string
      responses:
        default:
          description: Tabular result (list of JSON objects)
    put:
      tags:
      - Data
      summary: creates a new instance in the table associated with the table
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        default:
          description: "Returns the global identifier of the new record (dj/database/table/ID).\
            \ The segments are URL encoded. ID is the primary key. For composite primary\
            \ keys, ID is pk1/../pkn where pki is URL encoded again."
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/crud/{database}/{table}/{objectId1}:
    get:
      tags:
      - Data
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Primary key of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        default:
          description: JSON object representing the record
    post:
      tags:
      - Data
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Primary key of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        "201":
          description: Created
    delete:
      tags:
      - Data
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Primary key of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        "204":
          description: No Content
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/crud/{database}/{table}/{objectId1}/{objectId2}:
    get:
      tags:
      - Data
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        default:
          description: JSON object representing the record
    post:
      tags:
      - Data
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        "201":
          description: Created
    delete:
      tags:
      - Data
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        "204":
          description: No Content
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/crud/{database}/{table}/{objectId1}/{objectId2}/{objectId3}:
    get:
      tags:
      - Data
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        default:
          description: JSON object representing the record
    post:
      tags:
      - Data
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        "201":
          description: Created
    delete:
      tags:
      - Data
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        "204":
          description: No Content
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/crud/{database}/{table}/{objectId1}/{objectId2}/{objectId3}/{objectId4}:
    get:
      tags:
      - Data
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId4
        in: path
        description: Composite primary key 4 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        default:
          description: JSON object representing the record
    post:
      tags:
      - Data
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId4
        in: path
        description: Composite primary key 4 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        "201":
          description: Created
    delete:
      tags:
      - Data
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId4
        in: path
        description: Composite primary key 4 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      responses:
        "204":
          description: No Content
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/incoming/{database}/{table}/{objectId1}:
    get:
      tags:
      - Data
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Primary key of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: offset
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: List of incoming links
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/incoming/{database}/{table}/{objectId1}/{objectId2}:
    get:
      tags:
      - Data
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: offset
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: List of incoming links
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/incoming/{database}/{table}/{objectId1}/{objectId2}/{objectId3}:
    get:
      tags:
      - Data
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: offset
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: List of incoming links
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/incoming/{database}/{table}/{objectId1}/{objectId2}/{objectId3}/{objectId4}:
    get:
      tags:
      - Data
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Composite primary key 1 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId2
        in: path
        description: Composite primary key 2 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId3
        in: path
        description: Composite primary key 3 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: objectId4
        in: path
        description: Composite primary key 4 of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: offset
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: List of incoming links
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/keys/{database}/{table}:
    get:
      tags:
      - Data
      summary: return limit keys whose string representation begin with prefix
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      - name: prefix
        in: query
        schema:
          type: string
      responses:
        default:
          description: key value and string display name (list of JSON objects)
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/list/{database}/{table}:
    post:
      tags:
      - Data
      summary: "like read, but returns all keys posted"
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: ignoreMissing
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
      responses:
        default:
          description: Map of objectId to JSON object representing the record
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/query/{database}/{queryId}:
    post:
      tags:
      - Data
      summary: "looks up the query with the given ID in the catalog, finds the right\
        \ database, inserts the arguments, runs the query and returns the result"
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: queryId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        default:
          description: Tabular query result (list of JSON objects)
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
  /rest/database/queryGraph/{database}/{queryId}:
    post:
      tags:
      - Data
      summary: "looks up the query with the given ID in the catalog, finds the right\
        \ database, inserts the arguments, runs the query and returns the result"
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: queryId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        default:
          description: Tabular query result (list of JSON objects)
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
  /rest/database/queryMeta/{database}/{queryId}:
    post:
      tags:
      - Data
      summary: "looks up the query with the given ID in the catalog, finds the right\
        \ database, inserts the arguments, and returns the result metadata"
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: queryId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        default:
          description: Map of column name (as they appear when running the query)
            to Property describing the column
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
  /rest/database/search/{database}/{search}:
    get:
      tags:
      - Data
      summary: performs a full text search on all databases
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: search
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: Tabular query result (list of JSON objects)
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
  /rest/database/search/{database}/{table}/{search}:
    get:
      tags:
      - Data
      summary: performs a full text search on all databases
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: search
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: Tabular query result (list of JSON objects)
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/search/{search}:
    get:
      tags:
      - Data
      summary: performs a full text search on all databases
      parameters:
      - name: search
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          format: int32
          type: integer
      responses:
        default:
          description: Tabular query result (list of JSON objects)
  /rest/database/tableLabels:
    get:
      tags:
      - Data
      summary: returns all table IDs and the corresponding labels from all databases
        known to the system
      responses:
        default:
          description: List of table ID
  /rest/database/tables:
    get:
      tags:
      - Data
      summary: returns all table IDs from all databases known to the system
      responses:
        default:
          description: List of table ID
  /rest/database/traverse/{database}/{table}/{objectId1}:
    get:
      tags:
      - Data
      summary: "starting at the object defined by the given globally unique identifier,\
        \ reads the object related via fk"
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Primary key of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: fk
        in: query
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/database/traverse/{database}/{table}/{objectId1}/{objectId2}:
    get:
      tags:
      - Data
      summary: "starting at the object defined by the given globally unique identifier,\
        \ reads the object related via fk"
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      - name: objectId1
        in: path
        description: Primary key of the record to operate on
        required: true
        schema:
          type: string
        example: 1
      - name: table
        in: path
        description: table name to run the operation on
        required: true
        schema:
          type: string
        example: EMPLOYEES
      - name: fk
        in: query
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
    parameters:
    - name: database
      in: path
      description: database name to run the operation on
      required: true
      schema:
        type: string
      example: northwind
    - name: table
      in: path
      description: table name to run the operation on
      required: true
      schema:
        type: string
      example: EMPLOYEES
  /rest/expression:
    post:
      tags:
      - Expression Service
      summary: evaluates the expression with the data context
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressionAndData'
      responses:
        default:
          description: evaluation result
  /rest/expression-preview:
    post:
      tags:
      - Expression Preview Service
      summary: evaluates the expression with the data context
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExpressionCursorData'
      responses:
        default:
          description: evaluation result
  /rest/expression/{expression}:
    get:
      tags:
      - Expression Service
      summary: evaluates the expression with the data context
      parameters:
      - name: expression
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: evaluation result
  /rest/fs/home:
    options:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
    head:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
  /rest/fs/home/{path}:
    get:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
    put:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
    delete:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
    options:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
    head:
      tags:
      - Web Dav Service
      requestBody:
        content:
          application/json:
            schema:
              format: binary
              type: string
      responses:
        "200":
          description: OK
  /rest/function/{function}:
    post:
      tags:
      - Function Service
      summary: runs a predefined function with the provided argument
      parameters:
      - name: function
        in: path
        description: name of the function to run
        required: true
        schema:
          type: string
        example: echo
      requestBody:
        content:
          application/json:
            schema: {}
      responses:
        default:
          description: Returns the function result
  /rest/functionStream/{function}:
    post:
      tags:
      - Function Stream Service
      summary: streams a predefined function with the provided argument
      parameters:
      - name: function
        in: path
        description: name of the function to run
        required: true
        schema:
          type: string
        example: echo
      requestBody:
        content:
          application/json:
            schema: {}
      responses:
        default:
          description: Returns the function result
  /rest/jsonapi/{database}:
    get:
      tags:
      - Json Api
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: {}
  /rest/jsonapi/{database}/{type}:
    get:
      tags:
      - Json Api
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: filter
        in: query
        schema:
          type: string
      - name: "page[limit]"
        in: query
        schema:
          format: int32
          type: integer
      - name: "page[offset]"
        in: query
        schema:
          format: int32
          type: integer
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: {}
  /rest/jsonapi/{database}/{type}/{id}:
    get:
      tags:
      - Json Api
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: {}
  /rest/manage/append:
    post:
      tags:
      - Manage
      summary: Append data into existing tables
      parameters:
      - name: database
        in: query
        description: database name to run the operation on
        schema:
          type: string
        example: northwind
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
      responses:
        "201":
          description: Created
  /rest/manage/create:
    post:
      tags:
      - Manage
      summary: Create tables and insert data
      parameters:
      - name: database
        in: query
        description: database name to run the operation on
        schema:
          type: string
        example: northwind
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
      responses:
        "201":
          description: Created
  /rest/manage/createStubs:
    get:
      tags:
      - Manage
      summary: Reads the openapi.yaml configured and creates function stubs
      responses:
        "204":
          description: No Content
  /rest/manage/createTable/{database}:
    post:
      tags:
      - Manage
      summary: Creates a table according to the given JSON schema
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      requestBody:
        content:
          text/plain:
            schema:
              type: string
      responses:
        "201":
          description: Created
  /rest/manage/export/{database}:
    get:
      tags:
      - Manage
      summary: exports the contents of the database
      parameters:
      - name: database
        in: path
        description: database name to run the operation on
        required: true
        schema:
          type: string
        example: northwind
      responses:
        default:
          description: map of db tables
  /rest/manage/getConfigurableFunctions:
    get:
      tags:
      - Manage
      summary: returns all configurable function implementation classes found on the
        backend's service loader classpath
      responses:
        default:
          description: List of class names
  /rest/manage/getDatabases:
    get:
      tags:
      - Manage
      summary: returns all DB implementation classes found on the backend's service
        loader classpath
      responses:
        default:
          description: List of class names
  /rest/manage/getDrivers:
    get:
      tags:
      - Manage
      summary: returns all JDBC driver classes found on the backend's service loader
        classpath
      responses:
        default:
          description: List of version objects describing each driver
  /rest/manage/getFunctions:
    get:
      tags:
      - Manage
      summary: returns all action implementation classes found on the backend's service
        loader classpath
      responses:
        default:
          description: List of class names
  /rest/manage/openapi:
    get:
      tags:
      - Manage
      summary: "Reads the openapi.yaml configured and merges functions, queries, and\
        \ schemas into it"
      responses:
        "200":
          description: OK
          content:
            text/plain:
              schema:
                type: string
  /rest/manage/replace:
    post:
      tags:
      - Manage
      summary: Delete data in tables and insert new data
      parameters:
      - name: database
        in: query
        description: database name to run the operation on
        schema:
          type: string
        example: northwind
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
      responses:
        "201":
          description: Created
  /rest/manage/roles:
    get:
      tags:
      - Manage
      summary: returns the roles of the current user
      responses:
        default:
          description: list of roles
  /rest/manage/saveapi:
    get:
      tags:
      - Manage
      summary: Writes the output of /openapi back to the source
      responses:
        "204":
          description: No Content
  /rest/manage/version:
    get:
      tags:
      - Manage
      summary: returns the version of the Dashjoin platform
      responses:
        default:
          description: Version object describing the platform
  /rest/mapping/addColumn/{table}/{column}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/addTable/{table}/{newname}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: newname
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/column/{table}/{column}/{expression}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: expression
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/extractTable/{table}/{column}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/filter/{table}/{filter}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: filter
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/gather/{function}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: function
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/removeColumn/{table}/{column}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/removeTable/{table}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/renameColumn/{table}/{column}/{newname}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: newname
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/renameTable/{table}/{newname}:
    post:
      tags:
      - Mapping Service
      parameters:
      - name: newname
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/mapping/reset:
    post:
      tags:
      - Mapping Service
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Result'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
  /rest/odata/{database}/{type}:
    get:
      tags:
      - Odata Api
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: $filter
        in: query
        schema:
          type: string
      - name: $orderby
        in: query
        schema:
          type: string
      - name: $select
        in: query
        schema:
          type: string
      - name: $skip
        in: query
        schema:
          format: int32
          type: integer
      - name: $top
        in: query
        schema:
          format: int32
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
  /rest/odata/{database}/{type}/{field}:
    get:
      tags:
      - Odata Api
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: field
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: $filter
        in: query
        schema:
          type: string
      - name: $orderby
        in: query
        schema:
          type: string
      - name: $select
        in: query
        schema:
          type: string
      - name: $skip
        in: query
        schema:
          format: int32
          type: integer
      - name: $top
        in: query
        schema:
          format: int32
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
  /rest/odata/{database}/{type}/{field}/$value:
    get:
      tags:
      - Odata Api
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: field
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: $filter
        in: query
        schema:
          type: string
      - name: $orderby
        in: query
        schema:
          type: string
      - name: $select
        in: query
        schema:
          type: string
      - name: $skip
        in: query
        schema:
          format: int32
          type: integer
      - name: $top
        in: query
        schema:
          format: int32
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
components:
  schemas:
    AbstractRequest:
      title: Base class for all requests
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        col:
          title: the existing column to operate on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
    AddColumnRequest:
      title: "AddColumnRequest: instrucuts the editor to add / join a column"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        col:
          title: the existing column to operate on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        add:
          title: the column to add
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        preview:
          title: the preview data (not used by the backend and only included for JSON
            compatibility)
    Choice:
      title: "Choice: represents a foreign key choice for select UIs"
      type: object
      properties:
        name:
          title: string representation
          type: string
        value:
          title: key value
    Col:
      title: "Col: identifies a column"
      type: object
      properties:
        column:
          title: column name
          type: string
        table:
          title: "name of the table (omit quotes, schema and database)"
          type: string
    ColCondition:
      title: "ColCondition: defines a filter condition for a column"
      type: object
      properties:
        col:
          title: The column to apply the filter on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        condition:
          title: "The filter condition in the native query syntax, assuming the column\
            \ is the left operand. Null if no filter is to be set"
          type: string
          example: < 4
    DistinctRequest:
      title: "DistinctRequest: instructs the editor to toggle distinct and change\
        \ limit"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        distinct:
          title: Distinct value to set
          type: boolean
        querylimit:
          format: int32
          title: "limit to set in the query, null means no limit"
          type: integer
    ExpressionAndData:
      type: object
      properties:
        expression:
          title: jsonata expression
          type: string
          example: $.x
        data:
          example:
            x: 1
            "y": 2
    ExpressionCursorData:
      type: object
      properties:
        expression:
          title: jsonata expression
          type: string
          example: $.x
        data:
          example:
            x: 1
            "y": 2
        foreach:
          type: boolean
    InitialQueryRequest:
      title: "InitialQueryRequest: JSON input for getInitialQuery"
      type: object
      properties:
        table:
          title: ID of the table that is the basis for the initial query
          type: string
          example: dj/northwind/EMPLOYEES
        limit:
          format: int32
          title: Limits the result to 'limit' rows
          type: integer
    Mapping:
      type: object
      properties:
        sourceTable:
          type: string
        extractColumn:
          type: string
        extractKey:
          type: string
        pk:
          type: string
        rowMapping:
          type: object
          additionalProperties:
            type: string
        rowFilter:
          type: string
    MoveColumnRequest:
      title: "MoveColumnRequest: instructs the editor to move a column projection"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        col:
          title: the existing column to operate on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        position:
          format: int32
          title: The new column position
          type: integer
    Origin:
      title: "Origin: represents an incoming (fk) link to an object"
      type: object
      properties:
        id:
          title: ID of the record where the link originates
          type: object
          allOf:
          - $ref: '#/components/schemas/Resource'
        pk:
          title: ID of the pk column
          type: string
        fk:
          title: ID of the fk column
          type: string
    Property:
      title: "Property: JSON schema description of a property"
      type: object
      properties:
        ID:
          title: Primary key
          type: string
          example: dj/northwind/EMPLOYEES/LAST_NAME
        parent:
          title: Table the property is defined in
          type: string
          example: dj/northwind/EMPLOYEE
        name:
          title: name of the property
          type: string
        pkpos:
          format: int32
          title: "If the property is the primary key, this is 0. If it is part of\
            \ a composite key, it is 0,1,2,.. Null if this is no key."
          type: integer
        ref:
          title: ID of the property / column this foreign key is pointing to. Null
            if the column is no foreign key
          type: string
          example: dj/northwind/EMPLOYEE/EMPLOYEE_ID
        type:
          title: JSON type of the property
          type: string
          example: number
        title:
          title: JSON schema title
          type: string
        comment:
          type: string
        description:
          title: JSON schema description
          type: string
        widget:
          title: JSON schema form widget to use for visualization
          type: string
        widgetType:
          title: JSON schema form custom widget
          type: string
        choicesUrl:
          title: JSON schema form option choices URL
          type: string
        choicesVerb:
          title: JSON schema form option choices verb
          type: string
        jsonata:
          title: JSON schema form option choices jsonata
          type: string
        displayWith:
          title: customize select / autocomplete
          type: string
        items:
          title: JSON schema array type
          type: object
          allOf:
          - $ref: '#/components/schemas/Property'
        properties:
          title: JSON schema object properties
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Property'
        additionalProperties:
          title: JSON schema additional properties
          type: object
          allOf:
          - $ref: '#/components/schemas/Property'
        switch:
          title: JSON schema form switch
          type: string
        case:
          title: JSON schema form case
          type: array
          items:
            type: string
        enum:
          title: JSON schema enum
          type: array
          items:
            type: string
        $ref:
          title: JSON schema ref
          type: string
        layout:
          title: JSON schema form layout
          type: string
        dbType:
          title: native database type of the property
          type: string
        readOnly:
          title: JSON schema readOnly
          type: boolean
        createOnly:
          title: JSON schema createOnly
          type: boolean
        required:
          title: JSON schema required
          type: boolean
        examples:
          title: JSON schema examples
          type: array
          items:
            type: string
        style:
          title: JSON schema form style
        choices:
          title: JSON schema form choices
          type: array
          items:
            type: string
        format:
          title: field string format
          type: string
        errorMessage:
          title: custom validation error message
          type: string
    QueryColumn:
      title: "QueryColumn: describes a table result column"
      type: object
      properties:
        columnID:
          title: The ID of the property. Null if the column is computed
          type: string
          example: dj/northwind/EMPLOYEES/LAST_NAME
        displayName:
          title: The projection name. This is also the key in the table row objects
          type: string
        col:
          title: The column object describing the column. Null if the column is computed
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        type:
          title: "JSON type of the column (number, string, object, array)"
          type: string
          example: number
        dbType:
          title: Native type in the source database
          type: string
        keyTable:
          title: "if the column is a pk, keyTable contains the table name (same as\
            \ col.table). If it is a fk, contains the name of the referenced table"
          type: string
        database:
          title: ID of the database we'Re operating on
          type: string
          example: dj/northwind
        where:
          title: Filter applied on the column. Null if no filter is present
          type: string
          example: < 4
        groupBy:
          title: Aggregation applied on the column. Null if no aggregation is present
          type: string
          example: GROUP BY
        prop:
          title: Optional column schema
          type: object
          allOf:
          - $ref: '#/components/schemas/Property'
    QueryDatabase:
      title: "QueryDatabase: Base class for several request and response structures"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
    QueryResponse:
      title: "QueryResponse: returned by all query editor calls"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        data:
          title: "Query result as a list of objects, each representing one row"
          type: array
          items:
            type: object
            additionalProperties: {}
        metadata:
          title: List of column metadata
          type: array
          items:
            $ref: '#/components/schemas/QueryColumn'
        joinOptions:
          title: Possible columns that can be joined to the current query
          type: array
          items:
            $ref: '#/components/schemas/AddColumnRequest'
        fieldNames:
          title: The result table's column names from left to right
          type: array
          items:
            type: string
        compatibilityError:
          title: "In case the query is correct but its structure is outside of the\
            \ query editor's support, the reason why it is not supported is listed\
            \ here. Allows the UI to still display the results but disable editing\
            \ controls."
          type: string
        distinct:
          title: Distinct query
          type: boolean
        querylimit:
          format: int32
          title: "limit set in the query, null means no limit"
          type: integer
    RemoveColumnRequest:
      title: "RemoveColumnRequest: instructs the editor to remove a column projection"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        col:
          title: the existing column to operate on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
    RenameRequest:
      title: "RenameRequest: instructs the editor to rename a column"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        col:
          title: the existing column to operate on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        name:
          title: The new column name
          type: string
    Resource:
      title: "Resource: represents an object ID"
      type: object
      properties:
        database:
          title: name of the database
          type: string
        table:
          title: name of the table
          type: string
        pk:
          title: primary keys
          type: array
          items: {}
    Result:
      type: object
      properties:
        source:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              additionalProperties: {}
        result:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              additionalProperties: {}
        mappings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Mapping'
        columns:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        datatypes:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        warning:
          type: string
        createSchema:
          type: boolean
    SearchResult:
      title: "SearchResult: represents a search result"
      type: object
      properties:
        id:
          title: ID of the record that matches
          type: object
          allOf:
          - $ref: '#/components/schemas/Resource'
        column:
          title: name of the column containing the match
          type: string
        match:
          title: matching value
    SetWhereRequest:
      title: "SetWhereRequest: instructs the editor to set filter for the table projections"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        cols:
          title: One filter definition for each table column
          type: array
          items:
            $ref: '#/components/schemas/ColCondition'
    SortRequest:
      title: "SortRequest: instructs the editor to sort by a column"
      type: object
      properties:
        query:
          title: The query to edit / the resulting query (in case we're in a response
            context)
          type: string
        database:
          title: ID of the database to operate on
          type: string
          example: dj/northwind
        limit:
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
          type: integer
        col:
          title: the existing column to operate on
          type: object
          allOf:
          - $ref: '#/components/schemas/Col'
        order:
          title: "sort order (null - empty string, asc, desc)"
          type: string
    SubscriptionInfo:
      title: "SubscriptionInfo: details about the subscription"
      type: object
      properties:
        subscriptionName:
          title: Active subscription
          type: string
        subscriptionManageUrl:
          title: URL to manage the subscription
          type: string
        subscriptionInvoiceUrl:
          title: URL to view the last invoice
          type: string
        stripeId:
          title: Stripe ID
          type: string
    SystemInfo:
      title: "SystemInfo: holds the version info and system status"
      type: object
      properties:
        version:
          title: Semantic version string
          type: string
        title:
          title: Software / library name
          type: string
        vendor:
          title: Vendor company name
          type: string
        name:
          title: Software / library package name
          type: string
        buildTime:
          title: Build time
          type: string
        runtime:
          title: Runtime
          type: string
        workingDir:
          title: Runtime working directory
          type: string
        home:
          title: Dashjoin home directory
          type: string
        appurl:
          title: App Repository
          type: string
        status:
          title: System status
          type: string
        uptime:
          format: int64
          title: System uptime in milliseconds
          type: integer
    SystemInfo1:
      title: "SystemInfo: holds the version info and system status"
      type: object
      properties:
        version:
          title: Semantic version string
          type: string
        title:
          title: Software / library name
          type: string
        vendor:
          title: Vendor company name
          type: string
        name:
          title: Software / library package name
          type: string
        buildTime:
          title: Build time
          type: string
        runtime:
          title: Runtime
          type: string
        workingDir:
          title: Runtime working directory
          type: string
        home:
          title: Dashjoin home directory
          type: string
        appurl:
          title: App Repository
          type: string
        status:
          title: System status
          type: string
        uptime:
          format: int64
          title: System uptime in milliseconds
          type: integer
    UserProfile:
      title: "UserProfile: info about the user"
      type: object
      properties:
        username:
          title: Username
          type: string
        email:
          title: EMail
          type: string
        roles:
          title: Roles
          type: array
          items:
            type: string
        settings:
          title: Various settings
          type: object
          additionalProperties: {}
    Version:
      title: "Version: holds the version and vendor info from the jar's manifest"
      type: object
      properties:
        version:
          title: Semantic version string
          type: string
        title:
          title: Software / library name
          type: string
        vendor:
          title: Vendor company name
          type: string
        name:
          title: Software / library package name
          type: string
        buildTime:
          title: Build time
          type: string
        runtime:
          title: Runtime
          type: string
        workingDir:
          title: Runtime working directory
          type: string
        home:
          title: Dashjoin home directory
          type: string
        appurl:
          title: App Repository
          type: string
  securitySchemes:
    Basic_Auth:
      type: http
      scheme: basic
    SecurityScheme:
      type: http
      description: Authentication
      scheme: bearer
      bearerFormat: JWT
