plenum
Releases Read the docs

OpenAPI Native API Gateway

Route, transform and validate requests, all configured in your OpenAPI schema.

Docker
docker run ghcr.io/thesoftwarebakery/plenum
openapi.yaml
# Standard OpenAPI — Plenum reads this natively
openapi: "3.1.0"
info:
  title: Orders API
  version: "1.0.0"

x-plenum-upstream:
  kind: "HTTP"
  address: localhost
  port: 3001

x-plenum-interceptor:
  - module: "internal:validate-request"
    hook: on_request
    function: validateRequest
  - module: "./interceptors/auth.js"
    hook: on_request_headers
    function: auth

paths:
  /orders:
    post:
      summary: Create order

How Plenum reads your config

Keep your OpenAPI spec clean with overlays and interceptors

Plenum loads your OpenAPI file, applies environment overlays, and wires in Node.js interceptors and plugins, all from the same directory.

openapi.yaml
# Plenum reads x-plenum-* extensions natively
openapi: "3.1.0"
info:
  title: Orders API
  version: "1.0.0"

x-plenum-upstream:
  kind: "HTTP"
  address: localhost
  port: 3001

x-plenum-interceptor:
  - module: "internal:validate-request"
    hook: on_request
    function: validateRequest
  - module: "./interceptors/auth.js"
    hook: on_request_headers
    function: auth

paths:
  /orders:
    post:
      summary: Create order
      requestBody:
        required: true