Commit Graph

162 Commits

Author SHA1 Message Date
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
aleksey 2abf3d0edb fix(deploy-stage): workflow_dispatch и clone DevOps с master
CI / test (push) Failing after 7m51s
Повтор run 109 на теге v0.1.1 брал старый promote; promote/prune теперь
клонируют EventHubDevOps с master, dispatch позволяет указать sha и tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 16:03:31 +03:00
aleksey 3b6c20ac34 Co-authored-by:
CI / test (push) Failing after 9m31s
2026-07-11 15:41:35 +03:00
aleksey 3f5dde4986 Co-authored-by:
CI / test (push) Successful in 9m40s
Deploy stage (core) / deploy-stage-core (push) Failing after 33s
2026-07-11 15:14:06 +03:00
aleksey 936a99cc07 Co-authored-by:
CI / test (push) Has been cancelled
2026-07-11 15:10:06 +03:00
aleksey 899341d26d Co-authored-by: 2026-07-11 15:00:03 +03:00
aleksey 21a2a39746 Co-authored-by:
CI / test (push) Successful in 8m23s
2026-07-11 14:56:18 +03:00
aleksey f79264ece9 Co-authored-by:
CI / test (push) Successful in 10m55s
2026-07-11 14:33:53 +03:00
aleksey 214955399e CI: wait for Docker daemon before buildx on WSL runner.
CI / test (push) Failing after 4m15s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 12:41:06 +03:00