This commit is contained in:
Mateusz Gruszczyński committed 2026-10-19 14:05:13 +02:00
1 parent 28e39f7ce4
commit b57beb83c7
34 files changed
+1037 -314

No files matched your search

+57 -5
View File
@@ -2,8 +2,8 @@
"openapi": "3.0.3",
"info": {
"title": "RustProxy Administration API",
"version": "0.34.1",
"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.1 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.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."
},
"servers": [
{
@@ -954,6 +954,28 @@
"config"
]
},
"ConfigurationRead": {
"type": "object",
"description": "Authenticated GET /api/config response; storage is read-only runtime metadata, excluded from configuration updates and revisioned snapshots.",
"properties": {
"revision": {
"type": "integer",
"format": "int64"
},
"config": {
"$ref": "#/components/schemas/Config"
},
"storage": {
"$ref": "#/components/schemas/ConfigStorage"
}
},
"additionalProperties": false,
"required": [
"revision",
"config",
"storage"
]
},
"Update": {
"type": "object",
"properties": {
@@ -6750,6 +6772,35 @@
]
}
]
},
"ConfigStorage": {
"type": "object",
"description": "Read-only metadata in the GET /api/config response. Null paths indicate that a path is not applicable or unavailable.",
"properties": {
"mode": {
"type": "string",
"enum": [
"sqlite",
"file"
]
},
"config_path": {
"type": "string",
"nullable": true,
"description": "Absolute JSON path only in file mode."
},
"database_path": {
"type": "string",
"nullable": true,
"description": "Private SQLite config/history database path."
}
},
"required": [
"mode",
"config_path",
"database_path"
],
"additionalProperties": false
}
}
},
@@ -7761,7 +7812,8 @@
},
"/api/config": {
"get": {
"summary": "Read the revisioned configuration",
"summary": "Read the revisioned configuration and storage source",
"description": "The storage member reports runtime SQLite/JSON paths and is not part of the writable config or revisioned snapshots.",
"tags": [
"Configuration"
],
@@ -7772,7 +7824,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Envelope"
"$ref": "#/components/schemas/ConfigurationRead"
}
}
}
@@ -12792,4 +12844,4 @@
}
},
"tags": []
}
}