v0.28.0
This commit is contained in:
1 parent
c24bc4279b
commit
3b3f0db377
84 files changed
+2686
-392
No files matched your search
+272
-10
@@ -2,7 +2,7 @@
|
||||
"openapi": "3.0.3",
|
||||
"info": {
|
||||
"title": "RustProxy Administration API",
|
||||
"version": "0.27.3",
|
||||
"version": "0.28.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": [
|
||||
@@ -606,6 +606,9 @@
|
||||
"prometheus": {
|
||||
"$ref": "#/components/schemas/PrometheusSettings"
|
||||
},
|
||||
"geoip_updates": {
|
||||
"$ref": "#/components/schemas/GeoIpUpdateSettings"
|
||||
},
|
||||
"host_policies": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -1593,6 +1596,13 @@
|
||||
"expose_resident_age": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"via_header": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"maxLength": 256,
|
||||
"default": "RustProxy",
|
||||
"description": "Optional response Via field value appended by RustProxy cache handling. Null disables the header. This response-only setting does not invalidate cached objects."
|
||||
},
|
||||
"cold_max_hot_seconds": {
|
||||
"type": "integer",
|
||||
"minimum": 5,
|
||||
@@ -2258,6 +2268,103 @@
|
||||
"frontend"
|
||||
]
|
||||
},
|
||||
"GeoIpUpdateSettings": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"default": true
|
||||
},
|
||||
"format": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"csv_pair",
|
||||
"mmdb"
|
||||
],
|
||||
"default": "csv_pair",
|
||||
"description": "GeoIP database format. csv_pair uses separate IPv4/IPv6 range files; mmdb uses one native MaxMind DB file."
|
||||
},
|
||||
"ipv4_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"default": "https://github.com/sapics/ip-location-db/releases/download/latest/user-country-ipv4.csv",
|
||||
"description": "Direct HTTPS URL for the IPv4 CSV database."
|
||||
},
|
||||
"ipv6_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"default": "https://github.com/sapics/ip-location-db/releases/download/latest/user-country-ipv6.csv",
|
||||
"description": "Direct HTTPS URL for the IPv6 CSV database."
|
||||
},
|
||||
"mmdb_url": {
|
||||
"type": "string",
|
||||
"default": "https://github.com/sapics/ip-location-db/releases/download/latest/user-country.mmdb",
|
||||
"description": "Direct HTTPS URL for a native MaxMind DB. May be empty only when MMDB automatic updates are disabled and country.mmdb is managed locally."
|
||||
},
|
||||
"ipv4_checksum_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"nullable": true,
|
||||
"default": null,
|
||||
"description": "Optional HTTPS URL containing the publisher SHA-256 for the IPv4 CSV."
|
||||
},
|
||||
"ipv6_checksum_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"nullable": true,
|
||||
"default": null,
|
||||
"description": "Optional HTTPS URL containing the publisher SHA-256 for the IPv6 CSV."
|
||||
},
|
||||
"mmdb_checksum_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"nullable": true,
|
||||
"default": null,
|
||||
"description": "Optional HTTPS URL containing the publisher SHA-256 for the MMDB file."
|
||||
},
|
||||
"max_bytes": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"minimum": 1048576,
|
||||
"maximum": 268435456,
|
||||
"default": 268435456
|
||||
},
|
||||
"interval_seconds": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"minimum": 60,
|
||||
"maximum": 2678400,
|
||||
"default": 86400
|
||||
},
|
||||
"release_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"nullable": true,
|
||||
"deprecated": true,
|
||||
"description": "Legacy release base URL accepted for migration from pre-direct-source GeoIP settings."
|
||||
},
|
||||
"checksum_url": {
|
||||
"type": "string",
|
||||
"format": "uri",
|
||||
"nullable": true,
|
||||
"deprecated": true,
|
||||
"description": "Legacy checksum base URL accepted for migration. The former sapics checksum default is migrated to optional/no publisher checksum."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"enabled",
|
||||
"format",
|
||||
"ipv4_url",
|
||||
"ipv6_url",
|
||||
"mmdb_url",
|
||||
"ipv4_checksum_url",
|
||||
"ipv6_checksum_url",
|
||||
"mmdb_checksum_url",
|
||||
"max_bytes",
|
||||
"interval_seconds"
|
||||
]
|
||||
},
|
||||
"PrometheusSettings": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
@@ -4472,15 +4579,49 @@
|
||||
"type": "object",
|
||||
"description": "Python/pip/Certbot capability used by managed certificate automation.",
|
||||
"properties": {
|
||||
"status": { "type": "string", "enum": ["checking", "initializing", "ready", "unavailable"] },
|
||||
"mode": { "type": "string", "enum": ["none", "managed", "system"] },
|
||||
"message": { "type": "string" },
|
||||
"managed_directory": { "type": "string", "nullable": true },
|
||||
"python": { "type": "boolean" },
|
||||
"pip": { "type": "boolean" },
|
||||
"certbot": { "type": "boolean" }
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"checking",
|
||||
"initializing",
|
||||
"ready",
|
||||
"unavailable"
|
||||
]
|
||||
},
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"none",
|
||||
"managed",
|
||||
"system"
|
||||
]
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
},
|
||||
"managed_directory": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"python": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"pip": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"certbot": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": ["status", "mode", "message", "managed_directory", "python", "pip", "certbot"]
|
||||
"required": [
|
||||
"status",
|
||||
"mode",
|
||||
"message",
|
||||
"managed_directory",
|
||||
"python",
|
||||
"pip",
|
||||
"certbot"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -5276,6 +5417,68 @@
|
||||
}
|
||||
},
|
||||
"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."
|
||||
},
|
||||
"GeoIpView": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"loaded": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"ipv4_ranges": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"ipv6_ranges": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"source": {
|
||||
"type": "string"
|
||||
},
|
||||
"format": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"csv_pair",
|
||||
"mmdb"
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"loaded",
|
||||
"ipv4_ranges",
|
||||
"ipv6_ranges",
|
||||
"source",
|
||||
"format"
|
||||
]
|
||||
},
|
||||
"GeoIpUpdateResult": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"outcome": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"updated",
|
||||
"current",
|
||||
"busy"
|
||||
]
|
||||
},
|
||||
"updated_files": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"database": {
|
||||
"$ref": "#/components/schemas/GeoIpView"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"outcome",
|
||||
"updated_files",
|
||||
"database"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -7290,6 +7493,64 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/geoip/update": {
|
||||
"post": {
|
||||
"summary": "Check, download and hot-reload GeoIP country databases now",
|
||||
"description": "Download the configured direct GeoIP source(s), optionally verify publisher SHA-256 values, validate the selected CSV/MMDB format, atomically publish changed files and hot-reload future GeoIP lookups.",
|
||||
"tags": [
|
||||
"Settings"
|
||||
],
|
||||
"operationId": "post_api_geoip_update",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "GeoIP check completed",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/GeoIpUpdateResult"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Authentication required or revoked",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"403": {
|
||||
"description": "Host, origin or CSRF validation failed",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"502": {
|
||||
"description": "Publisher check, download, validation or reload failed",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"AdminSession": [],
|
||||
"CsrfToken": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/cache/purge": {
|
||||
"post": {
|
||||
"summary": "Purge all cache entries or one vhost",
|
||||
@@ -7956,7 +8217,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Preferred UI/control-plane save path. Replaces only the selected section while preserving every other section from the current revision. This is not a merge patch. Cache identity is independent from the global configuration revision: logging, listeners, TLS inventory, metrics and administration saves do not purge cached objects. Changes which can alter origin requests or cached responses (cache/transform/response/forwarding/vhosts) rotate the cache compatibility identity and purge incompatible hot/cold objects. Supported section names include docker-agents, vhosts, redirects, not_found_hosts, streams, listeners, http2, tls, pages, cache, transform, logging, forwarding, headers, prometheus, administration, acl-profiles, host-policies and response.",
|
||||
"description": "Preferred UI/control-plane save path. Replaces only the selected section while preserving every other section from the current revision. This is not a merge patch. Cache identity is independent from the global configuration revision: logging, listeners, TLS inventory, metrics and administration saves do not purge cached objects. Changes which can alter origin requests or cached responses (cache/transform/response/forwarding/vhosts) rotate the cache compatibility identity and purge incompatible hot/cold objects. Supported section names include docker-agents, vhosts, redirects, not_found_hosts, streams, listeners, http2, tls, pages, cache, transform, logging, forwarding, headers, prometheus, geoip, administration, acl-profiles, host-policies and response.",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "section",
|
||||
@@ -7975,6 +8236,7 @@
|
||||
"forwarding",
|
||||
"headers",
|
||||
"prometheus",
|
||||
"geoip",
|
||||
"administration",
|
||||
"http2",
|
||||
"tls",
|
||||
|
||||
Reference in new issue
Block a user