feat: harden firewall policies telemetry and operations
quality / changes (push) Successful in 7s
quality / commitlint (push) Skipped
quality / openapi (push) Successful in 30s
quality / web (push) Successful in 1m3s
quality / api (push) Successful in 1m15s
quality / linux-agent-smoke (push) Failing after 27s
quality / docker-check (push) Failing after 2m28s
CD / quality (push) Failing after 5m52s
CD / publish (push) Skipped

Implement reliable agent apply, telemetry v2, analytics retention, guarded rollouts, enrollment, labels and webhooks. Improve ReUI frontend data safety and bounded list loading, and add Docker smoke, recovery and resource checks. Document local verification and pending native acceptance.
This commit is contained in:
Denozordec committed 2026-10-26 13:10:58 +07:00
1 parent aa475848fd
commit 9fa6269174
242 files changed
+19872 -3057

No files matched your search

+6 -4
View File
@@ -14,16 +14,16 @@ BuildKit кэширует pnpm store через `RUN --mount=type=cache`. На C
| Образ | Runtime base | Заметка |
|-------|----------------|---------|
| `evofw`, `evofirewall` | `node:22-alpine` | один процесс: API + SPA + SQLite; `better-sqlite3` собирается в alpine на stage `build` |
| `evofw`, `evofirewall` | `node:22-alpine` | один процесс: API + SPA + SQLite; `better-sqlite3` собирается в alpine в dependency stage |
`python3` / `make` / `g++` только в `deps`/`build`. Context режется корневым [.dockerignore](../../.dockerignore).
`python3` / `make` / `g++` только в build stages. Независимые `api-build` / `web-build` ветви используют общий `deps`; runtime получает только production API deploy и SPA dist. Context режется корневым [.dockerignore](../../.dockerignore).
Теги `evofw` и `evofirewall` — один и тот же образ (`evofirewall` — drop-in для старого compose).
### Кэш registry
- `git.shx.one/<owner>/evofw-buildcache:node-buildcache` — **запись** только из `node-build`
- `git.shx.one/<owner>/evofw-buildcache:base-node-22-alpine` — зеркало FROM с Docker Hub. Только `linux/amd64`; skip если тег уже в Gitea. Неуспешный copy не валит CD — bake берёт Docker Hub FROM.
- `git.shx.one/<owner>/evofw-buildcache:node-buildcache` — **запись** только из финального `evofw` target (`mode=max` включает обе build branches). PR импортирует cache без записи.
- `git.shx.one/<owner>/evofw-buildcache:base-node-22-alpine-<digest>` — зеркало FROM с Docker Hub. Только `linux/amd64`; upstream digest проверяется перед выбором зеркала, bake получает mirror reference по digest. Ошибка resolution/copy блокирует CD.
`pull = false` в bake: не перекачивать FROM, если слой уже в builder. Не запускайте `docker system prune -a` на runner.
@@ -31,6 +31,8 @@ BuildKit кэширует pnpm store через `RUN --mount=type=cache`. На C
Если CI падает на «not found» после смены схемы кэша — один раз удалите теги `evofw-buildcache:*` в registry и пересоберите.
Runtime smoke, backup/restore, baseline и оставшиеся release gates: [runtime-validation.md](../../docs/runtime-validation.md).
## Локальная сборка
Из корня репозитория: