Alation Lineage API

REST API for managing data lineage and dataflow objects in Alation. Supports creating, retrieving, updating, and deleting lineage paths between catalog objects.

OpenAPI Specification

alation-lineage-openapi.yaml Raw ↑
openapi: 3.0.3
info:
  title: Alation Lineage API
  description: >-
    REST API for managing data lineage and dataflow objects in the Alation
    data intelligence platform. Supports creating, retrieving, updating,
    and deleting lineage paths and dataflow objects.
  version: 1.0.0
  contact:
    name: Alation Developer Support
    url: https://developer.alation.com
servers:
  - url: https://{instance}/api/v1
    description: Alation instance
    variables:
      instance:
        default: your-alation-instance.com
security:
  - BearerToken: []
tags:
  - name: Dataflows
    description: Manage dataflow lineage objects
  - name: Lineage
    description: Retrieve lineage paths between catalog objects
paths:
  /dataflow/:
    get:
      operationId: listDataflows
      summary: List dataflows
      description: Returns a list of all dataflow objects.
      tags:
        - Dataflows
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of dataflow objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataflowList'
        '401':
          description: Unauthorized
    post:
      operationId: createDataflow
      summary: Create a dataflow
      description: Creates a new dataflow object representing a lineage path.
      tags:
        - Dataflows
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataflowRequest'
      responses:
        '201':
          description: Dataflow created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataflow'
        '400':
          description: Invalid request
  /dataflow/{id}/:
    get:
      operationId: getDataflow
      summary: Get a dataflow
      description: Returns details for a specific dataflow object.
      tags:
        - Dataflows
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Dataflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataflow'
        '404':
          description: Dataflow not found
    put:
      operationId: updateDataflow
      summary: Update a dataflow
      description: Updates an existing dataflow object.
      tags:
        - Dataflows
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataflowRequest'
      responses:
        '200':
          description: Dataflow updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dataflow'
    delete:
      operationId: deleteDataflow
      summary: Delete a dataflow
      description: Deletes a dataflow object and its associated lineage paths.
      tags:
        - Dataflows
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '204':
          description: Dataflow deleted
  /lineage/:
    get:
      operationId: getLineage
      summary: Get lineage for an object
      description: Returns upstream and downstream lineage paths for a catalog object.
      tags:
        - Lineage
      parameters:
        - name: object_type
          in: query
          required: true
          description: Type of catalog object (table, attribute, etc.)
          schema:
            type: string
        - name: object_id
          in: query
          required: true
          description: ID of the catalog object
          schema:
            type: integer
        - name: direction
          in: query
          description: Lineage direction
          schema:
            type: string
            enum: [upstream, downstream, both]
            default: both
      responses:
        '200':
          description: Lineage paths
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LineageGraph'
components:
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer
  schemas:
    DataflowNode:
      type: object
      properties:
        object_type:
          type: string
          description: Type of catalog object
          enum: [table, attribute, datasource, schema, query]
        object_id:
          type: integer
          description: ID of the catalog object
    DataflowRequest:
      type: object
      required:
        - sources
        - targets
      properties:
        external_id:
          type: string
          description: External identifier for this dataflow
        title:
          type: string
          description: Display title
        description:
          type: string
        sources:
          type: array
          items:
            $ref: '#/components/schemas/DataflowNode'
        targets:
          type: array
          items:
            $ref: '#/components/schemas/DataflowNode'
    Dataflow:
      allOf:
        - $ref: '#/components/schemas/DataflowRequest'
        - type: object
          properties:
            id:
              type: integer
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
    DataflowList:
      type: array
      items:
        $ref: '#/components/schemas/Dataflow'
    LineageNode:
      type: object
      properties:
        object_type:
          type: string
        object_id:
          type: integer
        title:
          type: string
        url:
          type: string
          format: uri
    LineageEdge:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/LineageNode'
        target:
          $ref: '#/components/schemas/LineageNode'
        dataflow_id:
          type: integer
    LineageGraph:
      type: object
      properties:
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/LineageNode'
        edges:
          type: array
          items:
            $ref: '#/components/schemas/LineageEdge'