Apache Airflow Config API

The Config API from Apache Airflow — 2 operation(s) for config.

OpenAPI Specification

airflow-config-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Airflow Asset Config API
  description: Airflow API. All endpoints located under ``/api/v2`` can be used safely, are stable and backward compatible. Endpoints located under ``/ui`` are dedicated to the UI and are subject to breaking change depending on the need of the frontend. Users should not rely on those but use the public ones instead.
  version: '2'
tags:
- name: Config
paths:
  /api/v2/config:
    get:
      tags:
      - Config
      summary: Airflow Get Config
      operationId: get_config
      security:
      - OAuth2PasswordBearer: []
      - HTTPBearer: []
      parameters:
      - name: section
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Section
      - name: accept
        in: header
        required: false
        schema:
          type: string
          enum:
          - application/json
          - text/plain
          - '*/*'
          default: '*/*'
          title: Accept
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config'
            text/plain:
              schema:
                type: string
                example: '[core]

                  dags_folder = /opt/airflow/dags

                  base_log_folder = /opt/airflow/logs


                  [smtp]

                  smtp_host = localhost

                  smtp_mail_from = airflow@example.com

                  '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Not Found
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Not Acceptable
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/v2/config/section/{section}/option/{option}:
    get:
      tags:
      - Config
      summary: Airflow Get Config Value
      operationId: get_config_value
      security:
      - OAuth2PasswordBearer: []
      - HTTPBearer: []
      parameters:
      - name: section
        in: path
        required: true
        schema:
          type: string
          title: Section
      - name: option
        in: path
        required: true
        schema:
          type: string
          title: Option
      - name: accept
        in: header
        required: false
        schema:
          type: string
          enum:
          - application/json
          - text/plain
          - '*/*'
          default: '*/*'
          title: Accept
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Config'
            text/plain:
              schema:
                type: string
                example: '[core]

                  dags_folder = /opt/airflow/dags

                  base_log_folder = /opt/airflow/logs

                  '
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Not Found
        '406':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPExceptionResponse'
          description: Not Acceptable
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Config:
      properties:
        sections:
          items:
            $ref: '#/components/schemas/ConfigSection'
          type: array
          title: Sections
      additionalProperties: false
      type: object
      required:
      - sections
      title: Config
      description: List of config sections with their options.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ConfigOption:
      properties:
        key:
          type: string
          title: Key
        value:
          anyOf:
          - type: string
          - prefixItems:
            - type: string
            - type: string
            type: array
            maxItems: 2
            minItems: 2
          title: Value
      additionalProperties: false
      type: object
      required:
      - key
      - value
      title: ConfigOption
      description: Config option.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ConfigSection:
      properties:
        name:
          type: string
          title: Name
        options:
          items:
            $ref: '#/components/schemas/ConfigOption'
          type: array
          title: Options
      additionalProperties: false
      type: object
      required:
      - name
      - options
      title: ConfigSection
      description: Config Section Schema.
    HTTPExceptionResponse:
      properties:
        detail:
          anyOf:
          - type: string
          - additionalProperties: true
            type: object
          title: Detail
      type: object
      required:
      - detail
      title: HTTPExceptionResponse
      description: HTTPException Model used for error response.
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      description: To authenticate Airflow API requests, clients must include a JWT (JSON Web Token) in the Authorization header of each request. This token is used to verify the identity of the client and ensure that they have the appropriate permissions to access the requested resources. You can use the endpoint ``POST /auth/token`` in order to generate a JWT token. Upon successful authentication, the server will issue a JWT token that contains the necessary information (such as user identity and scope) to authenticate subsequent requests. To learn more about Airflow public API authentication, please read https://airflow.apache.org/docs/apache-airflow/stable/security/api.html.
      flows:
        password:
          scopes: {}
          tokenUrl: /auth/token
    HTTPBearer:
      type: http
      scheme: bearer