aleksey
6d52bc3a8e
feat: discovery tops for empty GET /v1/search. Refs EventHub/EventHubBack#50
...
CI / test (push) Successful in 22m57s
CI / deploy-ift (push) Successful in 3m22s
CI / e2e-ift (push) Successful in 1m12s
CI / deploy-stage (push) Successful in 4m21s
CI / e2e-stage (push) Successful in 1m27s
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-20 12:17:36 +03:00
aleksey
7c1fe1940d
feat: create default personal calendar on email verification. Refs EventHub/EventHubBack#49
2026-07-20 11:17:31 +03:00
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
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
0c8a87df75
fix: parse confirmation timeout on calendar PUT
...
Map auto/manual/{timeout:N} in convert_field so client updates are not silently dropped.
2026-07-19 20:37:46 +03:00
aleksey
f1f5af6499
fix: tolerate existing eventhub_counters ETS on infra_mnesia restart
...
CI / test (push) Successful in 25m54s
CI / deploy-ift (push) Successful in 6m43s
CI / e2e-ift (push) Successful in 1m18s
CI / deploy-stage (push) Successful in 6m37s
CI / e2e-stage (push) Successful in 1m24s
Supervisor restarts after mnesia_stopped crashed on ets:new already_exists.
2026-07-19 13:32:38 +03:00
aleksey
b646489778
fix: end handle_call/3 with period so release compiles
...
CI / test (push) Successful in 24m7s
CI / deploy-ift (push) Failing after 12m0s
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Trailing semicolon after wait_for_tables clause made Erlang treat handle_cast as another handle_call clause and failed rebar3 as prod release.
2026-07-19 12:29:06 +03:00
aleksey
e8addae3b7
fix: raise Mnesia wait_for_tables beyond gen_server 5s default
...
CI / test (push) Failing after 27m9s
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
Caller timed out while mnesia:wait_for_tables ran the full 5s on IFT disc load; use infinity call timeout, 120s wait, and one repair retry.
2026-07-19 10:45:25 +03:00
aleksey
31c2a1b7d7
fix: subscribe stats_collector after Mnesia tables are ready
...
CI / test (push) Failing after 13m10s
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
Backfill ran during init_tables before wait_for_tables, so dirty reads hit {no_exists,user} and crash-looped eventhub on IFT.
2026-07-18 23:33:56 +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
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
6d8f02d0d4
fix(mnesia): add local ram_copies on joining nodes for verification/session.
...
CI / test (push) Successful in 12m37s
CI / deploy-ift (push) Successful in 5m27s
CI / e2e-ift (push) Successful in 4m56s
CI / deploy-stage (push) Successful in 6m24s
CI / e2e-stage (push) Successful in 6m52s
Joining replicas hit already_exists without add_table_copy, so register/verify crashed with no_exists on node2. Refs EventHub/EventHubBack#30
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-16 20:52:31 +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
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
6441be61b1
fix(archive): async peer start в archive_manager, без краша gen_server. Refs EventHub/EventHubBack#33 [skip ci]
2026-07-15 17:10:16 +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
2eeda5c4c4
feat(backend): build identity в health, VERSION bake и auto stage по sha-*
CI / test (push) Successful in 28m3s
2026-07-14 21:25:40 +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
d2483ada15
Update Swagger json
2026-05-28 19:25:46 +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
b78df927dd
Избавление от undefined, всем необязательным полям присваиваются дефолтные значения #22
2026-05-27 16:18:33 +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
ed5b275efb
Рефакторинг админских обработчиков - пагинация, сортировка, фильтрация. Часть 1
2026-05-26 13:04:31 +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
0de375c499
fix admin_handler_tickets
2026-05-24 22:18:48 +03:00
aleksey
6098039632
хендлер рефреш токена для админа #22
2026-05-24 22:18:05 +03:00
aleksey
faee11ce29
fix ticket stats
2026-05-19 22:16:26 +03:00
aleksey
d040256447
fix subscriptions
2026-05-19 15:03:39 +03:00
aleksey
f04043a485
fix init_default_admins
2026-05-18 19:48:48 +03:00
aleksey
3abf5c94ee
Рефакторинг обработчиков. Финальное тестирование #21
2026-05-18 14:37:59 +03:00