This commit is contained in:
Mateusz Gruszczyński committed 2026-10-07 08:51:04 +02:00
1 parent a9f9450f80
commit 762eb9e28b
81 files changed
+1242 -1095

No files matched your search

+106 -5
View File
@@ -2,7 +2,7 @@
"openapi": "3.0.3",
"info": {
"title": "RustProxy Administration API",
"version": "0.26.7",
"version": "0.27.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": [
@@ -529,6 +529,9 @@
},
"source": {
"$ref": "#/components/schemas/Source"
},
"compression": {
"$ref": "#/components/schemas/CompressionOverrides"
}
},
"additionalProperties": true,
@@ -575,9 +578,7 @@
"$ref": "#/components/schemas/CacheSettings"
},
"compression": {
"type": "object",
"properties": {},
"additionalProperties": true
"$ref": "#/components/schemas/CompressionSettings"
},
"headers": {
"$ref": "#/components/schemas/HeaderRules"
@@ -2418,6 +2419,36 @@
"type": "boolean",
"default": false,
"description": "Enable the configured static-response transform engine for the generated Docker vhost. Global transform must also be enabled."
},
"compression_enabled": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Per-published-vhost dynamic compression override. null inherits the enclosing/global policy; true/false enables or disables the scope."
},
"compression_zstd": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional per-Docker-vhost Zstandard override. null inherits; globally disabled codecs remain unavailable."
},
"compression_br": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional per-Docker-vhost Brotli override. null inherits; globally disabled codecs remain unavailable."
},
"compression_gzip": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional per-Docker-vhost gzip override. null inherits; globally disabled codecs remain unavailable."
},
"compression_deflate": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional per-Docker-vhost deflate override. null inherits; globally disabled codecs remain unavailable."
}
},
"required": [
@@ -4761,6 +4792,9 @@
}
},
"description": "Optional Web Service hardening. This is a bounded deterministic compatibility/security layer, not a generic WAF."
},
"compression": {
"$ref": "#/components/schemas/CompressionOverrides"
}
},
"required": [
@@ -5061,6 +5095,73 @@
}
},
"additionalProperties": false
},
"CompressionSettings": {
"type": "object",
"additionalProperties": false,
"properties": {
"gzip": {
"type": "boolean",
"default": true
},
"br": {
"type": "boolean",
"default": true
},
"zstd": {
"type": "boolean",
"default": true
},
"deflate": {
"type": "boolean",
"default": false
},
"min_bytes": {
"type": "integer",
"format": "uint64",
"minimum": 32,
"maximum": 1048576,
"default": 1024
}
},
"description": "Global downstream compression codecs and minimum size. Client q-values win; equal-quality codecs use zstd, then br, gzip and deflate. Existing Content-Encoding is never recompressed."
},
"CompressionOverrides": {
"type": "object",
"additionalProperties": false,
"properties": {
"enabled": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "null inherits the enclosing policy; true/false explicitly enables or disables dynamic compression at this scope."
},
"zstd": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional Zstandard override at this scope. null inherits; true is effective only when the codec is enabled globally; false disables it."
},
"br": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional Brotli override at this scope. null inherits; true is effective only when the codec is enabled globally; false disables it."
},
"gzip": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional gzip override at this scope. null inherits; true is effective only when the codec is enabled globally; false disables it."
},
"deflate": {
"type": "boolean",
"nullable": true,
"default": null,
"description": "Optional deflate override at this scope. null inherits; true is effective only when the codec is enabled globally; false disables it."
}
},
"description": "Scoped dynamic-compression policy. The enabled switch and individual codecs inherit by default; global Response codec switches are the hard availability ceiling and min_bytes remains global."
}
}
},
@@ -5423,7 +5524,7 @@
}
}
},
"description": "Sets an HttpOnly SameSite=Strict session cookie. Browser sessions use the configured 7\u201330 day absolute lifetime. Use the panel sign-in page. No bearer token or URL token is accepted.",
"description": "Sets an HttpOnly SameSite=Strict session cookie. Browser sessions use the configured 7–30 day absolute lifetime. Use the panel sign-in page. No bearer token or URL token is accepted.",
"security": [],
"parameters": [
{