feat!: probes generate their own keys and enroll with a join token; node and peer keys are separate [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful

This commit is contained in:
justme committed 2026-10-07 16:57:34 +08:00
1 parent 1ff847e45a
commit a9f562441f
51 files changed
+505 -749

No files matched your search

+7 -205
View File
@@ -1928,7 +1928,7 @@
"tags": [
"admin-join-tokens"
],
"summary": "Create a join token; the plaintext is returned only once",
"summary": "Create a join token for an agent or a probe (role); the plaintext is returned only once",
"operationId": "join_tokens_create",
"requestBody": {
"content": {
@@ -2079,81 +2079,6 @@
}
}
}
},
"post": {
"tags": [
"admin-probe"
],
"summary": "Create a probe identity; the private key is returned only once",
"operationId": "probes_create",
"requestBody": {
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/CreateProbeRequest"
}
]
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProbeIdentityDto"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
}
}
}
},
"/api/admin/probes/{id}": {
@@ -2353,77 +2278,6 @@
}
}
},
"/api/admin/probes/{id}/rotate": {
"post": {
"tags": [
"admin-probe"
],
"summary": "Give a probe a new key (same id): the old key stops working and its sessions are dropped; the new probe.json is returned only once",
"operationId": "probes_rotate",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProbeIdentityDto"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
},
"403": {
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
},
"409": {
"description": "Conflict",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDto"
}
}
}
}
}
}
},
"/api/admin/probes/{id}/revoke": {
"post": {
"tags": [
@@ -5007,16 +4861,8 @@
"string"
],
"format": "int32"
}
}
},
"CreateProbeRequest": {
"required": [
"name"
],
"type": "object",
"properties": {
"name": {
},
"role": {
"type": [
"null",
"string"
@@ -5822,6 +5668,10 @@
},
"created_at": {
"format": "date-time"
},
"role": {
"type": "string",
"default": "agent"
}
}
},
@@ -7191,54 +7041,6 @@
}
}
},
"ProbeIdentityDto": {
"required": [
"probe_id",
"private_key",
"server",
"limits"
],
"type": "object",
"properties": {
"probe_id": {
"type": "string"
},
"private_key": {
"type": "string"
},
"server": {
"type": "string"
},
"limits": {
"$ref": "#/components/schemas/ProbeLimitsDto"
}
}
},
"ProbeLimitsDto": {
"required": [
"max_test_mbps",
"max_total_pps"
],
"type": "object",
"properties": {
"max_test_mbps": {
"pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$",
"type": [
"number",
"string"
],
"format": "double"
},
"max_total_pps": {
"pattern": "^-?(?:0|[1-9]\\d*)$",
"type": [
"integer",
"string"
],
"format": "int64"
}
}
},
"ProblemDto": {
"required": [
"type",