[P0] 08.root. Получить проверенный security/dependency baseline и включить регулярные проверки #5

Closed
opened 2026-09-13 15:33:31 +03:00 by codex-bot · 1 comment
Owner

Источник: локальный todo/wealthledger-engineering-improvements.md, пункт 08.root, анализ от 13.09.2026. Исходные критерии приведены ниже, чтобы issue не зависела от наличия локального TODO.

Что осталось сделать

08.root. Получить проверенный security/dependency baseline и включить регулярные проверки. Размер: M. Владелец: root / общие условия проверки; применение в repos перечислено ниже.

Проверить историю и текущие изменения secret scanner с редактированием найденных
значений в выводе. Получить свежий dependency audit, разделяя runtime и dev risks;
сопоставить advisories с достижимостью и прежними решениями WL-P2-12.
Настроить CI на новые секреты и согласованные риски зависимостей. Исключения
должны иметь причину и условие пересмотра, а не безусловный continue-on-error.
Готово, когда: baseline относится к точным revisions; реальные секреты не
попадают в отчёт; безопасный synthetic marker проверяет отказ guardrail;
новые значимые findings требуют исправления или явного решения. Найденные
действующие credentials требуют отдельного отзыва/ротации владельцем.
Приоритет: до публикации кода или предоставления production-доступов — P0.
Основание: A, с. 7–8; B, с. 1–2, 7, 29.

Gitea API возвращает private=false для всех пяти репозиториев. Условие повышения security baseline до P0 по исходному плану применимо; доступность кода без авторизации отдельно не проверена. Не публиковать найденные значения секретов.

Основание текущего статуса

В Gitea workspace представлен репозиторием WealthLedger/main. Локально есть .git, но root AGENTS утверждает обратное; root README отсутствует. Это конфликт описания topology, который нужно явно разрешить при 02. Вложенные frontend/backend/docs/specs остаются независимыми репозиториями.

Проверка 13.09.2026: статическая сверка текущих файлов и remediation registry; через MCP проверены репозитории, issues, ветки и Actions workflows. Все пять main-веток имеют protected=false, список workflows пуст, существующих issues не найдено. Внешние CI, server-side updater, история секретов и свежий npm audit этой сверкой не проверялись; полные application gates повторно не запускались.

Проверяемая revision main: ee2adc9fda6ce319422e5fe89143b9a1584d690f.

Remediation registry остаётся владельцем статусов audit findings. Создание issue не означает выполнение или изменение статуса finding. Закрыть после проверки критериев и ссылки на фактические результаты.

Связанные issues

<!-- wealthledger-engineering-improvements:main:08.root --> Источник: локальный `todo/wealthledger-engineering-improvements.md`, пункт 08.root, анализ от 13.09.2026. Исходные критерии приведены ниже, чтобы issue не зависела от наличия локального TODO. ## Что осталось сделать **08.root. Получить проверенный security/dependency baseline и включить регулярные проверки.** Размер: M. Владелец: root / общие условия проверки; применение в repos перечислено ниже. Проверить историю и текущие изменения secret scanner с редактированием найденных значений в выводе. Получить свежий dependency audit, разделяя runtime и dev risks; сопоставить advisories с достижимостью и прежними решениями `WL-P2-12`. Настроить CI на новые секреты и согласованные риски зависимостей. Исключения должны иметь причину и условие пересмотра, а не безусловный `continue-on-error`. **Готово, когда:** baseline относится к точным revisions; реальные секреты не попадают в отчёт; безопасный synthetic marker проверяет отказ guardrail; новые значимые findings требуют исправления или явного решения. Найденные действующие credentials требуют отдельного отзыва/ротации владельцем. **Приоритет:** до публикации кода или предоставления production-доступов — P0. **Основание:** A, с. 7–8; B, с. 1–2, 7, 29. Gitea API возвращает private=false для всех пяти репозиториев. Условие повышения security baseline до P0 по исходному плану применимо; доступность кода без авторизации отдельно не проверена. Не публиковать найденные значения секретов. ## Основание текущего статуса В Gitea workspace представлен репозиторием `WealthLedger/main`. Локально есть `.git`, но root AGENTS утверждает обратное; root README отсутствует. Это конфликт описания topology, который нужно явно разрешить при 02. Вложенные frontend/backend/docs/specs остаются независимыми репозиториями. Проверка 13.09.2026: статическая сверка текущих файлов и remediation registry; через MCP проверены репозитории, issues, ветки и Actions workflows. Все пять main-веток имеют protected=false, список workflows пуст, существующих issues не найдено. Внешние CI, server-side updater, история секретов и свежий npm audit этой сверкой не проверялись; полные application gates повторно не запускались. Проверяемая revision main: `ee2adc9fda6ce319422e5fe89143b9a1584d690f`. [Remediation registry](https://git.personal.ksv741.ru/WealthLedger/docs/src/commit/7bc8792b9853768734066c31a323b70886d73a23/development/audit-remediation.md) остаётся владельцем статусов audit findings. Создание issue не означает выполнение или изменение статуса finding. Закрыть после проверки критериев и ссылки на фактические результаты. ## Связанные issues - [backend: [P0] 08.backend. Проверить backend secrets и dependency risks](https://git.personal.ksv741.ru/WealthLedger/backend/issues/5) - [frontend: [P0] 08.frontend. Проверить frontend secrets и dependency risks](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/4) - [specs: [P0] 08.specs. Проверить историю и новые изменения на секреты](https://git.personal.ksv741.ru/WealthLedger/specs/issues/5) - [docs: [P0] 08.docs. Проверить историю, изменения и tooling dependencies](https://git.personal.ksv741.ru/WealthLedger/docs/issues/5)
renovate-bot was assigned by hermes-agent 2026-10-12 00:04:35 +03:00
hermes-agent added this to the Инженерная основа и поставка milestone 2026-10-12 00:04:35 +03:00
hermes-agent added this to the WealthLedger — Delivery Board project 2026-10-12 00:04:35 +03:00
hermes-agent added the
Priority
Critical
1
Kind/Dependencies
labels 2026-10-12 00:04:35 +03:00
renovate-bot was unassigned by hermes-agent 2026-10-12 00:08:29 +03:00
codex-bot was assigned by hermes-agent 2026-10-12 00:08:29 +03:00
hermes-agent added Kind/Security and removed Kind/Dependencies labels 2026-10-12 00:08:29 +03:00
Author
Owner

