This commit is contained in:
Mateusz Gruszczyński committed 2026-10-20 11:19:55 +02:00
1 parent 8c0de520d7
commit 8f41b39c26
32 files changed
+934 -128

No files matched your search

+84 -4
View File
@@ -2,8 +2,8 @@
"openapi": "3.0.3",
"info": {
"title": "RustProxy Administration API",
"version": "0.34.2",
"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. Version 0.34.2 also permits explicitly scoped GeneralApiBearer tokens on a narrow route allowlist, with RO/RW and source CIDR checks; API-token management and Prometheus-token management are browser-session-only."
"version": "0.34.3",
"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. Version 0.34.3 also permits explicitly scoped GeneralApiBearer tokens on a narrow route allowlist, with RO/RW and source CIDR checks; API-token management and Prometheus-token management are browser-session-only."
},
"servers": [
{
@@ -691,8 +691,34 @@
},
"listeners": {
"type": "object",
"properties": {},
"additionalProperties": true
"properties": {
"endpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"binding": {
"type": "object",
"properties": {
"http3": {
"description": "HTTP/3/QUIC listener policy. null means disabled.",
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/Http3Settings"
}
]
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true,
"description": "Named listener endpoints (binding.http3 uses Http3Settings); settings that change UDP binds/socket buffers need service restart."
},
"http2": {
"description": "Legacy HTTP/2 lifecycle fallback for listeners that do not define binding.http2_settings. Prefer listener-scoped settings in config.listeners.",
@@ -1161,6 +1187,7 @@
"format": "int64"
},
"listeners": {
"description": "Bound and configured HTTP listener endpoints. restart_required excludes hot HTTP/3 Alt-Svc and per-new-connection QUIC settings, but includes socket/port and startup capacity changes.",
"type": "object",
"properties": {},
"additionalProperties": true
@@ -7352,6 +7379,59 @@
"capacity"
],
"additionalProperties": false
},
"Http3Settings": {
"type": "object",
"description": "Per-TLS-listener binding.http3 settings. Alt-Svc lifetime updates immediately; stream/idle limits apply to new QUIC handshakes. UDP buffers are applied to new listener sockets after service restart and can be OS-clamped. 0 disables an explicit socket buffer request.",
"properties": {
"alt_svc_max_age": {
"type": "integer",
"format": "int64",
"minimum": 0,
"maximum": 604800,
"default": 3600
},
"max_concurrent_connections": {
"type": "integer",
"minimum": 1,
"maximum": 4096,
"default": 512
},
"max_concurrent_bidistream": {
"type": "integer",
"minimum": 1,
"maximum": 1024,
"default": 100
},
"max_concurrent_unistream": {
"type": "integer",
"minimum": 3,
"maximum": 1024,
"default": 100
},
"max_idle_timeout": {
"type": "integer",
"format": "int64",
"minimum": 0,
"maximum": 86400,
"default": 10
},
"udp_receive_buffer_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 16777216,
"default": 4194304,
"description": "0 or 65536..16777216 bytes. Applies after restart."
},
"udp_send_buffer_bytes": {
"type": "integer",
"minimum": 0,
"maximum": 16777216,
"default": 4194304,
"description": "0 or 65536..16777216 bytes. Applies after restart."
}
},
"additionalProperties": false
}
}
},