{"openapi":"3.1.0","info":{"title":"Cursor Web Portal","description":"\nREST API для автоматизации slash-команд **ai_test**.\n\n### Аутентификация\n\nЕсли задан `CURSOR_WEB_API_KEY`, передавайте `Authorization: Bearer <key>` или `X-API-Key`.\nЗапросы с localhost (`127.0.0.1`, `::1`) могут обходить ключ (для UI).\n\n### Пример\n\n```bash\ncurl -X POST http://127.0.0.1:8090/api/v1/jobs \\\n  -H \"Authorization: Bearer YOUR_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"command\":\"bitrix_report\",\"client_reference_id\":\"ci-1\",\"parameters\":{\"kaiten_url\":\"64168235\",\"mode\":\"direct\",\"post_bitrix\":false}}'\n```\n\nОжидание завершения: `GET /api/v1/jobs/{id}/wait?timeout=120`\n","version":"1.0.0"},"paths":{"/api/v1/commands":{"get":{"tags":["v1"],"summary":"List Commands","operationId":"list_commands_api_v1_commands_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandsListResponse"}}}}}}},"/api/v1/openapi.json":{"get":{"tags":["v1"],"summary":"Openapi V1","operationId":"openapi_v1_api_v1_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Openapi V1 Api V1 Openapi Json Get"}}}}}}},"/api/v1/uploads":{"post":{"tags":["v1"],"summary":"Upload Files","operationId":"upload_files_api_v1_uploads_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_files_api_v1_uploads_post"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs":{"post":{"tags":["v1"],"summary":"Create Job","operationId":"create_job_api_v1_jobs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreatedV1Response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["v1"],"summary":"List Jobs","operationId":"list_jobs_api_v1_jobs_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"command","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Job type / command name","title":"Command"},"description":"Job type / command name"},{"name":"client_reference_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Reference Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_id}":{"get":{"tags":["v1"],"summary":"Get Job","operationId":"get_job_api_v1_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Job Api V1 Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/jobs/{job_id}/wait":{"get":{"tags":["v1"],"summary":"Wait For Job","operationId":"wait_for_job_api_v1_jobs__job_id__wait_get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}},{"name":"timeout","in":"query","required":false,"schema":{"type":"integer","maximum":300,"minimum":1,"default":60,"title":"Timeout"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"tags":["health"],"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Health Get"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/jobs/test-cases":{"post":{"tags":["legacy"],"summary":"Legacy Create Test Cases","operationId":"legacy_create_test_cases_api_jobs_test_cases_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestCasesJobRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/bitrix-report":{"post":{"tags":["legacy"],"summary":"Legacy Create Bitrix Report","operationId":"legacy_create_bitrix_report_api_jobs_bitrix_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BitrixReportJobRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreatedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}":{"get":{"tags":["legacy"],"summary":"Legacy Get Job","operationId":"legacy_get_job_api_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Legacy Get Job Api Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BitrixReportJobRequest":{"properties":{"kaiten_url":{"type":"string","minLength":1,"title":"Kaiten Url"},"out_path":{"type":"string","title":"Out Path","default":"reports/kaiten-report-bitrix.txt"},"mode":{"type":"string","enum":["cursor","direct"],"title":"Mode","default":"cursor"},"post_bitrix":{"type":"boolean","title":"Post Bitrix","default":true},"post_kaiten":{"type":"boolean","title":"Post Kaiten","default":true},"post_google_sheet":{"type":"boolean","title":"Post Google Sheet","default":true}},"type":"object","required":["kaiten_url"],"title":"BitrixReportJobRequest"},"Body_upload_files_api_v1_uploads_post":{"properties":{"files":{"items":{"type":"string","contentMediaType":"application/octet-stream"},"type":"array","title":"Files","description":"xlsx, docx, txt, md"}},"type":"object","required":["files"],"title":"Body_upload_files_api_v1_uploads_post"},"CommandInfo":{"properties":{"command":{"type":"string","title":"Command"},"description":{"type":"string","title":"Description"},"slash_command":{"type":"string","title":"Slash Command"}},"type":"object","required":["command","description","slash_command"],"title":"CommandInfo"},"CommandName":{"type":"string","enum":["test_cases","bitrix_report"],"title":"CommandName"},"CommandsListResponse":{"properties":{"commands":{"items":{"$ref":"#/components/schemas/CommandInfo"},"type":"array","title":"Commands"}},"type":"object","required":["commands"],"title":"CommandsListResponse"},"CreateJobRequest":{"properties":{"command":{"$ref":"#/components/schemas/CommandName"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters"},"client_reference_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Client Reference Id"},"upload_session_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Upload Session Id"}},"type":"object","required":["command","parameters"],"title":"CreateJobRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JobCreatedResponse":{"properties":{"job_id":{"type":"integer","title":"Job Id"},"status":{"type":"string","title":"Status","default":"pending"}},"type":"object","required":["job_id"],"title":"JobCreatedResponse"},"JobCreatedV1Response":{"properties":{"job_id":{"type":"integer","title":"Job Id"},"status":{"type":"string","title":"Status","default":"pending"},"command":{"type":"string","title":"Command"},"client_reference_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Reference Id"},"poll_url":{"type":"string","title":"Poll Url"},"wait_url":{"type":"string","title":"Wait Url"}},"type":"object","required":["job_id","command","poll_url","wait_url"],"title":"JobCreatedV1Response"},"JobListResponse":{"properties":{"jobs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Jobs"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["jobs","count"],"title":"JobListResponse"},"TestCasesJobRequest":{"properties":{"release_name":{"type":"string","minLength":1,"title":"Release Name"},"kaiten_url":{"type":"string","minLength":1,"title":"Kaiten Url"},"testit_url":{"type":"string","minLength":1,"title":"Testit Url"},"miro_board_url":{"type":"string","title":"Miro Board Url","default":""},"figma_url":{"type":"string","title":"Figma Url","default":""},"google_sheets_url":{"type":"string","title":"Google Sheets Url","default":""},"google_docs_url":{"type":"string","title":"Google Docs Url","default":""},"word_web_url":{"type":"string","title":"Word Web Url","default":""},"section_key":{"type":"string","title":"Section Key","default":""},"section_uuid":{"type":"string","title":"Section Uuid","default":""},"project_uuid":{"type":"string","title":"Project Uuid","default":""},"release_context_path":{"type":"string","title":"Release Context Path","default":""},"release_context_yaml":{"type":"string","title":"Release Context Yaml","default":""},"uploaded_files":{"items":{"type":"string"},"type":"array","title":"Uploaded Files"},"upload_session_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Upload Session Id"}},"type":"object","required":["release_name","kaiten_url","testit_url"],"title":"TestCasesJobRequest"},"UploadFileInfo":{"properties":{"original_name":{"type":"string","title":"Original Name"},"stored_path":{"type":"string","title":"Stored Path"}},"type":"object","required":["original_name","stored_path"],"title":"UploadFileInfo"},"UploadSessionResponse":{"properties":{"upload_session_id":{"type":"string","title":"Upload Session Id"},"files":{"items":{"$ref":"#/components/schemas/UploadFileInfo"},"type":"array","title":"Files"}},"type":"object","required":["upload_session_id","files"],"title":"UploadSessionResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}