This commit is contained in:
Mateusz Gruszczyński committed 2026-10-10 20:56:36 +02:00
1 parent f213d853e2
commit 76b8bb7ee2
78 files changed
+7750 -5204

No files matched your search

+167 -3
View File
@@ -2,7 +2,7 @@
"openapi": "3.0.3",
"info": {
"title": "RustProxy Administration API",
"version": "0.30.1",
"version": "0.31.0",
"description": "Administration API for the active panel origin. Sign in through the panel; the same-origin HttpOnly cookie authenticates all private operations. Mutations also require the exact Origin, X-RustProxy-Request: 1 and a session-bound X-CSRF-Token. Loopback HTTP is the default; Settings can enable HTTPS before using a non-loopback administration bind. This document contains no live configuration or credentials. Object schemas marked extensible are summaries: full configuration validation is authoritative in Rust."
},
"servers": [
@@ -772,6 +772,25 @@
"maximum": 30,
"default": 30,
"description": "Absolute browser administrator-session lifetime in days. Applies immediately and does not require restart."
},
"panel_compression": {
"type": "object",
"description": "Negotiated compression for authenticated panel HTML and embedded CSS/JS/translation assets; takes effect without restart. At equal client q: zstd > br > gzip. Disable all for identity. Independent from public proxy response compression.",
"properties": {
"zstd": {
"type": "boolean",
"default": true
},
"br": {
"type": "boolean",
"default": true
},
"gzip": {
"type": "boolean",
"default": true
}
},
"additionalProperties": false
}
},
"additionalProperties": false
@@ -1859,6 +1878,16 @@
"type": "boolean",
"default": false,
"description": "Suppress RustProxy cache diagnostic headers on MISS/BYPASS. Cache HIT diagnostics remain governed by expose_* flags. The independently configured Via header is unaffected."
},
"http_invalidation_allowed_cidrs": {
"type": "array",
"description": "Optional IP/CIDR allowlist for HTTP BAN and PURGE on matched public vhosts. Empty disables all HTTP invalidation. Max 32 entries; /0 networks forbidden. Trusted reverse proxies must provide an authenticated forwarding chain.",
"maxItems": 32,
"items": {
"type": "string",
"maxLength": 64
},
"default": []
}
},
"additionalProperties": false
@@ -3527,6 +3556,60 @@
"type": "boolean",
"default": false,
"description": "Account-scoped sort direction for the Streams list."
},
"refresh": {
"type": "object",
"additionalProperties": false,
"description": "Account-scoped polling preferences; omitted fields use defaults. Zero disables only that source automatically.",
"properties": {
"live_enabled": {
"type": "boolean",
"default": true
},
"overview_seconds": {
"type": "integer",
"enum": [
1,
2,
5,
10
],
"default": 2
},
"traffic_seconds": {
"type": "integer",
"enum": [
0,
3,
5,
10,
30
],
"default": 5
},
"cache_seconds": {
"type": "integer",
"enum": [
0,
3,
5,
10,
30
],
"default": 5
},
"system_info_seconds": {
"type": "integer",
"enum": [
0,
15,
30,
60,
300
],
"default": 60
}
}
}
},
"required": [
@@ -5777,6 +5860,27 @@
"$ref": "#/components/schemas/WebService/properties/php"
}
}
},
"SystemInfo": {
"type": "object",
"additionalProperties": false,
"properties": {
"system": {
"type": "object",
"description": "Cached system and process metrics",
"additionalProperties": true
},
"runtime": {
"type": "object",
"description": "Cached platform and ACME runtime metadata",
"additionalProperties": true
},
"memory_accounting": {
"type": "object",
"description": "Cached process/cache and transform memory accounting",
"additionalProperties": true
}
}
}
}
},
@@ -6691,7 +6795,22 @@
}
}
}
}
},
"parameters": [
{
"name": "view",
"in": "query",
"required": false,
"description": "Omit for the backward-compatible full status; use live for the compact dynamic-only fallback.",
"schema": {
"type": "string",
"enum": [
"live"
]
}
}
],
"description": "Without view, returns the historical full status including runtime and system diagnostics. view=live returns compact live-only telemetry; the browser fetches system diagnostics separately."
}
},
"/api/backends": {
@@ -8228,7 +8347,25 @@
}
}
},
"description": "Bounded snapshot every approximately 2 seconds. Session/revocation rechecked before every snapshot. Not executed in Swagger because it is an unbounded stream."
"description": "SSE snapshot events contain compact volatile status and bounded logs. Session validity is checked before each event. Native reconnect and keepalive apply. Each viewer selects 1/2/5/10 second pacing; invalid values return 422.",
"parameters": [
{
"name": "interval",
"in": "query",
"required": false,
"description": "Per-client snapshot interval (seconds), never a global SSE rate change.",
"schema": {
"type": "integer",
"enum": [
1,
2,
5,
10
],
"default": 2
}
}
]
}
},
"/metrics": {
@@ -10727,6 +10864,33 @@
}
}
}
},
"/api/system-info": {
"get": {
"summary": "Cached system and runtime information for the administration panel",
"tags": [
"Monitoring"
],
"operationId": "get_api_system_info",
"responses": {
"200": {
"description": "Read-only cached system info; no full configuration or secrets",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SystemInfo"
}
}
}
},
"401": {
"description": "Authentication required"
},
"403": {
"description": "Invalid origin"
}
}
}
}
}
}