[15:03:32] OpenAPI: http://localhost:8080/openapi.json [15:03:32] ✔ OpenAPI fetched (32448 bytes) [15:03:32] Prepare tokens [15:03:32] REGISTER admin+20250810_150332@audit.dev (role=ADMIN) → http://localhost:8080/auth/v1/register HTTP: 201 [15:03:32] TOKEN for admin+20250810_150332@audit.dev → http://localhost:8080/auth/v1/token HTTP: 200 {"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxN2M5ODNjZi02NzQ2LTRiZDctYTU2Yi01NGNmMWMxZGY4M2MiLCJlbWFpbCI6ImFkbWluKzIwMjUwODEwXzE1MDMzMkBhdWRpdC5kZXYiLCJyb2xlIjoiQURNSU4iLCJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzU0ODA2NzEyfQ.hvizRRRhsJ3TwXB59kEDWsD5HopKdlnZcLN1NVowtXc","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxN2M5ODNjZi02NzQ2LTRiZDctYTU2Yi01NGNmMWMxZGY4M2MiLCJl[15:03:33] REGISTER client+20250810_150332@audit.dev (role=CLIENT) → http://localhost:8080/auth/v1/register HTTP: 201 [15:03:33] TOKEN for client+20250810_150332@audit.dev → http://localhost:8080/auth/v1/token HTTP: 200 {"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiMDUxOTUyNi03MDMyLTRiNTEtODRkOS1mNWY2OWY2ODBkMTgiLCJlbWFpbCI6ImNsaWVudCsyMDI1MDgxMF8xNTAzMzJAYXVkaXQuZGV2Iiwicm9sZSI6IkNMSUVOVCIsInR5cGUiOiJhY2Nlc3MiLCJleHAiOjE3NTQ4MDY3MTN9.qDEzkMrlcIfoJCztZdnBXNjc-LIse7mlqWvfz8IeyrQ","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiMDUxOTUyNi03MDMyLTRiNTEtODRkOS1mNWY2OWY2ODBkMTgiLC[15:03:33] ✔ Tokens acquired [15:03:33] Analyze path‑parameters in schema… [15:03:33] ✖ Найдены операции без объявленных path‑параметров: 19 [ { "path": "/auth/v1/users/{user_id}", "method": "get", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "get_user_v1_users__user_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/auth/v1/users/{user_id}", "method": "delete", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "delete_user_v1_users__user_id__delete", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/auth/v1/users/{user_id}", "method": "patch", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "update_user_v1_users__user_id__patch", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/profiles/v1/profiles/{profile_id}", "method": "get", "needed": [ [ "profile_id" ] ], "defined": [ "profile_id" ], "missing": [ [ "profile_id" ] ], "opId": "get_profile_v1_profiles__profile_id__get", "security": [ { "HTTPBearer": [] } ] }, { "path": "/profiles/v1/profiles/by-user/{user_id}", "method": "get", "needed": [ [ "user_id" ] ], "defined": [ "user_id" ], "missing": [ [ "user_id" ] ], "opId": "get_by_user_v1_profiles_by_user__user_id__get", "security": [ { "HTTPBearer": [] } ] }, { "path": "/profiles/v1/likes/{target_user_id}", "method": "put", "needed": [ [ "target_user_id" ] ], "defined": [ "target_user_id" ], "missing": [ [ "target_user_id" ] ], "opId": "put_like_v1_likes__target_user_id__put", "security": [ { "HTTPBearer": [] } ] }, { "path": "/profiles/v1/likes/{target_user_id}", "method": "delete", "needed": [ [ "target_user_id" ] ], "defined": [ "target_user_id" ], "missing": [ [ "target_user_id" ] ], "opId": "delete_like_v1_likes__target_user_id__delete", "security": [ { "HTTPBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}", "method": "get", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "get_pair_v1_pairs__pair_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}", "method": "delete", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "delete_pair_v1_pairs__pair_id__delete", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}", "method": "patch", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "update_pair_v1_pairs__pair_id__patch", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}/accept", "method": "post", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "accept_v1_pairs__pair_id__accept_post", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/match/v1/pairs/{pair_id}/reject", "method": "post", "needed": [ [ "pair_id" ] ], "defined": [ "pair_id" ], "missing": [ [ "pair_id" ] ], "opId": "reject_v1_pairs__pair_id__reject_post", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/chat/v1/rooms/{room_id}", "method": "get", "needed": [ [ "room_id" ] ], "defined": [ "room_id" ], "missing": [ [ "room_id" ] ], "opId": "get_room_v1_rooms__room_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/chat/v1/rooms/{room_id}/messages", "method": "get", "needed": [ [ "room_id" ] ], "defined": [ "room_id" ], "missing": [ [ "room_id" ] ], "opId": "list_messages_v1_rooms__room_id__messages_get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/chat/v1/rooms/{room_id}/messages", "method": "post", "needed": [ [ "room_id" ] ], "defined": [ "room_id" ], "missing": [ [ "room_id" ] ], "opId": "send_message_v1_rooms__room_id__messages_post", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}", "method": "get", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "get_invoice_v1_invoices__inv_id__get", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}", "method": "delete", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "delete_invoice_v1_invoices__inv_id__delete", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}", "method": "patch", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "update_invoice_v1_invoices__inv_id__patch", "security": [ { "OAuth2PasswordBearer": [] } ] }, { "path": "/payments/v1/invoices/{inv_id}/mark-paid", "method": "post", "needed": [ [ "inv_id" ] ], "defined": [ "inv_id" ], "missing": [ [ "inv_id" ] ], "opId": "mark_paid_v1_invoices__inv_id__mark_paid_post", "security": [ { "OAuth2PasswordBearer": [] } ] } ] [15:03:33] SMOKE missing-param operations… [15:03:33] → get http://localhost:8080/auth/v1/users/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"User not found"}[15:03:33] → delete http://localhost:8080/auth/v1/users/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 204 [15:03:33] → patch http://localhost:8080/auth/v1/users/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 422 {"detail":[{"type":"missing","loc":["body"],"msg":"Field required","input":null}]}[15:03:33] → get http://localhost:8080/profiles/v1/profiles/00000000-0000-0000-0000-000000000000 (security: [{"HTTPBearer":[]}]) HTTP: 500 Internal Server Error[15:03:33] → get http://localhost:8080/profiles/v1/profiles/by-user/00000000-0000-0000-0000-000000000000 (security: [{"HTTPBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] → put http://localhost:8080/profiles/v1/likes/00000000-0000-0000-0000-000000000000 (security: [{"HTTPBearer":[]}]) HTTP: 204 [15:03:33] → delete http://localhost:8080/profiles/v1/likes/00000000-0000-0000-0000-000000000000 (security: [{"HTTPBearer":[]}]) HTTP: 204 [15:03:33] → get http://localhost:8080/match/v1/pairs/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] → delete http://localhost:8080/match/v1/pairs/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 204 [15:03:33] → patch http://localhost:8080/match/v1/pairs/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 422 {"detail":[{"type":"missing","loc":["body"],"msg":"Field required","input":null}]}[15:03:33] → post http://localhost:8080/match/v1/pairs/00000000-0000-0000-0000-000000000000/accept (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] → post http://localhost:8080/match/v1/pairs/00000000-0000-0000-0000-000000000000/reject (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] → get http://localhost:8080/chat/v1/rooms/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] → get http://localhost:8080/chat/v1/rooms/00000000-0000-0000-0000-000000000000/messages (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Room not found"}[15:03:33] → post http://localhost:8080/chat/v1/rooms/00000000-0000-0000-0000-000000000000/messages (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Room not found"}[15:03:33] → get http://localhost:8080/payments/v1/invoices/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] → delete http://localhost:8080/payments/v1/invoices/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 204 [15:03:33] → patch http://localhost:8080/payments/v1/invoices/00000000-0000-0000-0000-000000000000 (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 422 {"detail":[{"type":"missing","loc":["body"],"msg":"Field required","input":null}]}[15:03:33] → post http://localhost:8080/payments/v1/invoices/00000000-0000-0000-0000-000000000000/mark-paid (security: [{"OAuth2PasswordBearer":[]}]) HTTP: 404 {"detail":"Not found"}[15:03:33] Report: logs/audit_20250810_150332.json [15:03:33] Log: logs/audit_20250810_150332.log