Lunar Configuration API

Contract-based configuration management

OpenAPI Specification

lunar-configuration-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Lunar API Consumption Gateway Admin Configuration API
  description: Administrative REST API for the Lunar API Consumption Gateway (lunar-engine). This API is exposed on the ENGINE_ADMIN_PORT and provides endpoints for managing flows, policies, configuration, discovery state, and gateway health. The gateway also acts as a proxy for outbound HTTP/HTTPS API traffic on port 8000, controlled via x-lunar-scheme, x-lunar-host, and x-lunar-consumer-tag headers. This spec covers the management/admin plane.
  version: 1.0.0
  contact:
    name: Lunar Support
    url: https://docs.lunar.dev/
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: http://localhost:{adminPort}
  description: Lunar Engine Admin API (local)
  variables:
    adminPort:
      default: '8081'
      description: Admin port set via ENGINE_ADMIN_PORT environment variable
tags:
- name: Configuration
  description: Contract-based configuration management
paths:
  /configuration:
    post:
      operationId: applyConfiguration
      summary: Apply contract-based configuration
      description: Applies a contract-based configuration operation (get or set) to the gateway. Supports reading and writing gateway configuration via a structured contract payload. Triggers flows reload on write operations.
      tags:
      - Configuration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractPayload'
      responses:
        '200':
          description: Configuration applied successfully, returns response payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JSONFileResponse'
        '400':
          description: Failed to decode or parse incoming data, or no data provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Failed to reload flows after config change
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '423':
          description: Another configuration request is already in progress
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error applying or marshalling configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    JSONFileResponse:
      type: object
      description: Wrapper response containing JSON file content as a string
      properties:
        data:
          type: string
          description: JSON file contents serialized as a string
      required:
      - data
    ContractPayload:
      type: object
      description: Contract-based configuration payload for the /configuration endpoint. Supports get and set operations on gateway configuration resources.
      additionalProperties: true
    ErrorResponse:
      type: object
      description: Error response with message and optional error detail
      properties:
        msg:
          type: string
          description: Human-readable error message
        error:
          type: string
          description: Underlying error string
      required:
      - msg
externalDocs:
  description: Lunar API Gateway Documentation
  url: https://docs.lunar.dev/api-gateway/get-started/welcome-to-lunar/