fix(vultr): validate public network and token scope

Require IPv6 when public IPv4 is disabled, constrain cloud token
lookup by team and provider during deletion, and encode Vultr instance IDs
in API paths.
This commit is contained in:
Andras Bacsai committed 2026-07-07 21:39:57 +02:00
1 parent 31f904ef9f
commit 6ed92cb97a
11 files changed
+448 -20

No files matched your search

+141 -2
View File
@@ -4040,7 +4040,8 @@
"type": "string",
"enum": [
"hetzner",
"digitalocean"
"digitalocean",
"vultr"
]
},
"team_id": {
@@ -4098,7 +4099,8 @@
"type": "string",
"enum": [
"hetzner",
"digitalocean"
"digitalocean",
"vultr"
],
"example": "hetzner",
"description": "The cloud provider."
@@ -14156,6 +14158,139 @@
}
]
}
},
"\/vultr\/regions": {
"get": {
"tags": [
"Vultr"
],
"summary": "Get Vultr Regions",
"description": "Get all available Vultr regions.",
"operationId": "get-vultr-regions",
"responses": {
"200": {
"description": "List of Vultr regions."
},
"401": {
"$ref": "#\/components\/responses\/401"
},
"404": {
"$ref": "#\/components\/responses\/404"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"\/vultr\/plans": {
"get": {
"tags": [
"Vultr"
],
"summary": "Get Vultr Plans",
"description": "Get all available Vultr plans.",
"operationId": "get-vultr-plans",
"responses": {
"200": {
"description": "List of Vultr plans."
},
"401": {
"$ref": "#\/components\/responses\/401"
},
"404": {
"$ref": "#\/components\/responses\/404"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"\/vultr\/os": {
"get": {
"tags": [
"Vultr"
],
"summary": "Get Vultr Operating Systems",
"description": "Get all available Vultr operating systems.",
"operationId": "get-vultr-operating-systems",
"responses": {
"200": {
"description": "List of Vultr operating systems."
},
"401": {
"$ref": "#\/components\/responses\/401"
},
"404": {
"$ref": "#\/components\/responses\/404"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"\/vultr\/ssh-keys": {
"get": {
"tags": [
"Vultr"
],
"summary": "Get Vultr SSH Keys",
"description": "Get all Vultr SSH keys available to the selected token.",
"operationId": "get-vultr-ssh-keys",
"responses": {
"200": {
"description": "List of Vultr SSH keys."
},
"401": {
"$ref": "#\/components\/responses\/401"
},
"404": {
"$ref": "#\/components\/responses\/404"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"\/servers\/vultr": {
"post": {
"tags": [
"Vultr"
],
"summary": "Create Vultr Server",
"description": "Create a Vultr instance and link it as a Coolify server.",
"operationId": "create-vultr-server",
"responses": {
"201": {
"description": "Vultr server created."
},
"401": {
"$ref": "#\/components\/responses\/401"
},
"422": {
"description": "Validation failed."
},
"429": {
"description": "Vultr API rate limit exceeded."
}
},
"security": [
{
"bearerAuth": []
}
]
}
}
},
"components": {
@@ -15458,6 +15593,10 @@
{
"name": "Teams",
"description": "Teams"
},
{
"name": "Vultr",
"description": "Vultr"
}
]
}