Lunar · Schema
Lunar Flows Configuration
Schema for Lunar Gateway flow-based traffic configuration. Flows define how outbound API traffic is intercepted, shaped, and governed through the Lunar proxy.
API ManagementAPI GatewayAI GatewayMCP GatewayRate LimitingQuota EnforcementAPI MonetizationTraffic ManagementAPI GovernanceCost ControlsObservability
Properties
| Name | Type | Description |
|---|---|---|
| flows | array | List of flow definitions applied to matching API traffic |
| processors | object | Reusable processor definitions referenced by flows |
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/api-evangelist/lunar/main/json-schema/lunar-flows-configuration.json",
"title": "Lunar Flows Configuration",
"description": "Schema for Lunar Gateway flow-based traffic configuration. Flows define how outbound API traffic is intercepted, shaped, and governed through the Lunar proxy.",
"type": "object",
"properties": {
"flows": {
"type": "array",
"description": "List of flow definitions applied to matching API traffic",
"items": {
"$ref": "#/definitions/Flow"
}
},
"processors": {
"type": "object",
"description": "Reusable processor definitions referenced by flows",
"additionalProperties": {
"$ref": "#/definitions/Processor"
}
}
},
"definitions": {
"Flow": {
"type": "object",
"description": "A named flow that matches API requests and applies processing steps",
"required": ["id"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this flow"
},
"filter": {
"$ref": "#/definitions/FlowFilter",
"description": "Conditions that determine which requests this flow applies to"
},
"request": {
"type": "array",
"description": "Processing steps applied to matching requests",
"items": {
"$ref": "#/definitions/FlowStep"
}
},
"response": {
"type": "array",
"description": "Processing steps applied to matching responses",
"items": {
"$ref": "#/definitions/FlowStep"
}
}
}
},
"FlowFilter": {
"type": "object",
"description": "Filter criteria for matching API traffic to a flow",
"properties": {
"url": {
"type": "object",
"description": "URL-based matching criteria",
"properties": {
"host": {
"type": "string",
"description": "Target host to match (e.g., api.stripe.com)"
},
"path": {
"type": "string",
"description": "URL path pattern to match (supports wildcards)"
}
}
},
"method": {
"oneOf": [
{
"type": "string",
"enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]
},
{
"type": "array",
"items": {
"type": "string",
"enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]
}
}
],
"description": "HTTP method(s) to match"
}
}
},
"FlowStep": {
"type": "object",
"description": "A single processing step in a flow (request or response)",
"required": ["processor"],
"properties": {
"processor": {
"type": "object",
"description": "Reference to a processor and its parameter bindings",
"required": ["name"],
"properties": {
"name": {
"type": "string",
"description": "Name of the processor to invoke"
},
"parameters": {
"type": "array",
"description": "Parameter bindings for the processor",
"items": {
"$ref": "#/definitions/ProcessorParameter"
}
}
}
},
"condition": {
"type": "string",
"description": "Optional condition expression determining when this step runs"
}
}
},
"ProcessorParameter": {
"type": "object",
"description": "A key-value parameter binding for a processor",
"required": ["key", "value"],
"properties": {
"key": {
"type": "string",
"description": "Parameter name"
},
"value": {
"description": "Parameter value (string, number, boolean, or object)"
}
}
},
"Processor": {
"type": "object",
"description": "A reusable processor definition",
"required": ["processor"],
"properties": {
"processor": {
"type": "string",
"description": "Built-in or custom processor type identifier"
},
"parameters": {
"type": "array",
"description": "Default parameters for this processor",
"items": {
"$ref": "#/definitions/ProcessorParameter"
}
}
}
}
}
}