docs(release): add readiness v0.1 package

This commit is contained in:
igor04091968
2026-06-03 21:53:23 +03:00
parent 5aab90f27d
commit 8db9f180ab
13 changed files with 403 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
# SBOM v0.1
Этот документ является human-readable SBOM profile для
`release-readiness-v0.1`. Машинные SBOM artifacts должны формироваться из
проверенного commit и публиковаться как release assets.
## 1. Идентификатор
| Поле | Значение |
|---|---|
| Product | DetMir, программный комплекс AWatch-rus |
| SBOM profile | v0.1 |
| Date | 2026-06-03 |
| Scope | Source + Rust workspace + Python exceptions + Node/Playwright tooling + OS/service dependencies |
## 2. Основные компоненты
| Компонент | Роль | Тип зависимости |
|---|---|---|
| ActivityWatch | Сбор и хранение активности | upstream application |
| aw-server-rust | ActivityWatch server runtime | upstream/Rust |
| DetMir Rust crates | status, checks, portal, readiness, DLP/worktime helpers | собственный код |
| Grafana | Dashboards и визуализация | third-party application |
| Prometheus | Metrics и alert rules | third-party application |
| Hayabusa | Offline forensic/security analytics | third-party tool |
| Ansible | Deployment automation | third-party tool |
| Telegram bot runtime | Оповещения и operator workflow | Python exception |
| Playwright | Browser smoke/screenshots | test/release tooling |
## 3. Rust SBOM input
Команды генерации:
```bash
mkdir -p dist/sbom
cargo metadata --manifest-path adk-rust/Cargo.toml --format-version 1 \
> dist/sbom/cargo-metadata-v0.1.json
(cd adk-rust && cargo tree --workspace) \
> dist/sbom/cargo-tree-v0.1.txt
```
Рекомендуемый CycloneDX:
```bash
cargo install cargo-cyclonedx --locked
cargo cyclonedx --manifest-path adk-rust/Cargo.toml \
--format json --output-cdx dist/sbom/cyclonedx-rust-v0.1.json
```
## 4. Python SBOM input
Python остается как исключение, а не ядро продукта:
- Telegram runtime;
- legacy fallbacks;
- MCP/AI/ETL helpers;
- installer/release utilities.
Команды:
```bash
find aw-server clickhouse-1c detmir-mcp scripts -maxdepth 4 -type f \
\( -name 'requirements.txt' -o -name 'pyproject.toml' -o -name 'setup.py' \) \
-print -exec sha256sum {} \; > dist/sbom/python-inputs-v0.1.txt
```
Если используется virtualenv:
```bash
python3 -m pip freeze > dist/sbom/python-freeze-v0.1.txt
```
## 5. Node/Playwright SBOM input
Node используется для browser smoke и release screenshots.
```bash
npm ls --all --json > dist/sbom/npm-tree-v0.1.json
```
Если проект не содержит production Node runtime, этот artifact помечается как
`test/release tooling only`.
## 6. OS/service inventory
Для эталонной Debian/Ubuntu VM:
```bash
dpkg-query -W -f='${Package}\t${Version}\n' \
> dist/sbom/debian-packages-v0.1.tsv
systemctl list-unit-files 'detmir-*' 'aw-*' --no-pager \
> dist/sbom/systemd-units-v0.1.txt
```
## 7. License inventory
Основной документ:
```text
THIRD_PARTY_LICENSES_RU.md
```
Дополнительные checks:
```bash
cargo install cargo-deny --locked
(cd adk-rust && cargo deny check licenses)
```
## 8. Критерии приемки SBOM v0.1
- SBOM artifacts сформированы из того же commit, что и release package.
- SBOM не содержит secrets, live IPs, live domains, user home paths или
runtime evidence.
- Для каждого крупного компонента понятны роль, upstream и license source.
- Python обозначен как исключение/интеграционный слой, не как ядро продукта.
- Машинные SBOM JSON/TXT публикуются в GitHub Release assets, а не обязательно
хранятся в tracked source.