Files
TaskPool/docs/swagger.json
T
2026-03-05 20:19:35 +08:00

1133 lines
40 KiB
JSON

{
"swagger": "2.0",
"info": {
"description": "Baihu Panel API Server documentation.",
"title": "Baihu Panel API",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "API Support",
"url": "http://www.swagger.io/support",
"email": "support@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0"
},
"host": "localhost:8052",
"basePath": "/api/v1",
"paths": {
"/env": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "分页获取环境变量列表,支持按名称筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "获取环境变量列表",
"parameters": [
{
"type": "string",
"description": "按名称模糊查询",
"name": "name",
"in": "query"
},
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/definitions/utils.PaginationData"
},
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/vo.EnvVO"
}
}
}
}
]
}
}
}
]
}
}
}
},
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "创建新的环境变量",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "创建环境变量",
"parameters": [
{
"description": "环境变量信息",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/vo.EnvVO"
}
}
}
]
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
}
},
"/env/all": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "获取当前用户的所有环境变量(不分页)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "获取所有环境变量",
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/vo.EnvVO"
}
}
}
}
]
}
}
}
}
},
"/env/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 获取环境变量详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "获取环境变量详情",
"parameters": [
{
"type": "string",
"description": "环境变量ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/vo.EnvVO"
}
}
}
]
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 更新环境变量信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "更新环境变量",
"parameters": [
{
"type": "string",
"description": "环境变量ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新信息",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/vo.EnvVO"
}
}
}
]
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 删除环境变量,支持强制删除",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "删除环境变量",
"parameters": [
{
"type": "string",
"description": "环境变量ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "是否强制删除",
"name": "force",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
},
"409": {
"description": "引用冲突",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/vo.TaskVO"
}
}
}
}
]
}
}
}
}
},
"/env/{id}/tasks": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "获取引用了该环境变量的任务列表",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"环境变量"
],
"summary": "获取关联任务",
"parameters": [
{
"type": "string",
"description": "环境变量ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/vo.TaskVO"
}
}
}
}
]
}
}
}
}
},
"/logs": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "分页获取任务日志列表,支持按任务 ID、任务名称、状态筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"日志"
],
"summary": "获取任务日志列表",
"parameters": [
{
"type": "string",
"description": "任务 ID",
"name": "task_id",
"in": "query"
},
{
"type": "string",
"description": "任务名称",
"name": "task_name",
"in": "query"
},
{
"type": "string",
"description": "状态",
"name": "status",
"in": "query"
},
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/definitions/utils.PaginationData"
},
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/vo.TaskLogVO"
}
}
}
}
]
}
}
}
]
}
}
}
}
},
"/logs/clear": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "清空所有日志或指定任务的日志",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"日志"
],
"summary": "清空日志",
"parameters": [
{
"description": "清空范围信息",
"name": "body",
"in": "body",
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
}
},
"/logs/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 获取任务日志详细内容(包含输出)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"日志"
],
"summary": "获取日志详情",
"parameters": [
{
"type": "string",
"description": "日志ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/vo.TaskLogVO"
}
}
}
]
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 删除单条任务日志",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"日志"
],
"summary": "删除日志",
"parameters": [
{
"type": "string",
"description": "日志ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
}
},
"/tasks": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "分页获取任务列表,支持按名称、Agent ID、标签、类型筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"任务"
],
"summary": "获取任务列表",
"parameters": [
{
"type": "string",
"description": "任务名称",
"name": "name",
"in": "query"
},
{
"type": "string",
"description": "Agent ID",
"name": "agent_id",
"in": "query"
},
{
"type": "string",
"description": "标签",
"name": "tags",
"in": "query"
},
{
"type": "string",
"description": "任务类型",
"name": "type",
"in": "query"
},
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/definitions/utils.PaginationData"
},
{
"type": "object",
"properties": {
"list": {
"type": "array",
"items": {
"$ref": "#/definitions/vo.TaskVO"
}
}
}
}
]
}
}
}
]
}
}
}
}
},
"/tasks/stop/{logID}": {
"post": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据运行日志 ID 停止正在执行的任务",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"任务"
],
"summary": "停止任务",
"parameters": [
{
"type": "string",
"description": "运行日志ID",
"name": "logID",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
}
},
"/tasks/{id}": {
"get": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 获取任务详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"任务"
],
"summary": "获取任务详情",
"parameters": [
{
"type": "string",
"description": "任务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/vo.TaskVO"
}
}
}
]
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
},
"put": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 更新任务信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"任务"
],
"summary": "更新任务",
"parameters": [
{
"type": "string",
"description": "任务ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "任务更新信息",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"allOf": [
{
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
},
{
"type": "object",
"properties": {
"data": {
"$ref": "#/definitions/vo.TaskVO"
}
}
}
]
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
},
"delete": {
"security": [
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 删除任务",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"任务"
],
"summary": "删除任务",
"parameters": [
{
"type": "string",
"description": "任务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_engigu_baihu-panel_internal_utils.Response"
}
}
}
}
}
},
"definitions": {
"github_com_engigu_baihu-panel_internal_utils.Response": {
"type": "object",
"properties": {
"code": {
"type": "integer"
},
"data": {},
"msg": {
"type": "string"
}
}
},
"utils.PaginationData": {
"type": "object",
"properties": {
"list": {},
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"total": {
"type": "integer"
}
}
},
"vo.EnvVO": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"hidden": {
"type": "boolean"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"remark": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"vo.TaskLogVO": {
"type": "object",
"properties": {
"agent_id": {
"type": "string"
},
"command": {
"type": "string"
},
"created_at": {
"type": "string"
},
"duration": {
"type": "integer"
},
"end_time": {
"type": "string"
},
"error": {
"type": "string"
},
"exit_code": {
"type": "integer"
},
"id": {
"type": "string"
},
"output": {
"type": "string"
},
"start_time": {
"type": "string"
},
"status": {
"type": "string"
},
"task_id": {
"type": "string"
},
"task_name": {
"type": "string"
},
"task_type": {
"type": "string"
}
}
},
"vo.TaskVO": {
"type": "object",
"properties": {
"agent_id": {
"type": "string"
},
"clean_config": {
"type": "string"
},
"command": {
"type": "string"
},
"config": {
"type": "string"
},
"created_at": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"envs": {
"type": "string"
},
"id": {
"type": "string"
},
"languages": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"last_run": {
"type": "string"
},
"name": {
"type": "string"
},
"next_run": {
"type": "string"
},
"random_range": {
"type": "integer"
},
"retry_count": {
"type": "integer"
},
"retry_interval": {
"type": "integer"
},
"schedule": {
"type": "string"
},
"tags": {
"type": "string"
},
"timeout": {
"type": "integer"
},
"trigger_type": {
"type": "string"
},
"type": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"work_dir": {
"type": "string"
}
}
}
},
"securityDefinitions": {
"ApiKeyAuth": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}