{ "swagger": "2.0", "info": { "description": "API for managing AI security scanning tasks", "title": "AI-Infra-Guard 任务API", "contact": {}, "version": "1.0" }, "basePath": "/", "paths": { "/api/v1/app/taskapi/result/{id}": { "get": { "description": "Retrieve the final result of a completed task. Returns detailed scan results, vulnerabilities found, and security assessment data.", "produces": [ "application/json" ], "tags": [ "taskapi" ], "summary": "Get task result", "parameters": [ { "type": "string", "description": "Task Session ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Task result retrieved successfully. Data contains scan results, vulnerabilities, and security findings", "schema": { "$ref": "#/definitions/websocket.APIResponse" } }, "400": { "description": "Invalid session ID format", "schema": { "$ref": "#/definitions/websocket.APIResponse" } }, "404": { "description": "Task not found or not completed", "schema": { "$ref": "#/definitions/websocket.APIResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/websocket.APIResponse" } } } } }, "/api/v1/app/taskapi/status/{id}": { "get": { "description": "Retrieve the current status and logs of a task by session ID. Returns task metadata and execution logs.", "produces": [ "application/json" ], "tags": [ "taskapi" ], "summary": "Get task status", "parameters": [ { "type": "string", "description": "Task Session ID", "name": "id", "in": "path", "required": true } ], "responses": { "200": { "description": "Task status retrieved successfully", "schema": { "allOf": [ { "$ref": "#/definitions/websocket.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/websocket.TaskStatusResponse" } } } ] } }, "400": { "description": "Invalid session ID format", "schema": { "$ref": "#/definitions/websocket.APIResponse" } }, "404": { "description": "Task not found", "schema": { "$ref": "#/definitions/websocket.APIResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/websocket.APIResponse" } } } } }, "/api/v1/app/taskapi/tasks": { "post": { "description": "Submit a new task for processing. Supports three types of tasks:\n1. MCP Scan (mcp_scan): Model Context Protocol security scanning\n2. AI Infra Scan (ai_infra_scan): AI infrastructure security scanning\n3. Model Redteam Report (model_redteam_report): AI model red team testing\n\nRequest Body Examples:\n\nMCP Scan Task:\n{\n\"type\": \"mcp_scan\",\n\"content\": {\n\"content\": \"扫描MCP服务器\",\n\"model\": {\n\"model\": \"gpt-4\",\n\"token\": \"sk-xxx\",\n\"base_url\": \"https://api.openai.com/v1\"\n},\n\"thread\": 4,\n\"language\": \"zh\",\n\"attachments\": \"file.zip\"\n}\n}\n\nAI Infra Scan Task:\n{\n\"type\": \"ai_infra_scan\",\n\"content\": {\n\"target\": [\"https://example.com\"],\n\"headers\": {\n\"Authorization\": \"Bearer token\"\n},\n\"timeout\": 30\n}\n}\n\nModel Redteam Task:\n{\n\"type\": \"model_redteam_report\",\n\"content\": {\n\"model\": [{\n\"model\": \"gpt-4\",\n\"token\": \"sk-xxx\",\n\"base_url\": \"https://api.openai.com/v1\"\n}],\n\"eval_model\": {\n\"model\": \"gpt-4\",\n\"token\": \"sk-xxx\"\n},\n\"dataset\": {\n\"dataFile\": [\"JailBench-Tiny\", \"JailbreakPrompts-Tiny\"],\n\"numPrompts\": 100,\n\"randomSeed\": 42\n}\n}\n}", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "taskapi" ], "summary": "Create a new task", "parameters": [ { "description": "Task request body. Content should be JSON object containing task-specific parameters based on type", "name": "request", "in": "body", "required": true, "schema": { "type": "object", "properties": { "content": { "type": "object" }, "type": { "type": "string" } } } } ], "responses": { "200": { "description": "Task created successfully", "schema": { "allOf": [ { "$ref": "#/definitions/websocket.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/websocket.TaskCreateResponse" } } } ] } }, "400": { "description": "Invalid request parameters", "schema": { "$ref": "#/definitions/websocket.APIResponse" } }, "500": { "description": "Internal server error", "schema": { "$ref": "#/definitions/websocket.APIResponse" } } } } }, "/api/v1/app/taskapi/upload": { "post": { "description": "Upload a file for task processing. Supports various file formats including zip, json, txt, etc.\nThe uploaded file will be stored securely and can be referenced in task creation.", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "taskapi" ], "summary": "Upload file", "parameters": [ { "type": "file", "description": "File to upload", "name": "file", "in": "formData", "required": true } ], "responses": { "200": { "description": "File uploaded successfully", "schema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "fileUrl": { "type": "string" }, "filename": { "type": "string" }, "size": { "type": "integer" } } }, "message": { "type": "string" }, "status": { "type": "integer" } } } }, "400": { "description": "Invalid file or upload parameters", "schema": { "type": "object", "properties": { "data": { "type": "object" }, "message": { "type": "string" }, "status": { "type": "integer" } } } }, "500": { "description": "Internal server error", "schema": { "type": "object", "properties": { "data": { "type": "object" }, "message": { "type": "string" }, "status": { "type": "integer" } } } } } } } }, "definitions": { "websocket.APIResponse": { "type": "object", "properties": { "data": { "description": "响应数据" }, "message": { "description": "响应消息", "type": "string", "example": "操作成功" }, "status": { "description": "状态码: 0=成功, 1=失败", "type": "integer", "example": 0 } } }, "websocket.TaskCreateResponse": { "type": "object", "properties": { "session_id": { "description": "任务会话ID", "type": "string", "example": "550e8400-e29b-41d4-a716-446655440000" } } }, "websocket.TaskStatusResponse": { "type": "object", "properties": { "created_at": { "description": "创建时间戳(毫秒)", "type": "integer", "example": 1640995200000 }, "log": { "description": "任务执行日志", "type": "string", "example": "任务执行日志..." }, "session_id": { "description": "任务会话ID", "type": "string", "example": "550e8400-e29b-41d4-a716-446655440000" }, "status": { "description": "任务状态: pending, running, completed, failed", "type": "string", "example": "running" }, "title": { "description": "任务标题", "type": "string", "example": "MCP安全扫描任务" }, "updated_at": { "description": "更新时间戳(毫秒)", "type": "integer", "example": 1640995200000 } } } } }