Commit Graph

149 Commits

Author SHA1 Message Date
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
aleksey e8464b3a8b Add shared Erlang builder/runtime base images from registry.
CI / test (push) Successful in 7m42s
Publish erlang-builder and erlang-runtime as :latest, use them in prod and API test builds, auto-collect NIF libs, and sync CI to pull/push bases before eventhub build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 12:25:42 +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 76f52030d1 observer-web: multi-stage Dockerfile to reduce registry push size.
CI / test (push) Successful in 15m23s
Deploy stage (core) / deploy-stage-core (push) Failing after 2m58s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 17:02:06 +03:00
aleksey feac915454 Fix observer-web build: use npm tailwind/esbuild instead of GitHub download.
CI / test (push) Successful in 18m45s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 16:16:54 +03:00
aleksey 755aba02ac CI: stronger docker retry (5x60s, prune cache, pull, push retry).
CI / test (push) Successful in 22m8s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 14:44:50 +03:00
aleksey 63cb9e7e02 Deploy IFT: optional observer-web/logrotate, bootstrap build on IFT server.
CI / test (push) Failing after 2m8s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 14:33:19 +03:00
aleksey 3239970e1d Deploy: invoke deploy-service.sh via bash to avoid Permission denied on IFT.
CI / test (push) Failing after 4m28s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 14:12:19 +03:00
aleksey c15590983e Fix retry-docker-build exit code capture after failed build.
CI / test (push) Waiting to run
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 14:02:08 +03:00
aleksey ff285ef867 Deploy IFT: bootstrap-build aux images when :ift tag is missing.
CI / test (push) Successful in 11m1s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 13:44:05 +03:00
aleksey 78a9f3043e CI: retry docker builds on transient registry/network failures.
CI / test (push) Successful in 9m46s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 13:15:57 +03:00
aleksey 9b48b165ba CI: build-once pipeline, deploy IFT after CI with conditional aux images.
CI / test (push) Failing after 8m2s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 12:55:01 +03:00
aleksey 8f28de1461 CI: quiet Docker builds and runner-friendly workflow settings.
CI / test (push) Successful in 14m13s
Deploy IFT (core) / deploy-ift-core (push) Failing after 9m49s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-10 11:05:22 +03:00
aleksey c7de4c5c49 CI: concurrency group to avoid act_runner cache races on single runner.
CI / test (push) Failing after 26m53s
Deploy IFT (core) / deploy-ift-core (push) Failing after 24m58s
2026-07-10 09:42:06 +03:00