https://github.com/Rifferd/diffduel
· scanned 2026-06-15 23:51 UTC (2 months, 3 weeks ago)
179 raw signals (0 security + 179 graph)
Last scanned 2 months, 3 weeks ago · v1 · 149 actionable findings from 1 signal source. 30 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 2366 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_client |
software | healthy | apps/bot/tests/test_internal_client.py:23 |
test_redeem_success |
software | healthy | apps/bot/tests/test_internal_client.py:32 |
handler |
software | healthy | apps/bot/tests/test_internal_client.py:133 |
test_redeem_invalid_code |
software | healthy | apps/bot/tests/test_internal_client.py:44 |
test_resolve_linked |
software | healthy | apps/bot/tests/test_internal_client.py:53 |
test_resolve_not_linked_404 |
software | healthy | apps/bot/tests/test_internal_client.py:63 |
test_get_profile_global_elo_is_max |
software | healthy | apps/bot/tests/test_internal_client.py:72 |
test_get_profile_no_topics_default_elo |
software | healthy | apps/bot/tests/test_internal_client.py:93 |
test_get_leaderboard_parses_rows |
software | healthy | apps/bot/tests/test_internal_client.py:103 |
test_get_leaderboard_non_list_is_empty |
software | healthy | apps/bot/tests/test_internal_client.py:121 |
test_server_5xx_retried_then_error |
software | healthy | apps/bot/tests/test_internal_client.py:130 |
__init__ |
software | healthy | apps/bot/tests/test_logic.py:22 |
redeem |
software | healthy | apps/bot/tests/test_logic.py:37 |
resolve |
software | healthy | apps/bot/tests/test_logic.py:41 |
get_profile |
software | healthy | apps/bot/tests/test_logic.py:44 |
get_leaderboard |
software | healthy | apps/bot/tests/test_logic.py:48 |
_value |
software | healthy | apps/bot/tests/test_logic.py:52 |
test_main_menu_window |
software | healthy | apps/bot/tests/test_logic.py:61 |
test_link_prompt_window_has_back |
software | healthy | apps/bot/tests/test_logic.py:67 |
test_duel_topics_window |
software | healthy | apps/bot/tests/test_logic.py:73 |
test_redeem_code_success_calls_redeem |
software | healthy | apps/bot/tests/test_logic.py:82 |
test_redeem_code_invalid |
software | healthy | apps/bot/tests/test_logic.py:90 |
test_redeem_code_api_down |
software | healthy | apps/bot/tests/test_logic.py:96 |
test_profile_window_linked |
software | healthy | apps/bot/tests/test_logic.py:105 |
test_profile_window_not_linked |
software | healthy | apps/bot/tests/test_logic.py:117 |
test_profile_window_api_down |
software | healthy | apps/bot/tests/test_logic.py:123 |
test_profile_window_profile_missing |
software | healthy | apps/bot/tests/test_logic.py:129 |
test_leaderboard_window_renders_rows |
software | healthy | apps/bot/tests/test_logic.py:141 |
test_leaderboard_window_empty |
software | healthy | apps/bot/tests/test_logic.py:154 |
test_leaderboard_window_api_down |
software | healthy | apps/bot/tests/test_logic.py:160 |
test_duel_invite_window_known_topic |
software | healthy | apps/bot/tests/test_logic.py:169 |
test_duel_invite_window_unknown_topic_falls_back |
software | healthy | apps/bot/tests/test_logic.py:177 |
test_parse_start_challenge_with_topic |
software | healthy | apps/bot/tests/test_logic.py:186 |
test_parse_start_challenge_without_topic |
software | healthy | apps/bot/tests/test_logic.py:190 |
test_parse_start_challenge_none_for_link_code |
software | healthy | apps/bot/tests/test_logic.py:194 |
test_challenge_chat_window_builds_switch_button |
software | healthy | apps/bot/tests/test_logic.py:202 |
test_challenge_chat_window_empty_topic_query |
software | healthy | apps/bot/tests/test_logic.py:215 |
_flat |
software | healthy | apps/bot/tests/test_keyboards.py:24 |
test_main_menu_has_all_actions |
software | healthy | apps/bot/tests/test_keyboards.py:29 |
test_main_menu_webapp_button_points_to_web_url |
software | healthy | apps/bot/tests/test_keyboards.py:36 |
test_main_menu_layout_rows |
software | healthy | apps/bot/tests/test_keyboards.py:44 |
test_back_keyboard_returns_to_menu |
software | healthy | apps/bot/tests/test_keyboards.py:53 |
test_topics_keyboard_one_button_per_topic_plus_back |
software | healthy | apps/bot/tests/test_keyboards.py:60 |
test_duel_share_keyboard_has_url_and_back |
software | healthy | apps/bot/tests/test_keyboards.py:70 |
test_duel_link_encodes_topic |
software | healthy | apps/bot/tests/test_links.py:16 |
test_private_duel_link_encodes_code |
software | healthy | apps/bot/tests/test_links.py:21 |
test_miniapp_duel_link |
software | healthy | apps/bot/tests/test_links.py:26 |
test_link_bot_deeplink |
software | healthy | apps/bot/tests/test_links.py:32 |
test_parse_duel_topic_callback |
software | healthy | apps/bot/tests/test_links.py:46 |
test_duel_topic_callback_roundtrip |
software | healthy | apps/bot/tests/test_links.py:50 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
pnpm-lock.yaml |
software | healthy | pnpm-lock.yaml |
package.json |
software | healthy | package.json |
pnpm-workspace.yaml |
software | healthy | pnpm-workspace.yaml |
.env.example |
software | healthy | .env.example |
Makefile |
software | healthy | Makefile |
README.md |
software | healthy | apps/bot/README.md |
Dockerfile |
software | healthy | apps/bot/Dockerfile |
.env.example |
software | healthy | apps/bot/.env.example |
pyproject.toml |
software | healthy | apps/bot/pyproject.toml |
test_internal_client.py |
software | healthy | apps/bot/tests/test_internal_client.py |
__init__.py |
software | healthy | apps/bot/tests/__init__.py |
conftest.py |
software | healthy | apps/bot/tests/conftest.py |
test_logic.py |
software | healthy | apps/bot/tests/test_logic.py |
test_keyboards.py |
software | healthy | apps/bot/tests/test_keyboards.py |
test_links.py |
software | healthy | apps/bot/tests/test_links.py |
test_inline.py |
software | healthy | apps/bot/tests/test_inline.py |
__init__.py |
software | healthy | apps/bot/src/__init__.py |
links.py |
software | healthy | apps/bot/src/bot/links.py |
states.py |
software | healthy | apps/bot/src/bot/states.py |
__init__.py |
software | healthy | apps/bot/src/bot/__init__.py |
inline_store.py |
software | healthy | apps/bot/src/bot/inline_store.py |
constants.py |
software | healthy | apps/bot/src/bot/constants.py |
config.py |
software | healthy | apps/bot/src/bot/config.py |
views.py |
software | healthy | apps/bot/src/bot/views.py |
logging.py |
software | healthy | apps/bot/src/bot/logging.py |
inline.py |
software | healthy | apps/bot/src/bot/inline.py |
internal_client.py |
software | healthy | apps/bot/src/bot/internal_client.py |
main.py |
software | healthy | apps/bot/src/bot/main.py |
keyboards.py |
software | healthy | apps/bot/src/bot/keyboards.py |
callbacks.py |
software | healthy | apps/bot/src/bot/handlers/callbacks.py |
logic.py |
software | healthy | apps/bot/src/bot/handlers/logic.py |
__init__.py |
software | healthy | apps/bot/src/bot/handlers/__init__.py |
link.py |
software | healthy | apps/bot/src/bot/handlers/link.py |
inline_query.py |
software | healthy | apps/bot/src/bot/handlers/inline_query.py |
menu.py |
software | healthy | apps/bot/src/bot/handlers/menu.py |
fallback.py |
software | healthy | apps/bot/src/bot/handlers/fallback.py |
README.md |
software | healthy | apps/api/README.md |
Dockerfile |
software | healthy | apps/api/Dockerfile |
.env.example |
software | healthy | apps/api/.env.example |
pyproject.toml |
software | healthy | apps/api/pyproject.toml |
tasks_javascript.json |
software | healthy | apps/api/seeds/tasks_javascript.json |
tasks_python.json |
software | healthy | apps/api/seeds/tasks_python.json |
tasks_sql.json |
software | healthy | apps/api/seeds/tasks_sql.json |
topics.json |
software | healthy | apps/api/seeds/topics.json |
test_telegram_auth.py |
software | healthy | apps/api/tests/test_telegram_auth.py |
__init__.py |
software | healthy | apps/api/tests/__init__.py |
conftest.py |
software | healthy | apps/api/tests/conftest.py |
test_telegram.py |
software | healthy | apps/api/tests/test_telegram.py |
test_tasks_solo.py |
software | healthy | apps/api/tests/test_tasks_solo.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
FakeClient |
software | healthy | apps/bot/tests/test_logic.py:19 |
LinkFlow |
software | healthy | apps/bot/src/bot/states.py:12 |
DuelFlow |
software | healthy | apps/bot/src/bot/states.py:18 |
InlineMessageStore |
software | healthy | apps/bot/src/bot/inline_store.py:25 |
Topic |
software | healthy | apps/bot/src/bot/constants.py:12 |
Settings |
software | healthy | apps/bot/src/bot/config.py:15 |
DuelInvite |
software | healthy | apps/bot/src/bot/inline.py:36 |
InternalClientError |
software | healthy | apps/bot/src/bot/internal_client.py:33 |
InvalidLinkCodeError |
software | healthy | apps/bot/src/bot/internal_client.py:37 |
NotLinkedError |
software | healthy | apps/bot/src/bot/internal_client.py:41 |
LinkedUser |
software | healthy | apps/bot/src/bot/internal_client.py:46 |
Profile |
software | healthy | apps/bot/src/bot/internal_client.py:54 |
LeaderboardRow |
software | healthy | apps/bot/src/bot/internal_client.py:65 |
InternalClient |
software | healthy | apps/bot/src/bot/internal_client.py:73 |
_RetryableStatus |
software | healthy | apps/bot/src/bot/internal_client.py:221 |
BotStartupError |
software | healthy | apps/bot/src/bot/main.py:29 |
Window |
software | healthy | apps/bot/src/bot/handlers/logic.py:30 |
TestProdConfigGuard |
software | healthy | apps/api/tests/test_security.py:95 |
DailyTask |
software | healthy | apps/api/src/daily/schemas.py:17 |
DailyAnswerSubmit |
software | healthy | apps/api/src/daily/schemas.py:24 |
DailyAnswerResult |
software | healthy | apps/api/src/daily/schemas.py:31 |
DailyLeaderboardEntry |
software | healthy | apps/api/src/daily/schemas.py:45 |
DailyMyPosition |
software | healthy | apps/api/src/daily/schemas.py:55 |
DailyPgRepository |
software | healthy | apps/api/src/daily/repository.py:26 |
DailyRedisRepository |
software | healthy | apps/api/src/daily/repository.py:66 |
DailyChallenge |
software | healthy | apps/api/src/daily/models.py:15 |
DailyService |
software | healthy | apps/api/src/daily/service.py:48 |
UserPublic |
software | healthy | apps/api/src/users/schemas.py:34 |
UserMe |
software | healthy | apps/api/src/users/schemas.py:52 |
TopicRating |
software | healthy | apps/api/src/users/schemas.py:59 |
UserProfile |
software | healthy | apps/api/src/users/schemas.py:67 |
TopicAccuracy |
software | healthy | apps/api/src/users/schemas.py:81 |
UserStats |
software | healthy | apps/api/src/users/schemas.py:92 |
DuelHistoryItem |
software | healthy | apps/api/src/users/schemas.py:107 |
AvatarPresignRequest |
software | healthy | apps/api/src/users/schemas.py:124 |
AvatarPresignResponse |
software | healthy | apps/api/src/users/schemas.py:131 |
AvatarConfirmRequest |
software | healthy | apps/api/src/users/schemas.py:139 |
UserUpdate |
software | healthy | apps/api/src/users/schemas.py:145 |
TopicElo |
software | healthy | apps/api/src/users/repository.py:19 |
ProfileStats |
software | healthy | apps/api/src/users/repository.py:26 |
DuelHistoryRow |
software | healthy | apps/api/src/users/repository.py:33 |
TopicAccuracyRow |
software | healthy | apps/api/src/users/repository.py:46 |
UserRepository |
software | healthy | apps/api/src/users/repository.py:54 |
User |
software | healthy | apps/api/src/users/models.py:18 |
Rating |
software | healthy | apps/api/src/users/models.py:37 |
UserService |
software | healthy | apps/api/src/users/service.py:37 |
RegisterRequest |
software | healthy | apps/api/src/auth/schemas.py:10 |
LoginRequest |
software | healthy | apps/api/src/auth/schemas.py:21 |
TokenResponse |
software | healthy | apps/api/src/auth/schemas.py:29 |
RegisterResponse |
software | healthy | apps/api/src/auth/schemas.py:37 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
apps |
software | healthy | apps |
bot |
software | healthy | apps/bot |
tests |
software | healthy | apps/bot/tests |
src |
software | healthy | apps/bot/src |
bot |
software | healthy | apps/bot/src/bot |
handlers |
software | healthy | apps/bot/src/bot/handlers |
api |
software | healthy | apps/api |
seeds |
software | healthy | apps/api/seeds |
tests |
software | healthy | apps/api/tests |
migrations |
software | healthy | apps/api/migrations |
versions |
software | healthy | apps/api/migrations/versions |
src |
software | healthy | apps/api/src |
daily |
software | healthy | apps/api/src/daily |
users |
software | healthy | apps/api/src/users |
auth |
software | healthy | apps/api/src/auth |
duels |
software | healthy | apps/api/src/duels |
topics |
software | healthy | apps/api/src/topics |
telegram |
software | healthy | apps/api/src/telegram |
tournaments |
software | healthy | apps/api/src/tournaments |
ai_review |
software | healthy | apps/api/src/ai_review |
internal_api |
software | healthy | apps/api/src/internal_api |
tasks |
software | healthy | apps/api/src/tasks |
leaderboard |
software | healthy | apps/api/src/leaderboard |
billing |
software | healthy | apps/api/src/billing |
providers |
software | healthy | apps/api/src/billing/providers |
admin |
software | healthy | apps/api/src/admin |
core |
software | healthy | apps/api/src/core |
workers |
software | healthy | apps/workers |
tests |
software | healthy | apps/workers/tests |
assets |
software | healthy | apps/workers/assets |
fonts |
software | healthy | apps/workers/assets/fonts |
src |
software | healthy | apps/workers/src |
workers |
software | healthy | apps/workers/src/workers |
admin |
software | healthy | apps/admin |
src |
software | healthy | apps/admin/src |
auth |
software | healthy | apps/admin/src/auth |
test |
software | healthy | apps/admin/src/test |
shared |
software | healthy | apps/admin/src/shared |
api |
software | healthy | apps/admin/src/shared/api |
ui |
software | healthy | apps/admin/src/shared/ui |
pages |
software | healthy | apps/admin/src/pages |
users |
software | healthy | apps/admin/src/pages/users |
tournaments |
software | healthy | apps/admin/src/pages/tournaments |
tasks |
software | healthy | apps/admin/src/pages/tasks |
styles |
software | healthy | apps/admin/src/styles |
web |
software | healthy | apps/web |
public |
software | healthy | apps/web/public |
src |
software | healthy | apps/web/src |
router |
software | healthy | apps/web/src/router |
stores |
software | healthy | apps/web/src/stores |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET /healthz |
api | healthy | apps/api/src/main.py |
GET /daily |
api | healthy | apps/api/src/daily/router.py |
POST /daily/answer |
api | healthy | apps/api/src/daily/router.py |
GET /daily/leaderboard |
api | healthy | apps/api/src/daily/router.py |
GET /daily/me |
api | healthy | apps/api/src/daily/router.py |
GET /me |
api | healthy | apps/api/src/users/router.py |
PATCH /me |
api | healthy | apps/api/src/users/router.py |
GET /me/duels |
api | healthy | apps/api/src/users/router.py |
GET /me/stats |
api | healthy | apps/api/src/users/router.py |
POST /me/avatar/presign |
api | healthy | apps/api/src/users/router.py |
POST /me/avatar/confirm |
api | healthy | apps/api/src/users/router.py |
GET /users/{username} |
api | healthy | apps/api/src/users/router.py |
POST /register |
api | healthy | apps/api/src/auth/router.py |
POST /telegram |
api | healthy | apps/api/src/auth/router.py |
POST /telegram/register |
api | healthy | apps/api/src/auth/router.py |
POST /login |
api | healthy | apps/api/src/auth/router.py |
POST /verify-email |
api | healthy | apps/api/src/auth/router.py |
POST /verify-link |
api | healthy | apps/api/src/auth/router.py |
POST /resend-code |
api | healthy | apps/api/src/auth/router.py |
POST /refresh |
api | healthy | apps/api/src/auth/router.py |
POST /logout |
api | healthy | apps/api/src/auth/router.py |
GET /share/{duel_id} |
api | healthy | apps/api/src/duels/router.py |
GET /topics |
api | healthy | apps/api/src/topics/router.py |
POST /me/telegram/link-code |
api | healthy | apps/api/src/telegram/router.py |
DELETE /me/telegram |
api | healthy | apps/api/src/telegram/router.py |
GET /widget/{username}.svg |
api | healthy | apps/api/src/telegram/router.py |
GET / |
api | healthy | apps/api/src/tournaments/router.py |
GET /{tournament_id} |
api | healthy | apps/api/src/tournaments/router.py |
POST /{tournament_id}/enter |
api | healthy | apps/api/src/tournaments/router.py |
GET /{tournament_id}/tasks |
api | healthy | apps/api/src/tournaments/router.py |
POST /{tournament_id}/answer |
api | healthy | apps/api/src/tournaments/router.py |
POST / |
api | healthy | apps/api/src/tournaments/admin_router.py |
PATCH /{tournament_id} |
api | healthy | apps/api/src/tournaments/admin_router.py |
POST /{tournament_id}/grant-entry |
api | healthy | apps/api/src/tournaments/admin_router.py |
POST /{tournament_id}/recompute-places |
api | healthy | apps/api/src/tournaments/admin_router.py |
POST /{duel_id} |
api | healthy | apps/api/src/ai_review/router.py |
GET /{duel_id} |
api | healthy | apps/api/src/ai_review/router.py |
GET /ping |
api | healthy | apps/api/src/internal_api/router.py |
POST /duels |
api | healthy | apps/api/src/internal_api/router.py |
POST /duels/{duel_id}/finish |
api | healthy | apps/api/src/internal_api/router.py |
GET /duels/{duel_id}/card |
api | healthy | apps/api/src/internal_api/router.py |
POST /duels/{duel_id}/share-card |
api | healthy | apps/api/src/internal_api/router.py |
GET /duels/{duel_id}/review-data |
api | healthy | apps/api/src/internal_api/router.py |
POST /ai-reviews/{duel_id}/{user_id} |
api | healthy | apps/api/src/internal_api/router.py |
POST /telegram/redeem |
api | healthy | apps/api/src/internal_api/router.py |
GET /telegram/user/{telegram_user_id} |
api | healthy | apps/api/src/internal_api/router.py |
GET /telegram/by-user/{user_id} |
api | healthy | apps/api/src/internal_api/router.py |
GET /tasks/training |
api | healthy | apps/api/src/tasks/router.py |
POST /answers |
api | healthy | apps/api/src/tasks/router.py |
GET /leaderboard |
api | healthy | apps/api/src/leaderboard/router.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
/FlagsPage |
frontend | healthy | apps/admin/src/pages/FlagsPage.tsx |
/OverviewPage |
frontend | healthy | apps/admin/src/pages/OverviewPage.tsx |
/DashboardPage |
frontend | healthy | apps/admin/src/pages/DashboardPage.tsx |
/users/UsersPage |
frontend | healthy | apps/admin/src/pages/users/UsersPage.tsx |
/users/UsersPage.test |
frontend | healthy | apps/admin/src/pages/users/UsersPage.test.tsx |
/users/useUsersPro |
frontend | healthy | apps/admin/src/pages/users/useUsersPro.ts |
/tournaments/TournamentsPage.test |
frontend | healthy | apps/admin/src/pages/tournaments/TournamentsPage.test.tsx |
/tournaments/useTournaments |
frontend | healthy | apps/admin/src/pages/tournaments/useTournaments.ts |
/tournaments/TournamentsPage |
frontend | healthy | apps/admin/src/pages/tournaments/TournamentsPage.tsx |
/tasks/TasksPage |
frontend | healthy | apps/admin/src/pages/tasks/TasksPage.tsx |
/tasks/TaskEditPage |
frontend | healthy | apps/admin/src/pages/tasks/TaskEditPage.tsx |
/tasks/useTasks |
frontend | healthy | apps/admin/src/pages/tasks/useTasks.ts |
/tasks/TasksPage.test |
frontend | healthy | apps/admin/src/pages/tasks/TasksPage.test.tsx |
/RegisterPage.test |
frontend | healthy | apps/web/src/pages/RegisterPage.test.ts |
/DuelResultPage.test |
frontend | healthy | apps/web/src/pages/DuelResultPage.test.ts |
/LoginPage.test |
frontend | healthy | apps/web/src/pages/LoginPage.test.ts |
/ChallengeAcceptPage.test |
frontend | healthy | apps/web/src/pages/ChallengeAcceptPage.test.ts |
/AiReviewPage.test |
frontend | healthy | apps/web/src/pages/AiReviewPage.test.ts |
/VerifyEmailPage.test |
frontend | healthy | apps/web/src/pages/VerifyEmailPage.test.ts |
/LeaderboardPage.test |
frontend | healthy | apps/web/src/pages/LeaderboardPage.test.ts |
/HomePage.test |
frontend | healthy | apps/web/src/pages/HomePage.test.ts |
/TgRegisterPage.test |
frontend | healthy | apps/web/src/pages/TgRegisterPage.test.ts |
/TournamentsPage.test |
frontend | healthy | apps/web/src/pages/TournamentsPage.test.ts |
/DuelPage.test |
frontend | healthy | apps/web/src/pages/DuelPage.test.ts |
/login |
frontend | healthy | apps/web/src/router/index.ts |
/register |
frontend | healthy | apps/web/src/router/index.ts |
/tg-register |
frontend | healthy | apps/web/src/router/index.ts |
/verify-email |
frontend | healthy | apps/web/src/router/index.ts |
/verify |
frontend | healthy | apps/web/src/router/index.ts |
/ |
frontend | healthy | apps/web/src/router/index.ts |
/app |
frontend | healthy | apps/web/src/router/index.ts |
/training |
frontend | healthy | apps/web/src/router/index.ts |
/training/run |
frontend | healthy | apps/web/src/router/index.ts |
/queue |
frontend | healthy | apps/web/src/router/index.ts |
/duel |
frontend | healthy | apps/web/src/router/index.ts |
/c/:code |
frontend | healthy | apps/web/src/router/index.ts |
/duel/result |
frontend | healthy | apps/web/src/router/index.ts |
/daily |
frontend | healthy | apps/web/src/router/index.ts |
/leaderboard |
frontend | healthy | apps/web/src/router/index.ts |
/tournaments |
frontend | healthy | apps/web/src/router/index.ts |
/tournaments/:id |
frontend | healthy | apps/web/src/router/index.ts |
/pro |
frontend | healthy | apps/web/src/router/index.ts |
/checkout |
frontend | healthy | apps/web/src/router/index.ts |
/ai-review/:duelId |
frontend | healthy | apps/web/src/router/index.ts |
/profile |
frontend | healthy | apps/web/src/router/index.ts |
/settings |
frontend | healthy | apps/web/src/router/index.ts |
/:pathMatch(.*)* |
frontend | healthy | apps/web/src/router/index.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
answers |
data | healthy | apps/api/migrations/versions/0001_initial.py |
DailyChallenge |
data | healthy | apps/api/src/daily/models.py |
daily_challenges |
data | healthy | apps/api/src/daily/models.py |
User |
data | healthy | apps/api/src/users/models.py |
Rating |
data | healthy | apps/api/src/users/models.py |
users |
data | healthy | apps/api/src/users/models.py |
ratings |
data | healthy | apps/api/src/users/models.py |
OAuthAccount |
data | healthy | apps/api/src/auth/models.py |
RefreshToken |
data | healthy | apps/api/src/auth/models.py |
EmailVerification |
data | healthy | apps/api/src/auth/models.py |
oauth_accounts |
data | healthy | apps/api/src/auth/models.py |
refresh_tokens |
data | healthy | apps/api/src/auth/models.py |
email_verifications |
data | healthy | apps/api/src/auth/models.py |
Duel |
data | healthy | apps/api/src/duels/models.py |
Answer |
data | healthy | apps/api/src/duels/models.py |
duels |
data | healthy | apps/api/src/duels/models.py |
answers |
data | healthy | apps/api/src/duels/models.py |
Topic |
data | healthy | apps/api/src/topics/models.py |
Task |
data | healthy | apps/api/src/topics/models.py |
TaskStat |
data | healthy | apps/api/src/topics/models.py |
topics |
data | healthy | apps/api/src/topics/models.py |
tasks |
data | healthy | apps/api/src/topics/models.py |
task_stats |
data | healthy | apps/api/src/topics/models.py |
TelegramAccount |
data | healthy | apps/api/src/telegram/models.py |
telegram_accounts |
data | healthy | apps/api/src/telegram/models.py |
Tournament |
data | healthy | apps/api/src/tournaments/models.py |
TournamentEntry |
data | healthy | apps/api/src/tournaments/models.py |
TournamentAnswer |
data | healthy | apps/api/src/tournaments/models.py |
tournaments |
data | healthy | apps/api/src/tournaments/models.py |
tournament_entries |
data | healthy | apps/api/src/tournaments/models.py |
tournament_answers |
data | healthy | apps/api/src/tournaments/models.py |
AiReview |
data | healthy | apps/api/src/ai_review/models.py |
ai_reviews |
data | healthy | apps/api/src/ai_review/models.py |
Subscription |
data | healthy | apps/api/src/billing/models.py |
Payment |
data | healthy | apps/api/src/billing/models.py |
subscriptions |
data | healthy | apps/api/src/billing/models.py |
payments |
data | healthy | apps/api/src/billing/models.py |
FeatureFlag |
data | healthy | apps/api/src/admin/models.py |
feature_flags |
data | healthy | apps/api/src/admin/models.py |
Base |
data | healthy | apps/api/src/core/db.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::apps/api/src/telegram/service.py |
security | healthy | apps/api/src/telegram/service.py |
auth::apps/api/README.md |
security | healthy | apps/api/README.md |
auth::infra/load/k6/README.md |
security | healthy | infra/load/k6/README.md |
auth::packages/contracts/asyncapi.yaml |
security | healthy | packages/contracts/asyncapi.yaml |
auth::apps/api/src/core/security.py |
security | healthy | apps/api/src/core/security.py |
auth::apps/realtime/src/gateway/duel.gateway.ts |
security | healthy | apps/realtime/src/gateway/duel.gateway.ts |
auth::apps/realtime/src/auth/token.service.ts |
security | healthy | apps/realtime/src/auth/token.service.ts |
auth::apps/web/src/pages/TgRegisterPage.test.ts |
security | healthy | apps/web/src/pages/TgRegisterPage.test.ts |
auth::infra/compose/.env.prod.example |
security | healthy | infra/compose/.env.prod.example |
auth::infra/load/k6/duel_ws.js |
security | healthy | infra/load/k6/duel_ws.js |
auth::apps/api/tests/test_security.py |
security | healthy | apps/api/tests/test_security.py |
auth::apps/api/src/auth/dependencies.py |
security | healthy | apps/api/src/auth/dependencies.py |
auth::apps/api/src/core/config.py |
security | healthy | apps/api/src/core/config.py |
auth::packages/design-system/index.html |
security | healthy | packages/design-system/index.html |
auth::apps/realtime/test/duel-e2e.spec.ts |
security | healthy | apps/realtime/test/duel-e2e.spec.ts |
auth::apps/web/src/shared/realtime/duelSocket.ts |
security | healthy | apps/web/src/shared/realtime/duelSocket.ts |
auth::packages/design-system/design/pages/settings.html |
security | healthy | packages/design-system/design/pages/settings.html |
auth::.env.example |
security | healthy | .env.example |
auth::apps/api/tests/test_telegram_auth.py |
security | healthy | apps/api/tests/test_telegram_auth.py |
auth::apps/web/src/stores/auth.telegram.test.ts |
security | healthy | apps/web/src/stores/auth.telegram.test.ts |
auth::apps/api/src/users/models.py |
security | healthy | apps/api/src/users/models.py |
auth::apps/realtime/README.md |
security | healthy | apps/realtime/README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | apps/api/Dockerfile |
port:5432 |
network | healthy | apps/api/tests/conftest.py |
port:5174 |
network | healthy | apps/admin/vite.config.ts |
port:80 |
network | healthy | apps/admin/Dockerfile |
port:5173 |
network | healthy | apps/web/vite.config.ts |
port:8100 |
network | healthy | apps/realtime/Dockerfile |
port:9000 |
network | healthy | infra/compose/docker-compose.prod.yml |
port:443 |
network | healthy | infra/compose/docker-compose.prod.yml |
port:6379 |
network | healthy | infra/compose/docker-compose.yml |
port:19092 |
network | healthy | infra/compose/docker-compose.yml |
port:9001 |
network | healthy | infra/compose/docker-compose.yml |
port:4317 |
network | healthy | infra/compose/compose.observability.yml |
port:4318 |
network | healthy | infra/compose/compose.observability.yml |
port:3000 |
network | healthy | infra/compose/compose.observability.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::apps/api/tests/conftest.py |
security | healthy | apps/api/tests/conftest.py |
password_literal::apps/api/tests/conftest.py |
security | healthy | apps/api/tests/conftest.py |
password_literal::apps/api/tests/test_topics_internal.py |
security | healthy | apps/api/tests/test_topics_internal.py |
password_literal::apps/api/tests/test_admin.py |
security | healthy | apps/api/tests/test_admin.py |
password_literal::apps/api/tests/test_security.py |
security | healthy | apps/api/tests/test_security.py |
password_literal::apps/web/src/stores/auth.telegram.test.ts |
security | healthy | apps/web/src/stores/auth.telegram.test.ts |
password_literal::apps/web/src/stores/auth.telegram.test.ts |
security | healthy | apps/web/src/stores/auth.telegram.test.ts |
password_literal::apps/web/src/stores/auth.telegram.test.ts |
security | healthy | apps/web/src/stores/auth.telegram.test.ts |
password_literal::apps/web/src/pages/RegisterPage.test.ts |
security | healthy | apps/web/src/pages/RegisterPage.test.ts |
password_literal::apps/web/src/pages/LoginPage.test.ts |
security | healthy | apps/web/src/pages/LoginPage.test.ts |
password_literal::apps/web/src/pages/LoginPage.test.ts |
security | healthy | apps/web/src/pages/LoginPage.test.ts |
password_literal::apps/web/src/pages/TgRegisterPage.test.ts |
security | healthy | apps/web/src/pages/TgRegisterPage.test.ts |
password_literal::infra/load/k6/lib/common.js |
security | healthy | infra/load/k6/lib/common.js |
| Label | Layer | Status | Path |
|---|---|---|---|
__init__.py |
data | healthy | apps/api/migrations/__init__.py |
env.py |
data | healthy | apps/api/migrations/env.py |
0001_initial.py |
data | healthy | apps/api/migrations/versions/0001_initial.py |
__init__.py |
data | healthy | apps/api/migrations/versions/__init__.py |
0006_ai_reviews.py |
data | healthy | apps/api/migrations/versions/0006_ai_reviews.py |
0004_email_verification.py |
data | healthy | apps/api/migrations/versions/0004_email_verification.py |
0008_telegram_accounts.py |
data | healthy | apps/api/migrations/versions/0008_telegram_accounts.py |
0005_daily_challenges.py |
data | healthy | apps/api/migrations/versions/0005_daily_challenges.py |
0003_feature_flags.py |
data | healthy | apps/api/migrations/versions/0003_feature_flags.py |
0007_tournaments.py |
data | healthy | apps/api/migrations/versions/0007_tournaments.py |
0002_profile_indexes.py |
data | healthy | apps/api/migrations/versions/0002_profile_indexes.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::apps/bot/Dockerfile |
hardware | healthy | apps/bot/Dockerfile |
image::apps/api/Dockerfile |
hardware | healthy | apps/api/Dockerfile |
image::apps/workers/Dockerfile |
hardware | healthy | apps/workers/Dockerfile |
image::apps/admin/Dockerfile |
hardware | healthy | apps/admin/Dockerfile |
image::apps/web/Dockerfile |
hardware | healthy | apps/web/Dockerfile |
image::apps/realtime/Dockerfile |
hardware | healthy | apps/realtime/Dockerfile |
postgres |
hardware | healthy | infra/compose/docker-compose.yml |
redis |
hardware | healthy | infra/compose/docker-compose.yml |
redpanda |
hardware | healthy | infra/compose/docker-compose.yml |
minio |
hardware | healthy | infra/compose/docker-compose.yml |
minio-init |
hardware | healthy | infra/compose/docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
redis |
data | healthy | README.md |
postgresql |
data | healthy | README.md |
cassandra |
data | healthy | pnpm-lock.yaml |
mongodb |
data | healthy | pnpm-lock.yaml |
mysql |
data | healthy | pnpm-lock.yaml |
postgres |
data | healthy | pnpm-lock.yaml |
sqlite |
data | healthy | apps/api/src/auth/service.py |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/workers-ci.yml |
guard |
cicd | healthy | .github/workflows/deploy.yml |
build-and-deploy |
cicd | healthy | .github/workflows/deploy.yml |
test |
cicd | healthy | .github/workflows/realtime-ci.yml |
test |
cicd | healthy | .github/workflows/api-ci.yml |
test |
cicd | healthy | .github/workflows/bot-ci.yml |
test |
cicd | healthy | .github/workflows/web-ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::workers-ci |
cicd | healthy | .github/workflows/workers-ci.yml |
gha::deploy |
cicd | healthy | .github/workflows/deploy.yml |
gha::realtime-ci |
cicd | healthy | .github/workflows/realtime-ci.yml |
gha::api-ci |
cicd | healthy | .github/workflows/api-ci.yml |
gha::bot-ci |
cicd | healthy | .github/workflows/bot-ci.yml |
gha::web-ci |
cicd | healthy | .github/workflows/web-ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
SSH_USER |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
SSH_HOST |
cicd | healthy | — |
GHCR_OWNER |
cicd | healthy | — |
SSH_KEY |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
traefik |
network | healthy | README.md |
nginx |
network | healthy | apps/admin/Dockerfile |
loadbalancer |
network | healthy | infra/compose/docker-compose.prod.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | pnpm-lock.yaml |
vps::azure |
hardware | healthy | pnpm-lock.yaml |
vps::gcp |
hardware | healthy | pnpm-lock.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | Makefile |
62.113.109.191 |
network | healthy | .claude/settings.local.json |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-grq7t79h |
software | healthy | /tmp/repobility-clone-grq7t79h |
| Label | Layer | Status | Path |
|---|---|---|---|
kafka |
data | healthy | README.md |
This page is publicly accessible at:
https://repobility.com/scan/059ac544-1868-4079-a978-6110e61824cb/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/059ac544-1868-4079-a978-6110e61824cb/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.