api endpoints fix and inclusion
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
454
logs/audit_20250810_145217.log
Normal file
454
logs/audit_20250810_145217.log
Normal file
@@ -0,0 +1,454 @@
|
||||
[14:52:17] OpenAPI: http://localhost:8080/openapi.json
|
||||
[14:52:17] ✔ OpenAPI fetched (32448 bytes)
|
||||
[14:52:17] Prepare tokens
|
||||
[14:52:17] REGISTER admin+20250810_145217@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
[14:52:17] TOKEN for admin+20250810_145217@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhY2Q5ZTQ5YS1jNTQ5LTQxZDUtODA0NC0zODZkODMzZmVlYjQiLCJlbWFpbCI6ImFkbWluKzIwMjUwODEwXzE0NTIxN0BhdWRpdC5kZXYiLCJyb2xlIjoiQ0xJRU5UIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNjAzN30.dFVm89lOssfFuTI5MJWGTi4c6fVLc80sFZkbdg5o_SU","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhY2Q5ZTQ5YS1jNTQ5LTQxZDUtODA0NC0zODZkODMzZmVlYjQiLCJlbWFpbCI6ImFkbWluKzIwMjUwODEwXzE0NTIxN0BhdWRpdC5kZXYiLCJyb2xlIjoiQ0xJRU5UIiwidHlwZSI6InJlZnJlc2giLCJ[14:52:18] REGISTER client+20250810_145217@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
[14:52:18] TOKEN for client+20250810_145217@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiYzU5YTRiOC03YzA5LTRkMGQtODE3NC1kYjM1ZmRhNzAxOWYiLCJlbWFpbCI6ImNsaWVudCsyMDI1MDgxMF8xNDUyMTdAYXVkaXQuZGV2Iiwicm9sZSI6IkNMSUVOVCIsInR5cGUiOiJhY2Nlc3MiLCJleHAiOjE3NTQ4MDYwMzh9.JnJ-rl58Qtpf8PY-1OjhDjlrCJ66vR-nFO0tEQad7QM","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiYzU5YTRiOC03YzA5LTRkMGQtODE3NC1kYjM1ZmRhNzAxOWYiLCJlbWFpbCI6ImNsaWVudCsyMDI1MDgxMF8xNDUyMTdAYXVkaXQuZGV2Iiwicm9sZSI6IkNMSUVOVCIsInR5cGUiOiJyZWZyZXNoIi[14:52:18] ✔ Tokens acquired
|
||||
[14:52:18] Analyze path‑parameters in schema…
|
||||
[14:52:18] ✖ Найдены операции без объявленных 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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
[14:52:18] SMOKE missing-param operations…
|
||||
449
logs/audit_20250810_145252.json
Normal file
449
logs/audit_20250810_145252.json
Normal file
@@ -0,0 +1,449 @@
|
||||
{
|
||||
"base_url": "http://localhost:8080",
|
||||
"openapi_url": "http://localhost:8080/openapi.json",
|
||||
"ts": "20250810_145252",
|
||||
"summary": {
|
||||
"missing_path_param_ops": 19
|
||||
},
|
||||
"findings": {
|
||||
"missing_path_params": [
|
||||
{
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
445
logs/audit_20250810_145252.log
Normal file
445
logs/audit_20250810_145252.log
Normal file
@@ -0,0 +1,445 @@
|
||||
[14:52:52] OpenAPI: http://localhost:8080/openapi.json
|
||||
[14:52:52] ✔ OpenAPI fetched (32448 bytes)
|
||||
[14:52:52] Analyze path‑parameters in schema…
|
||||
[14:52:52] ✖ Найдены операции без объявленных 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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
[14:52:52] Report: logs/audit_20250810_145252.json
|
||||
[14:52:52] Log: logs/audit_20250810_145252.log
|
||||
449
logs/audit_20250810_145805.json
Normal file
449
logs/audit_20250810_145805.json
Normal file
@@ -0,0 +1,449 @@
|
||||
{
|
||||
"base_url": "http://localhost:8080",
|
||||
"openapi_url": "http://localhost:8080/openapi.json",
|
||||
"ts": "20250810_145805",
|
||||
"summary": {
|
||||
"missing_path_param_ops": 19
|
||||
},
|
||||
"findings": {
|
||||
"missing_path_params": [
|
||||
{
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
494
logs/audit_20250810_145805.log
Normal file
494
logs/audit_20250810_145805.log
Normal file
@@ -0,0 +1,494 @@
|
||||
[14:58:05] OpenAPI: http://localhost:8080/openapi.json
|
||||
[14:58:05] ✔ OpenAPI fetched (32448 bytes)
|
||||
[14:58:05] Prepare tokens
|
||||
[14:58:05] REGISTER admin+20250810_145805@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
[14:58:05] TOKEN for admin+20250810_145805@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NWEzMDU2Mi0yZWZkLTQwODgtODljNi1mZDViYTE2NzlhMGEiLCJlbWFpbCI6ImFkbWluKzIwMjUwODEwXzE0NTgwNUBhdWRpdC5kZXYiLCJyb2xlIjoiQ0xJRU5UIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNjM4NX0.jpBrPjuIurUlY2FzmOjOeiH82Y0OuujKxK10uykHPWc","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NWEzMDU2Mi0yZWZkLTQwODgtODljNi1mZDViYTE2NzlhMGEiLCJlbWFpbCI6ImFkbWluKzIwMjUwODEwXzE0NTgwNUBhdWRpdC5kZXYiLCJyb2xlIjoiQ0xJRU5UIiwidHlwZSI6InJlZnJlc2giLCJ[14:58:05] REGISTER client+20250810_145805@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
[14:58:06] TOKEN for client+20250810_145805@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ODA2YWExMS0xYzQ0LTRjZWMtYjA1Ni1kOWViMjk2ZjNiN2MiLCJlbWFpbCI6ImNsaWVudCsyMDI1MDgxMF8xNDU4MDVAYXVkaXQuZGV2Iiwicm9sZSI6IkNMSUVOVCIsInR5cGUiOiJhY2Nlc3MiLCJleHAiOjE3NTQ4MDYzODZ9.LIs31GuKJTlwWO9L5jCWj6CgQ_cX9go4r4WCtKC5LDc","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI5ODA2YWExMS0xYzQ0LTRjZWMtYjA1Ni1kOWViMjk2ZjNiN2MiLCJlbWFpbCI6ImNsaWVudCsyMDI1MDgxMF8xNDU4MDVAYXVkaXQuZGV2Iiwicm9sZSI6IkNMSUVOVCIsInR5cGUiOiJyZWZyZXNoIi[14:58:06] ✔ Tokens acquired
|
||||
[14:58:06] Analyze path‑parameters in schema…
|
||||
[14:58:06] ✖ Найдены операции без объявленных 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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
[14:58:06] SMOKE missing-param operations…
|
||||
[14:58:06] → get http://localhost:8080/auth/v1/users/{user_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → delete http://localhost:8080/auth/v1/users/{user_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → patch http://localhost:8080/auth/v1/users/{user_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → get http://localhost:8080/profiles/v1/profiles/{profile_id} (security: [{HTTPBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → get http://localhost:8080/profiles/v1/profiles/by-user/{user_id} (security: [{HTTPBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → put http://localhost:8080/profiles/v1/likes/{target_user_id} (security: [{HTTPBearer:[]}])
|
||||
HTTP: 204
|
||||
[14:58:06] → delete http://localhost:8080/profiles/v1/likes/{target_user_id} (security: [{HTTPBearer:[]}])
|
||||
HTTP: 204
|
||||
[14:58:06] → get http://localhost:8080/match/v1/pairs/{pair_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → delete http://localhost:8080/match/v1/pairs/{pair_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → patch http://localhost:8080/match/v1/pairs/{pair_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → post http://localhost:8080/match/v1/pairs/{pair_id}/accept (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → post http://localhost:8080/match/v1/pairs/{pair_id}/reject (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → get http://localhost:8080/chat/v1/rooms/{room_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → get http://localhost:8080/chat/v1/rooms/{room_id}/messages (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → post http://localhost:8080/chat/v1/rooms/{room_id}/messages (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 422
|
||||
{"detail":[{"type":"missing","loc":["body"],"msg":"Field required","input":null}]}[14:58:06] → get http://localhost:8080/payments/v1/invoices/{inv_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 500
|
||||
Internal Server Error[14:58:06] → delete http://localhost:8080/payments/v1/invoices/{inv_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → patch http://localhost:8080/payments/v1/invoices/{inv_id} (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] → post http://localhost:8080/payments/v1/invoices/{inv_id}/mark-paid (security: [{OAuth2PasswordBearer:[]}])
|
||||
HTTP: 403
|
||||
{"detail":"Insufficient role"}[14:58:06] Report: logs/audit_20250810_145805.json
|
||||
[14:58:06] Log: logs/audit_20250810_145805.log
|
||||
449
logs/audit_20250810_150332.json
Normal file
449
logs/audit_20250810_150332.json
Normal file
@@ -0,0 +1,449 @@
|
||||
{
|
||||
"base_url": "http://localhost:8080",
|
||||
"openapi_url": "http://localhost:8080/openapi.json",
|
||||
"ts": "20250810_150332",
|
||||
"summary": {
|
||||
"missing_path_param_ops": 19
|
||||
},
|
||||
"findings": {
|
||||
"missing_path_params": [
|
||||
{
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
494
logs/audit_20250810_150332.log
Normal file
494
logs/audit_20250810_150332.log
Normal file
@@ -0,0 +1,494 @@
|
||||
[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
|
||||
449
logs/audit_20250810_150348.json
Normal file
449
logs/audit_20250810_150348.json
Normal file
@@ -0,0 +1,449 @@
|
||||
{
|
||||
"base_url": "http://localhost:8080",
|
||||
"openapi_url": "http://localhost:8080/openapi.json",
|
||||
"ts": "20250810_150348",
|
||||
"summary": {
|
||||
"missing_path_param_ops": 19
|
||||
},
|
||||
"findings": {
|
||||
"missing_path_params": [
|
||||
{
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
445
logs/audit_20250810_150348.log
Normal file
445
logs/audit_20250810_150348.log
Normal file
@@ -0,0 +1,445 @@
|
||||
[15:03:48] OpenAPI: http://localhost:8080/openapi.json
|
||||
[15:03:48] ✔ OpenAPI fetched (32448 bytes)
|
||||
[15:03:48] Analyze path‑parameters in schema…
|
||||
[15:03:48] ✖ Найдены операции без объявленных 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:48] Report: logs/audit_20250810_150348.json
|
||||
[15:03:48] Log: logs/audit_20250810_150348.log
|
||||
11
logs/audit_20250810_153547.json
Normal file
11
logs/audit_20250810_153547.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"base_url": "http://localhost:8080",
|
||||
"openapi_url": "http://localhost:8080/openapi.json",
|
||||
"ts": "20250810_153547",
|
||||
"summary": {
|
||||
"missing_path_param_ops": 0
|
||||
},
|
||||
"findings": {
|
||||
"missing_path_params": []
|
||||
}
|
||||
}
|
||||
16
logs/audit_20250810_153547.log
Normal file
16
logs/audit_20250810_153547.log
Normal file
@@ -0,0 +1,16 @@
|
||||
[15:35:47] OpenAPI: http://localhost:8080/openapi.json
|
||||
[15:35:47] ✔ OpenAPI fetched (32448 bytes)
|
||||
[15:35:47] Prepare tokens
|
||||
[15:35:48] REGISTER admin+20250810_153547@audit.dev (role=ADMIN) → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
[15:35:48] TOKEN for admin+20250810_153547@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0YjczYjYxMy0wYTFlLTRkODMtYjM3NC1hYWY5OWY4ODVmZDQiLCJlbWFpbCI6ImFkbWluKzIwMjUwODEwXzE1MzU0N0BhdWRpdC5kZXYiLCJyb2xlIjoiQURNSU4iLCJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzU0ODA4NjQ4fQ.7AAL-8NVK3NiJaN0y4iUeZvYdvWnym05R-L9zeqwMr8","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0YjczYjYxMy0wYTFlLTRkODMtYjM3NC1hYWY5OWY4ODVmZDQiLCJl[15:35:48] REGISTER client+20250810_153547@audit.dev (role=CLIENT) → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
[15:35:48] TOKEN for client+20250810_153547@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkMzFjZGFjOS1kYmZjLTQ0NTMtYWVkZi01Y2Q2YWJkZDFhYjciLCJlbWFpbCI6ImNsaWVudCsyMDI1MDgxMF8xNTM1NDdAYXVkaXQuZGV2Iiwicm9sZSI6IkNMSUVOVCIsInR5cGUiOiJhY2Nlc3MiLCJleHAiOjE3NTQ4MDg2NDh9.xRQXWYLDKsgRfvQRc_GN4bEnLsTgctQKAiXImJJsnxE","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkMzFjZGFjOS1kYmZjLTQ0NTMtYWVkZi01Y2Q2YWJkZDFhYjciLC[15:35:48] ✔ Tokens acquired
|
||||
[15:35:48] Analyze path‑parameters in schema…
|
||||
[15:35:48] ✔ Проблем с path‑параметрами в схеме не найдено.
|
||||
[15:35:48] Report: logs/audit_20250810_153547.json
|
||||
[15:35:48] Log: logs/audit_20250810_153547.log
|
||||
11
logs/openapi_audit_20250810_143846.log
Normal file
11
logs/openapi_audit_20250810_143846.log
Normal file
@@ -0,0 +1,11 @@
|
||||
[0;36m[14:38:46][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m No missing path-param definitions in schema.
|
||||
[0;36m[14:38:46][0m Prepare tokens
|
||||
[0;36m[14:38:46][0m REGISTER admin+1754804326@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"b661b2ce-8109-4481-b126-0ac4ab4712dc","email":"admin+1754804326@audit.dev","full_name":"Audit Admin","role":"ADMIN","is_active":true}[0;36m[14:38:46][0m REGISTER client+1754804326@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"ad3ddf95-3bf4-4de0-9c01-d8bfa7e9afaa","email":"client+1754804326@audit.dev","full_name":"Audit Client","role":"CLIENT","is_active":true}[0;36m[14:38:46][0m TOKEN for admin+1754804326@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiNjYxYjJjZS04MTA5LTQ0ODEtYjEyNi0wYWM0YWI0NzEyZGMiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQzMjZAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTIyN30.qekpbC4oywTg6GUsZrwLkLi6InadqlAyg9IlXSWiuy8","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJiNjYxYjJjZS04MTA5LTQ0ODEtYjEyNi0wYWM0YWI0NzEyZGMiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQzMjZAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTYzMjd9.fgzpO2kGqQIDjZpddufaoZwNliSIKs78MOOs6vEuxQA","token_type":"bearer"}200|/tmp/tmp.MQwQIiPD4R/body_1754804327177054908.json✖[0m Empty token in response
|
||||
11
logs/openapi_audit_20250810_143930.log
Normal file
11
logs/openapi_audit_20250810_143930.log
Normal file
@@ -0,0 +1,11 @@
|
||||
[0;36m[14:39:30][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m No missing path-param definitions in schema.
|
||||
[0;36m[14:39:30][0m Prepare tokens
|
||||
[0;36m[14:39:30][0m REGISTER admin+1754804370@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"d895702e-003e-4c76-b881-3dd9013ad718","email":"admin+1754804370@audit.dev","full_name":"Audit Admin","role":"ADMIN","is_active":true}[0;36m[14:39:31][0m REGISTER client+1754804370@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"9de89380-7dc1-4c9b-a725-6b3892dd4d86","email":"client+1754804370@audit.dev","full_name":"Audit Client","role":"CLIENT","is_active":true}[0;36m[14:39:31][0m TOKEN for admin+1754804370@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkODk1NzAyZS0wMDNlLTRjNzYtYjg4MS0zZGQ5MDEzYWQ3MTgiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQzNzBAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTI3MX0.ctbEhzmwPRc_1nyxc4-SYohdTmM__H2Afe4csjktamQ","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJkODk1NzAyZS0wMDNlLTRjNzYtYjg4MS0zZGQ5MDEzYWQ3MTgiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQzNzBAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTYzNzF9.h1tbqmU75s4IveybFQJTZB6cx5O-HdRr8QDS5ufcdgs","token_type":"bearer"}200|/tmp/tmp.domipoILvA/body_1754804371694718750.json✖[0m Empty token in response
|
||||
11
logs/openapi_audit_20250810_143952.log
Normal file
11
logs/openapi_audit_20250810_143952.log
Normal file
@@ -0,0 +1,11 @@
|
||||
[0;36m[14:39:52][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m No missing path-param definitions in schema.
|
||||
[0;36m[14:39:52][0m Prepare tokens
|
||||
[0;36m[14:39:52][0m REGISTER admin+1754804392@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"4ea8cfdf-411a-4156-a708-20e1f937c0c7","email":"admin+1754804392@audit.dev","full_name":"Audit Admin","role":"ADMIN","is_active":true}[0;36m[14:39:52][0m REGISTER client+1754804392@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"606ec141-5a41-4ae4-a01d-0e271dca5e76","email":"client+1754804392@audit.dev","full_name":"Audit Client","role":"CLIENT","is_active":true}[0;36m[14:39:52][0m TOKEN for admin+1754804392@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0ZWE4Y2ZkZi00MTFhLTQxNTYtYTcwOC0yMGUxZjkzN2MwYzciLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQzOTJAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTI5M30.bMvuxJyAHV9xQT49bQlcndEacujplwvQIwKc2LBcu8E","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0ZWE4Y2ZkZi00MTFhLTQxNTYtYTcwOC0yMGUxZjkzN2MwYzciLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQzOTJAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTYzOTN9.fOLyAp8-JLsF5ntSvcvbmbarYPlH33xJJzBIqOtoHj8","token_type":"bearer"}200|/tmp/tmp.8a4EKh0yJd/body_1754804393153931372.json✖[0m Empty token in response
|
||||
11
logs/openapi_audit_20250810_144126.log
Normal file
11
logs/openapi_audit_20250810_144126.log
Normal file
@@ -0,0 +1,11 @@
|
||||
[0;36m[14:41:26][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m Проблем с path‑параметрами в схеме не найдено.
|
||||
[0;36m[14:41:26][0m Prepare tokens
|
||||
[0;36m[14:41:26][0m REGISTER admin+1754804486@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"fa614a25-1a90-4219-8d99-328ccb6261af","email":"admin+1754804486@audit.dev","full_name":"Audit Admin","role":"ADMIN","is_active":true}[0;36m[14:41:26][0m REGISTER client+1754804486@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"b7aca4cd-7321-4666-83f4-6dcd2f41d4e4","email":"client+1754804486@audit.dev","full_name":"Audit Client","role":"CLIENT","is_active":true}[0;36m[14:41:26][0m TOKEN for admin+1754804486@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJmYTYxNGEyNS0xYTkwLTQyMTktOGQ5OS0zMjhjY2I2MjYxYWYiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ0ODZAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTM4Nn0.GB4lBfmEzpkXJ6N51URV4RR1w4096jdL3YSwTxzlF2M","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJmYTYxNGEyNS0xYTkwLTQyMTktOGQ5OS0zMjhjY2I2MjYxYWYiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ0ODZAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTY0ODZ9.-JhPKTCY0t3SpQmoLA6iKYadisMyESrn-rWu1yvV6lg","token_type":"bearer"}200|/tmp/tmp.IxGgVqPsBj/h_1754804486719735758.txt|/tmp/tmp.IxGgVqPsBj/b_1754804486720782176.txt✖[0m Empty access_token in response. See body above.
|
||||
10
logs/openapi_audit_20250810_144251.log
Normal file
10
logs/openapi_audit_20250810_144251.log
Normal file
@@ -0,0 +1,10 @@
|
||||
[0;36m[14:42:51][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m Проблем с path‑параметрами в схеме не найдено.
|
||||
[0;36m[14:42:51][0m REGISTER admin+1754804571@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"5159a9c9-2cb2-439e-8fba-f074df6f3f62","email":"admin+1754804571@audit.dev","full_name":"Audit ADMIN","role":"ADMIN","is_active":true}[0;36m[14:42:51][0m REGISTER client+1754804571@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"0a1261da-cd58-45d2-b2ac-ba1cbca3ed04","email":"client+1754804571@audit.dev","full_name":"Audit CLIENT","role":"CLIENT","is_active":true}[0;36m[14:42:51][0m TOKEN for admin+1754804571@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1MTU5YTljOS0yY2IyLTQzOWUtOGZiYS1mMDc0ZGY2ZjNmNjIiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ1NzFAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTQ3Mn0.tNxZJFWwd_z-6gPc8WD05_EaB5-ZR-OhHjzqC84-rzI","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1MTU5YTljOS0yY2IyLTQzOWUtOGZiYS1mMDc0ZGY2ZjNmNjIiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ1NzFAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTY1NzJ9.kPQdnZArXVW0YlhJLcjfSLDz0bZkNanVuv_ORofjZHw","token_type":"bearer"}[0;31m✖[0m Empty access_token in response
|
||||
10
logs/openapi_audit_20250810_144444.log
Normal file
10
logs/openapi_audit_20250810_144444.log
Normal file
@@ -0,0 +1,10 @@
|
||||
[0;36m[14:44:45][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m Проблем с path‑параметрами в схеме не найдено.
|
||||
[0;36m[14:44:45][0m REGISTER admin+1754804685@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"240ec6b3-f808-4c7f-b34e-94ef2d116d02","email":"admin+1754804685@audit.dev","full_name":"Audit ADMIN","role":"ADMIN","is_active":true}[0;36m[14:44:45][0m REGISTER client+1754804685@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"7bbcf608-e287-47bb-b764-f9a8a6dd51ef","email":"client+1754804685@audit.dev","full_name":"Audit CLIENT","role":"CLIENT","is_active":true}[0;36m[14:44:45][0m TOKEN for admin+1754804685@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyNDBlYzZiMy1mODA4LTRjN2YtYjM0ZS05NGVmMmQxMTZkMDIiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ2ODVAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTU4NX0.Dqpib2vUHp01UG9fnzpTheJFlHx7YSIzb-Nos8mDZiA","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyNDBlYzZiMy1mODA4LTRjN2YtYjM0ZS05NGVmMmQxMTZkMDIiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ2ODVAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTY2ODV9.6oaupNjTprbAuJ3IodqJJePgoOUpiB-hsVYYKc94mdE","token_type":"bearer"}[0;31m✖[0m Empty access_token in response
|
||||
14
logs/openapi_audit_20250810_144749.log
Normal file
14
logs/openapi_audit_20250810_144749.log
Normal file
@@ -0,0 +1,14 @@
|
||||
[0;36m[14:47:49][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m Проблем с path‑параметрами в схеме не найдено.
|
||||
[0;36m[14:47:49][0m REGISTER admin+1754804869@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"e59260d0-9b68-4b34-bb99-79f2388db828","email":"admin+1754804869@audit.dev","full_name":"Audit ADMIN","role":"ADMIN","is_active":true}[0;36m[14:47:49][0m REGISTER client+1754804869@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"24fc407d-3b73-4f43-aec9-75a5acb43957","email":"client+1754804869@audit.dev","full_name":"Audit CLIENT","role":"CLIENT","is_active":true}[0;36m[14:47:50][0m TOKEN for admin+1754804869@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlNTkyNjBkMC05YjY4LTRiMzQtYmI5OS03OWYyMzg4ZGI4MjgiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ4NjlAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTc3MH0.RLw5GBq3ti79qdt3FTvMCcL4J_wDhR-UDZatVYTJrbo","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJlNTkyNjBkMC05YjY4LTRiMzQtYmI5OS03OWYyMzg4ZGI4MjgiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ4NjlAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTY4NzB9.YkAPwLUHuIjz40-R-OGe7RqxD3PpfnP9qf90AFap-Yk","token_type":"bearer"}
|
||||
[0;36m[14:47:50][0m TOKEN for client+1754804869@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyNGZjNDA3ZC0zYjczLTRmNDMtYWVjOS03NWE1YWNiNDM5NTciLCJlbWFpbCI6ImNsaWVudCsxNzU0ODA0ODY5QGF1ZGl0LmRldiIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzU0ODA1NzcwfQ.hbPMN71FWv7E1lORHVwIO-i0E92wiV6wvrvv-s2JeQU","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyNGZjNDA3ZC0zYjczLTRmNDMtYWVjOS03NWE1YWNiNDM5NTciLCJlbWFpbCI6ImNsaWVudCsxNzU0ODA0ODY5QGF1ZGl0LmRldiIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoicmVmcmVzaCIsImV4cCI6MTc1NzM5Njg3MH0.5rHQJ-11xduNN5RZ-qVc0eFn6usQsCdDaPNsUZU2zwQ","token_type":"bearer"}
|
||||
[0;32m✔[0m Tokens acquired
|
||||
14
logs/openapi_audit_20250810_144935.log
Normal file
14
logs/openapi_audit_20250810_144935.log
Normal file
@@ -0,0 +1,14 @@
|
||||
[0;36m[14:49:35][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m Проблем с path‑параметрами в схеме не найдено.
|
||||
[0;36m[14:49:35][0m REGISTER admin+1754804975@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"379e9211-32ec-4135-9e82-1f550e4e1269","email":"admin+1754804975@audit.dev","full_name":"Audit ADMIN","role":"ADMIN","is_active":true}[0;36m[14:49:35][0m REGISTER client+1754804975@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"6ca28dcd-f7c2-4a60-bed3-57b412b00404","email":"client+1754804975@audit.dev","full_name":"Audit CLIENT","role":"CLIENT","is_active":true}[0;36m[14:49:36][0m TOKEN for admin+1754804975@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzllOTIxMS0zMmVjLTQxMzUtOWU4Mi0xZjU1MGU0ZTEyNjkiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ5NzVAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwNTg3Nn0.qjZ1pkegHeGwN5mXez1G6PzDoSmRnTiYzVjYbxcDJ2g","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIzNzllOTIxMS0zMmVjLTQxMzUtOWU4Mi0xZjU1MGU0ZTEyNjkiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDQ5NzVAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTY5NzZ9.Hyg05Y_W-oSpvvC0vyJ_hECSQEE0nQv6VniZQvX4yH8","token_type":"bearer"}
|
||||
[0;36m[14:49:36][0m TOKEN for client+1754804975@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2Y2EyOGRjZC1mN2MyLTRhNjAtYmVkMy01N2I0MTJiMDA0MDQiLCJlbWFpbCI6ImNsaWVudCsxNzU0ODA0OTc1QGF1ZGl0LmRldiIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzU0ODA1ODc2fQ.iKXVOwmi3kTQsK2DyDtgR4vCL4ASDF7t3Oo9oDSCtuA","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2Y2EyOGRjZC1mN2MyLTRhNjAtYmVkMy01N2I0MTJiMDA0MDQiLCJlbWFpbCI6ImNsaWVudCsxNzU0ODA0OTc1QGF1ZGl0LmRldiIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoicmVmcmVzaCIsImV4cCI6MTc1NzM5Njk3Nn0.z7N5eYxIO3pR9Y99x44_tHDQ1zBLa8vQop1Rsz1Kg-A","token_type":"bearer"}
|
||||
[0;32m✔[0m Tokens acquired
|
||||
14
logs/openapi_audit_20250810_153553.log
Normal file
14
logs/openapi_audit_20250810_153553.log
Normal file
@@ -0,0 +1,14 @@
|
||||
[0;36m[15:35:53][0m OPENAPI: http://localhost:8080/openapi.json
|
||||
[0;32m✔[0m OpenAPI fetched (32448 bytes)
|
||||
[0;32m✔[0m Проблем с path‑параметрами в схеме не найдено.
|
||||
[0;36m[15:35:53][0m REGISTER admin+1754807753@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"8913ac48-c289-43b2-87db-a37aa5e39548","email":"admin+1754807753@audit.dev","full_name":"Audit ADMIN","role":"ADMIN","is_active":true}[0;36m[15:35:54][0m REGISTER client+1754807753@audit.dev → http://localhost:8080/auth/v1/register
|
||||
HTTP: 201
|
||||
{"id":"0f4a02da-d0fa-494e-abbf-a2968ad44769","email":"client+1754807753@audit.dev","full_name":"Audit CLIENT","role":"CLIENT","is_active":true}[0;36m[15:35:54][0m TOKEN for admin+1754807753@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4OTEzYWM0OC1jMjg5LTQzYjItODdkYi1hMzdhYTVlMzk1NDgiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDc3NTNAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6ImFjY2VzcyIsImV4cCI6MTc1NDgwODY1NH0.YRh6bpLSSdGVDPqnSX4pEKPOshqqSjBNi54LUEICI70","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4OTEzYWM0OC1jMjg5LTQzYjItODdkYi1hMzdhYTVlMzk1NDgiLCJlbWFpbCI6ImFkbWluKzE3NTQ4MDc3NTNAYXVkaXQuZGV2Iiwicm9sZSI6IkFETUlOIiwidHlwZSI6InJlZnJlc2giLCJleHAiOjE3NTczOTk3NTR9.HGPD33LyxA32Q6o_Vf93D8nUfqxPKuT9hxZXawptXO8","token_type":"bearer"}
|
||||
[0;36m[15:35:54][0m TOKEN for client+1754807753@audit.dev → http://localhost:8080/auth/v1/token
|
||||
HTTP: 200
|
||||
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIwZjRhMDJkYS1kMGZhLTQ5NGUtYWJiZi1hMjk2OGFkNDQ3NjkiLCJlbWFpbCI6ImNsaWVudCsxNzU0ODA3NzUzQGF1ZGl0LmRldiIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzU0ODA4NjU0fQ.o0q7ADkiX8uyfd_5U_A5ikcjDWKGOZyxA7Qn5Mkg3zY","refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIwZjRhMDJkYS1kMGZhLTQ5NGUtYWJiZi1hMjk2OGFkNDQ3NjkiLCJlbWFpbCI6ImNsaWVudCsxNzU0ODA3NzUzQGF1ZGl0LmRldiIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoicmVmcmVzaCIsImV4cCI6MTc1NzM5OTc1NH0.rdHhue9u-Xe-xq2EdQvV2fc0FuYV6CiVv7BXIW56fY4","token_type":"bearer"}
|
||||
[0;32m✔[0m Tokens acquired
|
||||
79
logs/user_flow_20250810_142009.log
Normal file
79
logs/user_flow_20250810_142009.log
Normal file
@@ -0,0 +1,79 @@
|
||||
-----
|
||||
[2025-08-10 14:20:09] BASE_URL: http://localhost:8080
|
||||
[2025-08-10 14:20:09] EMAIL: user+1754803209@example.com
|
||||
[2025-08-10 14:20:09] FULL_NAME: Demo User
|
||||
[2025-08-10 14:20:09] ROLE: CLIENT
|
||||
-----
|
||||
[2025-08-10 14:20:09] REGISTER
|
||||
[2025-08-10 14:20:09] URL: http://localhost:8080/auth/v1/register
|
||||
[2025-08-10 14:20:09] HTTP: 201
|
||||
[2025-08-10 14:20:09] Body:
|
||||
{
|
||||
"id": "f4ffd570-5f43-4268-ae6c-cf3f8ec57793",
|
||||
"email": "user+1754803209@example.com",
|
||||
"full_name": "Demo User",
|
||||
"role": "CLIENT",
|
||||
"is_active": true
|
||||
}
|
||||
-----
|
||||
[2025-08-10 14:20:09] LOGIN / TOKEN
|
||||
[2025-08-10 14:20:09] URL: http://localhost:8080/auth/v1/token
|
||||
[2025-08-10 14:20:09] HTTP: 200
|
||||
[2025-08-10 14:20:09] Body:
|
||||
{
|
||||
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJmNGZmZDU3MC01ZjQzLTQyNjgtYWU2Yy1jZjNmOGVjNTc3OTMiLCJlbWFpbCI6InVzZXIrMTc1NDgwMzIwOUBleGFtcGxlLmNvbSIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzU0ODA0MTA5fQ.HgFmBf7lVPTFAiS91k-Ezh5DDjbdFCcMX9hdxY6-YcM",
|
||||
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJmNGZmZDU3MC01ZjQzLTQyNjgtYWU2Yy1jZjNmOGVjNTc3OTMiLCJlbWFpbCI6InVzZXIrMTc1NDgwMzIwOUBleGFtcGxlLmNvbSIsInJvbGUiOiJDTElFTlQiLCJ0eXBlIjoicmVmcmVzaCIsImV4cCI6MTc1NzM5NTIwOX0.bepjGzYMGld7o_KB39Z3K7nYmt4plVKotvF37E8zawA",
|
||||
"token_type": "bearer"
|
||||
}
|
||||
[2025-08-10 14:20:09] Got access_token (hidden)
|
||||
-----
|
||||
-----
|
||||
[2025-08-10 14:20:09] GET /profiles/me
|
||||
[2025-08-10 14:20:09] URL: http://localhost:8080/profiles/v1/profiles/me
|
||||
[2025-08-10 14:20:09] HTTP: 404
|
||||
[2025-08-10 14:20:09] Body:
|
||||
{
|
||||
"detail": "Profile not found"
|
||||
}
|
||||
[2025-08-10 14:20:09] Profile not found — creating…
|
||||
-----
|
||||
[2025-08-10 14:20:09] CREATE /profiles
|
||||
[2025-08-10 14:20:09] URL: http://localhost:8080/profiles/v1/profiles
|
||||
[2025-08-10 14:20:09] HTTP: 201
|
||||
[2025-08-10 14:20:09] Body:
|
||||
{
|
||||
"gender": "other",
|
||||
"city": "Moscow",
|
||||
"languages": [
|
||||
"ru",
|
||||
"en"
|
||||
],
|
||||
"interests": [
|
||||
"music",
|
||||
"travel"
|
||||
],
|
||||
"id": "aa6d6046-b235-4727-a37d-9b74f36cce00",
|
||||
"user_id": "f4ffd570-5f43-4268-ae6c-cf3f8ec57793",
|
||||
"photo_url": null
|
||||
}
|
||||
-----
|
||||
[2025-08-10 14:20:09] GET /profiles/me (after create)
|
||||
[2025-08-10 14:20:09] URL: http://localhost:8080/profiles/v1/profiles/me
|
||||
[2025-08-10 14:20:09] HTTP: 200
|
||||
[2025-08-10 14:20:09] Body:
|
||||
{
|
||||
"gender": "other",
|
||||
"city": "Moscow",
|
||||
"languages": [
|
||||
"ru",
|
||||
"en"
|
||||
],
|
||||
"interests": [
|
||||
"music",
|
||||
"travel"
|
||||
],
|
||||
"id": "aa6d6046-b235-4727-a37d-9b74f36cce00",
|
||||
"user_id": "f4ffd570-5f43-4268-ae6c-cf3f8ec57793",
|
||||
"photo_url": null
|
||||
}
|
||||
[2025-08-10 14:20:09] DONE. Log saved to: logs/user_flow_20250810_142009.log
|
||||
Reference in New Issue
Block a user