Commit Graph

170 Commits

Author SHA1 Message Date
aleksey c760070611 fix: do not prune registry sha tag before deploy-ift
CI / test (push) Successful in 6m23s
CI / deploy-ift (push) Successful in 1m55s
CI / e2e-ift (push) Failing after 1m14s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 01:23:47 +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 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 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 ccca8d0a1f fix(ci): purge corrupted buildx cache on crc32/unpigz failures
CI / test (push) Failing after 8m8s
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
Buildx failed with unpigz crc32 mismatch; retry now does full prune, drops stale builder volumes, and uses --no-cache on the last attempt.
2026-07-19 11:21:23 +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 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 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 fa07d91f4b fix(ci): preflight registry DNS before IFT/stage deploy
CI / deploy-ift (push) Has been cancelled
CI / test (push) Successful in 25m20s
CI / e2e-ift (push) Has been cancelled
CI / deploy-stage (push) Has been cancelled
CI / e2e-stage (push) Has been cancelled
2026-07-18 12:53:46 +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 f2445db66c chore: skip ci for ApiTests reuse push. [skip ci] 2026-07-17 23:05:17 +03:00
aleksey 046e936eab fix(ci): reuse ApiTests image in e2e instead of blind rebuild.
e2e pulled/reused eventhub-tests from test job or registry; plain buildkit logs if rebuild needed. Root cause of #342 e2e cancel: quiet rebuild + prune + timeout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 22:57:50 +03:00
aleksey 5806bb0f95 feat(ci): push product version tag MAJOR.MINOR.BUILD alongside sha-*.
[skip ci]

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 22:29:08 +03:00
aleksey ffe8d97cc5 chore: skip ci for versioning push. [skip ci] 2026-07-17 21:54:33 +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 2b65a804d3 fix(ci): materialize rebar test src_dirs in shared test image. Refs EventHub/EventHubBack#36
CI / test (push) Successful in 28m14s
CI / deploy-ift (push) Successful in 7m42s
CI / e2e-ift (push) Failing after 21m40s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-17 19:35:12 +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 9d2780fef4 fix(swarm): per-slot Mnesia volume via Swarm name template.
CI / test (push) Successful in 15m10s
CI / deploy-ift (push) Successful in 7m22s
CI / e2e-ift (push) Successful in 5m21s
CI / deploy-stage (push) Successful in 6m35s
CI / e2e-stage (push) Successful in 15m12s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 10:09:41 +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 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 6dc06ccdf4 refactor(ci): единый ci.yml; удалены legacy deploy/e2e/build-and-test workflows.
CI / test (push) Successful in 13m31s
CI / deploy-ift (push) Successful in 5m29s
CI / e2e-ift (push) Successful in 4m51s
CI / deploy-stage (push) Successful in 6m16s
CI / e2e-stage (push) Successful in 18m11s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 16:19:20 +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 ee247bd7e7 fix(ci): всегда пересобирать API test image в E2E стенда.
CI / test (push) Successful in 14m16s
Кэш eventhub-api-tests:local оставлял старый audit-тест без remote-ветки.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 12:44:44 +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 50c6d671b8 feat(ci): последовательный deploy IFT -> E2E -> stage -> E2E (core).
CI / test (push) Successful in 14m42s
Stage после API CT remote на IFT; после stage — smoke-core + полный CT на stage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-16 11:31:22 +03:00
aleksey 7fa24e831c chore(ift): trigger CI rebuild after skip-ci fixes for loadtest verify
CI / test (push) Successful in 18m58s
Refs EventHubBack#32 #33 #34

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-15 17:49:16 +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 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 823274caab docs(loadtest): hold/stress профили и правила безопасности IFT. Refs EventHub/EventHubBack#31 [skip ci] 2026-07-15 16:00:33 +03:00
aleksey c1ba207374 chore: push without CI [skip ci] 2026-07-15 00:19:05 +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 4281342416 fix(makefile): восстановить UTF-8 комментарии и help-текст
CI / test (push) Failing after 9m3s
Кириллица была повреждена в 6890dff (замена на ?); восстановлено из 16203ba с сохранением stage URL и prune-скриптов.
2026-07-12 12:18:46 +03:00
aleksey a2ccf167aa chore(docker): prune образов после swarm-deploy, env стендов в gitignore
CI / test (push) Failing after 13m57s
docker/.env.ift и .env.stage локально, не в репозитории; image prune в make docker-swarm-deploy.
2026-07-12 11:58:21 +03:00
aleksey a8e6dcb8f5 fix(docker): crash loop fallback и observer-web на IFT
CI / test (push) Failing after 11m40s
fallback: default_type вне if-блока nginx. observer-web: Hex/deps.compile в образе, без dev-watchers в контейнере.
2026-07-12 11:12:16 +03:00
aleksey 09ecfdff1e fix(deploy-stage): deploy до prune, prune continue-on-error
CI / test (push) Has been cancelled
Deploy не должен блокироваться из-за очистки registry (run 118).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:44:47 +03:00