Commit Graph

68 Commits

Author SHA1 Message Date
aleksey 3c6211dd08 fix: avoid empty node metrics race in CT (collect on start + poll). Refs EventHub/EventHubBack#47
CI / test (push) Successful in 9m13s
CI / deploy-ift (push) Successful in 2m4s
CI / e2e-ift (push) Failing after 1m51s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 01:03:53 +03:00
aleksey 10f6eef92d fix: sync migration_engine_tests ALL_VERSIONS with review_vote. Refs EventHub/EventHubBack#47
CI / test (push) Failing after 5m38s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 00:52:57 +03:00
aleksey 84bfce474a fix: create review_vote table in unit fixtures for review delete. Refs EventHub/EventHubBack#47
CI / test (push) Failing after 9m7s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 00:39:30 +03:00
aleksey 0934e2c413 feat: PATCH /v1/user/me — профиль и смена пароля. Refs EventHub/EventHubBack#48
CI / test (push) Failing after 9m43s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-19 23:26:34 +03:00
aleksey 5b638de450 feat: user API голосования за отзывы (like/dislike). Refs EventHub/EventHubBack#47
CI / test (push) Failing after 45m52s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-19 21:31:29 +03:00
aleksey a6dadcb9d5 fix(test): wait for full stats_tops review/report topology
CI / test (push) Successful in 21m3s
CI / deploy-ift (push) Failing after 11m23s
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Partial waits on top-1 raced under CI load and flaked after stats_collector subscribe reorder.
2026-07-19 00:31:55 +03:00
aleksey 1cd7c2e402 fix(test): stub all migrations in migration_engine join-wait. Refs EventHub/EventHubBack#42
CI / test (push) Successful in 27m9s
CI / deploy-ift (push) Failing after 3m35s
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-18 10:40:12 +03:00
aleksey dd754e28cc feat: upsert stats counters, daily buckets and ETS tops for admin metrics. Refs EventHub/EventHubBack#42 #43 #44 #45 #46
CI / test (push) Failing after 25m40s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-17 23:10:00 +03:00
aleksey cd61aaff20 feat: bake product version from Spec and expose build in health.
Resolve MAJOR.MINOR via EventHubSpec/VERSION; CI run_number as EVENTHUB_BUILD; health returns version/build/git_sha/built_at.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 21:48:24 +03:00
aleksey e9d1a13900 Добавить автомодерацию: политики, порог жалоб, settings/hits API и тесты.
CI / test (push) Failing after 37m9s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Refs EventHub/EventHubBack#37
Refs EventHub/EventHubBack#38
Refs EventHub/EventHubBack#39
Refs EventHub/EventHubBack#40
2026-07-17 18:09:31 +03:00
aleksey 4fa802702f Rewrite and expand EUnit suite; run unit tests in CI from shared test image. Refs EventHub/EventHubBack#36 [skip ci] 2026-07-17 15:16:46 +03:00
aleksey 5e569da1d8 fix(mnesia): per-slot volumes hint and harden verification lookup.
CI / test (push) Failing after 5m10s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Avoid shared Mnesia dir across replicas; make get_or_create_token and CT verify_user resilient to brief cross-node lag.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 09:54:10 +03:00
aleksey a696d25486 Добавить авто-регистрацию тикетов (hash/dedupe/500/WS). Refs EventHub/EventHubBack#35
CI / test (push) Successful in 21m45s
CI / deploy-ift (push) Successful in 6m8s
CI / e2e-ift (push) Failing after 6m13s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-17 00:44:09 +03:00
aleksey 0a52712258 docs(tsung): record IFT ceiling ladder and maxusers=150 soft OVER.
Refs EventHub/EventHubBack#30 [skip ci]

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 23:09:48 +03:00
aleksey 4327de486f fix(mnesia): apply dump_log_write_threshold before mnesia start.
CI / test (push) Successful in 16m25s
CI / deploy-ift (push) Successful in 5m49s
CI / e2e-ift (push) Failing after 4m38s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
change_config rejected the key; set_env + verify enables the IFT ceiling ladder. Refs EventHub/EventHubBack#30 Refs EventHub/EventHubBack#34

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 19:22:32 +03:00
aleksey 77a53c77cd fix(audit): reason и entity_id в audit как строки, не map.
CI / test (push) Successful in 15m19s
Модерация писала #{reason => ...} — UI падал с React #31.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 14:08:25 +03:00
aleksey 6d91e9cf18 fix(test): пропускать посторонние WS-сообщения при ожидании node_metric.
CI / test (push) Successful in 22m0s
На shared IFT в /admin/ws/metrics приходил report_created от других тестов/активности.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 13:13:34 +03:00
aleksey 84a494e215 fix(ci): WS-хосты стенда и audit-тест в remote CT.
CI / test (push) Successful in 15m59s
ws.* / admin-ws.* в Traefik; audit IP на стенде — не unknown вместо XFF.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 12:15:42 +03:00
aleksey 94106cf964 fix(mnesia): поднять dump_log_write_threshold; Traefik base v3.3.6. Refs EventHub/EventHubBack#34 Refs EventHub/EventHubDevOps#3 [skip ci] 2026-07-15 17:28:39 +03:00
aleksey f7f0038556 test(api): CT на портах 18080/18445 вне docker-dev [skip ci] 2026-07-15 17:10:19 +03:00
aleksey 823274caab docs(loadtest): hold/stress профили и правила безопасности IFT. Refs EventHub/EventHubBack#31 [skip ci] 2026-07-15 16:00:33 +03:00
aleksey 6bba96c36e fix(loadtest): verify через admin verification-token, убрать token из register. Refs EventHub/EventHubBack#30 2026-07-15 00:12:32 +03:00
aleksey e8b90606c3 feat(loadtest): IFT Tsung smoke/mix + verification_token на стендах. Refs EventHub/EventHubBack#30 2026-07-15 00:08:48 +03:00
aleksey ff4ab23264 fix(backend): IP в аудите, closed_at тикетов и admin_activity в статистике. Refs EventHub/EventHubBack#27 #28 #29
CI / test (push) Successful in 15m13s
Deploy stage (core) / deploy-stage-core (push) Successful in 4m57s
2026-07-13 14:53:51 +03:00
aleksey 14c0ac9220 Fix Unicode env parsing in infra_secrets for stage startup.
CI / test (push) Successful in 18m50s
Use unicode:characters_to_binary for os:getenv values so Cyrillic placeholder passwords fail with weak_secret instead of badarg crash.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 19:29:17 +03:00
aleksey f4746df4a2 CI/CD: ci, deploy-ift и deploy-stage через EventHubDevOps; фиксы calendar view, archive, API-тесты, traefik-coraza
Deploy IFT (core) / deploy-ift-core (push) Failing after 22m58s
CI / test (push) Failing after 22m59s
2026-07-08 14:50:59 +03:00
aleksey cf8e6bcc07 Fail-fast secrets in stage/prod via EVENTHUB_ENV. Refs EventHub/EventHubBack#25 2026-07-07 19:52:04 +03:00
aleksey 018bf85b87 User login and refresh on auth_session (phase 2). Refs EventHub/EventHubBack#26 2026-07-07 19:33:24 +03:00
aleksey 7c5f2d26b8 Mnesia migrations with global lock on startup. Refs EventHub/EventHubBack#24 2026-07-07 17:54:29 +03:00
aleksey 9de57bd52c Реализовать кластер-безопасные admin refresh-сессии (фаза 1, #23).
Единая auth_session с refresh JWT, rotation и reuse detection; CI/CD временно на workflow_dispatch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 15:30:27 +03:00
aleksey 17b2e617d7 bagofix
Test & Deploy to Snapdeploy / build-test-deploy (push) Failing after 24m46s
2026-06-05 23:20:03 +03:00
aleksey 732e7c81b4 fix bot-emulator-users 2026-05-28 21:55:34 +03:00
aleksey f507d08e2c Добавлена оперативная и историческая статистика нод и узлов mnesia #22 2026-05-28 18:59:21 +03:00
aleksey 1986fd4694 Расширена статистика для разделов #22 2026-05-28 14:09:07 +03:00
aleksey 2dac5e5102 Расширена общая статистика по дням: Отзывы, Календари, Жалобы, Тикеты, Подписки #22 2026-05-27 22:40:03 +03:00
aleksey 4444461ee3 Сделано подтверждение регистрации пользователей #22 2026-05-27 22:02:53 +03:00
aleksey ae6fe21ce6 получение списка администраторов и администратора по ID (любой администратор) #22 2026-05-26 22:33:52 +03:00
aleksey ac5382fab4 При массовом изменении статуса отзывов причина теперь обязательное поле #22 2026-05-26 22:22:15 +03:00
aleksey 19b3d0dba0 Рефакторинг админских обработчиков - пагинация, сортировка, фильтрация. Финал 2026-05-26 21:50:12 +03:00
aleksey 01dbc6d6cb Расширена работа с бан словами #22 2026-05-25 21:30:33 +03:00
aleksey c2d2e934d9 Раздел api Календари #22 2026-05-25 17:50:57 +03:00
aleksey 6098039632 хендлер рефреш токена для админа #22 2026-05-24 22:18:05 +03:00
aleksey 3abf5c94ee Рефакторинг обработчиков. Финальное тестирование #21 2026-05-18 14:37:59 +03:00
aleksey 40806df62a Рефакторинг обработчиков. Часть 3 #21 2026-05-13 23:02:59 +03:00
aleksey 6403f061df Рефакторинг обработчиков. Часть 1 #21 2026-05-10 22:14:38 +03:00
aleksey a34e36b966 Пагинация, фильтры и сортировки Часть 1 #20 2026-05-09 13:38:54 +03:00
aleksey ecf68ee300 Fix /v1/admin/stats всегда пустые данные
Добавлено поле с датой последнего логина пользователям и админам  #20
2026-05-08 20:21:04 +03:00
aleksey 1132341b92 Добавлены эндпойнты admin/v1/events и admin/v1/events/:id #20 2026-05-08 19:02:35 +03:00
aleksey 393cf00631 Добавлен эндпойнт /v1/admin/reviews #20 2026-05-08 16:33:46 +03:00
aleksey f36dd3bbc1 Переделать связь нод в кластере на автоматическое обнаружение #9 2026-05-01 22:30:40 +03:00