v0.25.3
This commit is contained in:
1 parent
174389e5b1
commit
e6604e41fc
73 files changed
+1240
-201
No files matched your search
+164
-4
@@ -2,7 +2,7 @@
|
||||
"openapi": "3.0.3",
|
||||
"info": {
|
||||
"title": "RustProxy Administration API",
|
||||
"version": "0.25.2",
|
||||
"version": "0.25.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."
|
||||
},
|
||||
"servers": [
|
||||
@@ -300,6 +300,17 @@
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"acl_profile_id": {
|
||||
"type": "string",
|
||||
"nullable": true,
|
||||
"description": "Optional reusable ACL profile; profile and inline location policies are cumulative."
|
||||
},
|
||||
"country_access": {
|
||||
"$ref": "#/components/schemas/CountryAccess"
|
||||
},
|
||||
"method_policy": {
|
||||
"$ref": "#/components/schemas/MethodPolicy"
|
||||
},
|
||||
"headers": {
|
||||
"$ref": "#/components/schemas/HeaderRules"
|
||||
},
|
||||
@@ -420,6 +431,9 @@
|
||||
],
|
||||
"nullable": true
|
||||
},
|
||||
"method_policy": {
|
||||
"$ref": "#/components/schemas/MethodPolicy"
|
||||
},
|
||||
"basic_auth": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
@@ -1230,6 +1244,56 @@
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"MethodPolicy": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"off",
|
||||
"allow",
|
||||
"block"
|
||||
],
|
||||
"default": "off"
|
||||
},
|
||||
"methods": {
|
||||
"type": "array",
|
||||
"maxItems": 32,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"maxLength": 32
|
||||
},
|
||||
"default": []
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"description": "HTTP method policy. allow permits only listed methods; block rejects listed methods."
|
||||
},
|
||||
"CountryAccess": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"off",
|
||||
"block",
|
||||
"allow"
|
||||
],
|
||||
"default": "off"
|
||||
},
|
||||
"countries": {
|
||||
"type": "array",
|
||||
"maxItems": 128,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z]{2}$"
|
||||
},
|
||||
"default": []
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
"description": "Country access policy evaluated against the verified effective client IP."
|
||||
},
|
||||
"AclProfile": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -1248,9 +1312,7 @@
|
||||
"nullable": true
|
||||
},
|
||||
"country_access": {
|
||||
"type": "object",
|
||||
"properties": {},
|
||||
"additionalProperties": true
|
||||
"$ref": "#/components/schemas/CountryAccess"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
@@ -9019,6 +9081,104 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/config/history": {
|
||||
"get": {
|
||||
"summary": "Browse retained manual configuration revisions",
|
||||
"description": "Returns up to 512 retained revision metadata entries, or one revision with its previous retained configuration for diff rendering.",
|
||||
"tags": [
|
||||
"Configuration"
|
||||
],
|
||||
"operationId": "get_api_config_history",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "revision",
|
||||
"in": "query",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"minimum": 0
|
||||
},
|
||||
"description": "Return one retained revision and its previous retained configuration."
|
||||
},
|
||||
{
|
||||
"name": "limit",
|
||||
"in": "query",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 512,
|
||||
"default": 512
|
||||
},
|
||||
"description": "Maximum metadata entries when revision is omitted."
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Revision history or revision detail",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"additionalProperties": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"429": {
|
||||
"description": "Bounded worker/session/rate limit",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"503": {
|
||||
"description": "Control-plane storage/worker unavailable",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Requested revision is not retained",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user