Verified; closing. Baseline taken on 2026-11-03 at the revisions below. Secret values are redacted (--redact=100) and not reproduced here.

Secrets (git history, all branches)

gitleaks git --log-opts=--all --redact=100 --no-banner, run locally and in CI:

Repo Commits Result
main 29 no leaks found
backend 174 (HEAD aeb4647) no leaks found
frontend 216 (HEAD 8ce1e8e) no leaks found
specs 148 no leaks found
docs 154 no leaks found
Exclusions: one reviewed fingerprint in main .gitleaksignore (repeating 0123456789abcdef in a local-dev example, never a runtime secret); backend has 12 documented historical fingerprints (see backend#5). The local .env of main is git-ignored (/*) and never appeared in history.

Dependencies (npm audit, runtime and dev separately)

Repo Runtime (--omit=dev) Dev (--include=dev) CI threshold
backend aeb4647 0 vulnerabilities 41 (4 low, 37 moderate), no high/critical runtime low, dev high
frontend 8ce1e8e 0 vulnerabilities 4 low --include=dev --audit-level=moderate

CI guardrails

backend and frontend security jobs run Gitleaks 8.30.1 (sha256-checked, whole history) and npm audit on push, PR and daily schedule. The only audit exception, --ignore-advisory=GHSA-hp3w-g68c-fv3c in backend (added by 85858a1 without a recorded reason), was stale and is removed: backend#158 / PR #159 (develop 1a5de9b), CI security green.
Child Issues backend#5, frontend#4, specs#5 and docs#5 were already closed earlier with their own evidence.

Not done / for the owner

  • Repository visibility: Gitea private=false for all five repositories (per this Issue); not verified whether the code is reachable without authorization, and not changed.
  • Branch protection: protected=false on the five main branches as of 2026-09-13; not rechecked or changed.
  • Rotation of any live credentials stays a separate owner task; no secrets were found in history, so nothing to rotate from this scan.
  • The synthetic-marker guardrail check exists in frontend (scripts/test-pre-commit.mjs); I did not re-run it. Remaining moderate/low dev advisories are left to regular updates (main#6).
Verified; closing. Baseline taken on 2026-11-03 at the revisions below. Secret values are redacted (`--redact=100`) and not reproduced here. ## Secrets (git history, all branches) `gitleaks git --log-opts=--all --redact=100 --no-banner`, run locally and in CI: | Repo | Commits | Result | |---|---|---| | main | 29 | no leaks found | | backend | 174 (HEAD `aeb4647`) | no leaks found | | frontend | 216 (HEAD `8ce1e8e`) | no leaks found | | specs | 148 | no leaks found | | docs | 154 | no leaks found | Exclusions: one reviewed fingerprint in main `.gitleaksignore` (repeating `0123456789abcdef` in a local-dev example, never a runtime secret); backend has 12 documented historical fingerprints (see backend#5). The local `.env` of main is git-ignored (`/*`) and never appeared in history. ## Dependencies (`npm audit`, runtime and dev separately) | Repo | Runtime (`--omit=dev`) | Dev (`--include=dev`) | CI threshold | |---|---|---|---| | backend `aeb4647` | 0 vulnerabilities | 41 (4 low, 37 moderate), no high/critical | runtime `low`, dev `high` | | frontend `8ce1e8e` | 0 vulnerabilities | 4 low | `--include=dev --audit-level=moderate` | ## CI guardrails backend and frontend `security` jobs run Gitleaks 8.30.1 (sha256-checked, whole history) and `npm audit` on push, PR and daily schedule. The only audit exception, `--ignore-advisory=GHSA-hp3w-g68c-fv3c` in backend (added by `85858a1` without a recorded reason), was stale and is removed: backend#158 / PR #159 (develop `1a5de9b`), CI `security` green. Child Issues backend#5, frontend#4, specs#5 and docs#5 were already closed earlier with their own evidence. ## Not done / for the owner - Repository visibility: Gitea `private=false` for all five repositories (per this Issue); not verified whether the code is reachable without authorization, and not changed. - Branch protection: `protected=false` on the five main branches as of 2026-09-13; not rechecked or changed. - Rotation of any live credentials stays a separate owner task; no secrets were found in history, so nothing to rotate from this scan. - The synthetic-marker guardrail check exists in frontend (`scripts/test-pre-commit.mjs`); I did not re-run it. Remaining moderate/low dev advisories are left to regular updates (main#6).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/main#5