docs(detmir): add registry proof package
This commit is contained in:
+9
-1
@@ -1658,7 +1658,7 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg
|
||||
portal health `true`, `detmir-status` `OK / ok_for_operator=true`, and
|
||||
failed units `0`.
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md` added as the current working threat
|
||||
model for DetMir/AWatch-rus. It records the product as an operational
|
||||
model for DetMir. It records the product as an operational
|
||||
control and technical audit platform, not a certified DLP/SIEM/EDR/XDR
|
||||
or FSTEC SZI. It also records Igor as the declared product owner, lists
|
||||
assets, trust zones, attacker/operator-failure classes, implemented
|
||||
@@ -1670,6 +1670,14 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg
|
||||
DLP/security/evidence/Hayabusa as applied modules, and prepare website,
|
||||
operator/admin docs, ownership package, screenshots, and dependency
|
||||
inventory before any registry filing.
|
||||
- registry proof package skeleton added:
|
||||
`docs/ADMIN_GUIDE_RU.md`, `docs/OPERATOR_GUIDE_RU.md`,
|
||||
`docs/INSTALL_RU.md`, `docs/ARCHITECTURE_RU.md`,
|
||||
`docs/OWNERSHIP_RU.md`, `docs/THIRD_PARTY_LICENSES_RU.md`, and
|
||||
`docs/REGISTRY_CHECKLIST_RU.md`. Naming decision fixed across the docs:
|
||||
`DetMir` is the product, `AWatch-rus` is the repository/technical base,
|
||||
and the external formula is `DetMir, программный комплекс на базе
|
||||
AWatch-rus`.
|
||||
|
||||
Отложить:
|
||||
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
# DetMir: руководство администратора
|
||||
|
||||
Статус: подготовительный документ для эксплуатации и пакета реестра российского
|
||||
ПО.
|
||||
|
||||
Продуктовое имя: `DetMir`.
|
||||
|
||||
Техническая база и репозиторий: `AWatch-rus`.
|
||||
|
||||
Рекомендуемая формула для внешних документов:
|
||||
|
||||
> DetMir, программный комплекс на базе AWatch-rus.
|
||||
|
||||
## 1. Назначение администратора
|
||||
|
||||
Администратор отвечает за развертывание, обновление и техническое состояние
|
||||
серверного и endpoint-контура DetMir.
|
||||
|
||||
Зона ответственности:
|
||||
|
||||
- сервер ActivityWatch/AW-rus;
|
||||
- Rust-сервисы DetMir;
|
||||
- операторский портал;
|
||||
- Grafana dashboards и источники данных;
|
||||
- Windows/RDP collectors;
|
||||
- scheduled tasks и systemd timers;
|
||||
- backup/restore;
|
||||
- контроль секретов и доступов;
|
||||
- проверка состояния после обновлений.
|
||||
|
||||
Администратор не должен использовать DetMir как сертифицированную СЗИ, DLP,
|
||||
SIEM или EDR/XDR. В текущем позиционировании это платформа операционного
|
||||
контроля, технического аудита и управления ИТ-инфраструктурой.
|
||||
|
||||
## 2. Основные компоненты
|
||||
|
||||
| Компонент | Назначение |
|
||||
|---|---|
|
||||
| AW-rus server | Прием и хранение ActivityWatch/event telemetry. |
|
||||
| DetMir Rust helpers | Проверки, status, autoheal, DLP/worktime/reporting helpers. |
|
||||
| DetMir Portal | Операторский web-интерфейс. |
|
||||
| Evidence API | Безопасная выдача и upload подтверждений инцидентов. |
|
||||
| Grafana | Витрина dashboards и управленческой аналитики. |
|
||||
| Windows collectors | Сбор активности, endpoint-событий, worktime и DLP-сигналов. |
|
||||
| Telegram bot | Уведомления и операторские команды; runtime остается Python. |
|
||||
| Hayabusa tooling | Offline/DFIR enrichment для расследований. |
|
||||
|
||||
## 3. Базовые административные операции
|
||||
|
||||
### Проверка состояния
|
||||
|
||||
Минимальный набор:
|
||||
|
||||
```bash
|
||||
detmir-status --json
|
||||
detmir-check --json
|
||||
detmir-dlp --json
|
||||
systemctl --failed --no-pager
|
||||
```
|
||||
|
||||
Для AW server:
|
||||
|
||||
```bash
|
||||
aw-health-check --json
|
||||
check-aw-data --json
|
||||
dlp-health-check --json
|
||||
```
|
||||
|
||||
Для Grafana:
|
||||
|
||||
```bash
|
||||
detmir-grafana-check --json
|
||||
```
|
||||
|
||||
### Проверка портала
|
||||
|
||||
Администратор проверяет:
|
||||
|
||||
- портал открывается через штатный gateway;
|
||||
- раздел `Инциденты ИБ` показывает только релевантные DLP/incident данные;
|
||||
- evidence preview/download работают только через controlled routes;
|
||||
- прямые пути к файлам evidence не используются.
|
||||
|
||||
### Проверка evidence
|
||||
|
||||
Проверить:
|
||||
|
||||
- upload API требует Bearer token;
|
||||
- upload без токена возвращает `403`;
|
||||
- screenshot route отдает файл только по opaque `evidence_id`;
|
||||
- SHA-256 совпадает с metadata события;
|
||||
- audit пишет upload/view/download.
|
||||
|
||||
## 4. Управление конфигурацией
|
||||
|
||||
Общие правила:
|
||||
|
||||
1. Секреты не хранятся в git.
|
||||
2. Runtime tokens не выводятся в stdout, journald, Telegram или отчеты.
|
||||
3. Перед изменением systemd/drop-in/scheduled task создается backup.
|
||||
4. Любой replacement legacy script на Rust проходит read-only parity и shadow
|
||||
validation.
|
||||
5. Нельзя менять firewall/VPN/pfSense в рамках app-level задач без отдельного
|
||||
решения владельца.
|
||||
|
||||
## 5. Обновление
|
||||
|
||||
Стандартный порядок:
|
||||
|
||||
1. Проверить `git status`.
|
||||
2. Прочитать relevant runbook/phase notes.
|
||||
3. Собрать измененный Rust binary или применить нужный playbook.
|
||||
4. Выполнить read-only smoke.
|
||||
5. Переключить production unit/drop-in.
|
||||
6. Проверить systemd failed units.
|
||||
7. Проверить `detmir-status`.
|
||||
8. Проверить портал/Grafana.
|
||||
9. Записать результат в runbook.
|
||||
|
||||
## 6. Backup и rollback
|
||||
|
||||
Rollback-critical данные:
|
||||
|
||||
- SQLite DB ActivityWatch/AW-rus;
|
||||
- DLP warehouse/cases/policy DB;
|
||||
- evidence storage;
|
||||
- Grafana dashboards JSON;
|
||||
- Ansible inventory без публикации секретов;
|
||||
- systemd unit/drop-in backups;
|
||||
- Windows scheduled task/config backups.
|
||||
|
||||
Запрещено удалять rollback-critical backups при обычной уборке.
|
||||
|
||||
## 7. Инциденты
|
||||
|
||||
При техническом инциденте:
|
||||
|
||||
1. Зафиксировать текущее состояние.
|
||||
2. Не запускать autoheal вслепую, если есть риск потери данных.
|
||||
3. Проверить last known green state.
|
||||
4. Проверить systemd/scheduled task status.
|
||||
5. Проверить свежесть buckets и SLO current sample.
|
||||
6. После восстановления выполнить smoke.
|
||||
|
||||
При DLP/ИБ-инциденте:
|
||||
|
||||
1. Открыть портал.
|
||||
2. Проверить карточку `Инциденты ИБ`.
|
||||
3. Открыть evidence metadata.
|
||||
4. Сверить screenshot/SHA/audit.
|
||||
5. Не удалять evidence до окончания разбора.
|
||||
|
||||
## 8. Связанные документы
|
||||
|
||||
- `docs/OPERATOR_GUIDE_RU.md`
|
||||
- `docs/INSTALL_RU.md`
|
||||
- `docs/ARCHITECTURE_RU.md`
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `adk-rust/RUNBOOK.md`
|
||||
@@ -0,0 +1,155 @@
|
||||
# DetMir: архитектура
|
||||
|
||||
Статус: подготовительный документ для продукта и реестра российского ПО.
|
||||
|
||||
Продуктовое имя: `DetMir`.
|
||||
|
||||
Техническая база и репозиторий: `AWatch-rus`.
|
||||
|
||||
## 1. Краткое описание
|
||||
|
||||
DetMir - программный комплекс операционного контроля, технического аудита,
|
||||
мониторинга действий пользователей и автоматизации реагирования.
|
||||
|
||||
Архитектура построена вокруг ActivityWatch/AW-rus, Rust-сервисов DetMir,
|
||||
Windows collectors, операторского портала, Grafana dashboards и evidence
|
||||
workflow.
|
||||
|
||||
## 2. Логические уровни
|
||||
|
||||
```text
|
||||
Endpoint layer
|
||||
Windows/RDP collectors
|
||||
Worktime/session collectors
|
||||
DLP/event collectors
|
||||
Evidence artifact sync
|
||||
|
||||
Server data layer
|
||||
AW-rus API
|
||||
ActivityWatch buckets
|
||||
SQLite/warehouse storage
|
||||
DLP/cases/policy storage
|
||||
|
||||
Processing layer
|
||||
Rust health/status helpers
|
||||
DLP aggregation/export
|
||||
Worktime/reporting
|
||||
SLO monitoring
|
||||
Hayabusa/offline enrichment
|
||||
|
||||
Operator layer
|
||||
DetMir Portal
|
||||
Grafana dashboards
|
||||
Telegram notifications
|
||||
|
||||
Automation layer
|
||||
Ansible
|
||||
systemd services/timers
|
||||
Windows scheduled tasks
|
||||
rollback/backups
|
||||
```
|
||||
|
||||
## 3. Основные потоки данных
|
||||
|
||||
### Активность пользователя
|
||||
|
||||
```text
|
||||
Windows session -> collectors -> AW-rus API -> buckets -> reports/Grafana/portal
|
||||
```
|
||||
|
||||
### DLP/ИБ-инцидент
|
||||
|
||||
```text
|
||||
Endpoint event -> DLP decision -> AW bucket -> warehouse -> portal/Grafana
|
||||
```
|
||||
|
||||
### Evidence screenshot
|
||||
|
||||
```text
|
||||
Endpoint artifact -> scheduled sync -> evidence upload API -> server storage
|
||||
-> portal preview/download -> audit
|
||||
```
|
||||
|
||||
### Health/SLO
|
||||
|
||||
```text
|
||||
services/timers/API checks -> Rust helpers -> state files -> portal/Telegram
|
||||
```
|
||||
|
||||
### Управленческая аналитика
|
||||
|
||||
```text
|
||||
AW/1C/file telemetry -> processing/export -> ClickHouse/Influx/Grafana
|
||||
```
|
||||
|
||||
## 4. Серверные компоненты
|
||||
|
||||
| Компонент | Роль |
|
||||
|---|---|
|
||||
| AW-rus server | Прием и хранение событий ActivityWatch. |
|
||||
| detmir-status | Нормализованный статус контура. |
|
||||
| detmir-check | Read-only проверка состояния. |
|
||||
| detmir-dlp | Проверка DLP/ИБ контура. |
|
||||
| detmir-auto | Safe automation и autoheal по allowlist. |
|
||||
| detmir-portal | Web-интерфейс оператора. |
|
||||
| detmir-grafana-check | Проверка Grafana dashboards/data freshness. |
|
||||
| aw-slo-monitor | SLO samples и summary. |
|
||||
| dlp-* Rust services | Aggregation, exporters, policy/case/compliance paths. |
|
||||
| worktime-* Rust services | Worktime API, bridge, prewarm, autoheal, exporters. |
|
||||
|
||||
## 5. Endpoint-компоненты
|
||||
|
||||
| Компонент | Роль |
|
||||
|---|---|
|
||||
| AFK/window watchers | Базовая ActivityWatch активность. |
|
||||
| browser domain collector | Домены/категории браузера. |
|
||||
| worktime session collector | RDP/session presence. |
|
||||
| DLP endpoint collectors | Clipboard, USB, print, file/email/browser signals. |
|
||||
| evidence sync task | Доставка screenshots/artifacts на сервер. |
|
||||
|
||||
## 6. Evidence security path
|
||||
|
||||
Для evidence действует отдельная защитная логика:
|
||||
|
||||
- opaque `evidence_id`;
|
||||
- no raw path serving;
|
||||
- canonical path/root allowlist;
|
||||
- Bearer token upload;
|
||||
- `403` при upload без токена;
|
||||
- PNG/JPEG magic validation;
|
||||
- max-size limit;
|
||||
- SHA-256 validation;
|
||||
- atomic write;
|
||||
- audit upload/view/download.
|
||||
|
||||
## 7. Runtime-принципы
|
||||
|
||||
1. Серверный контур автономен и не зависит от ноутбука администратора.
|
||||
2. Rust используется для критичных helpers, где важны скорость, типизация и
|
||||
надежность.
|
||||
3. Telegram bot runtime остается Python.
|
||||
4. Legacy Python/shell сохраняется только там, где это оправдано совместимостью
|
||||
или низким выигрышем от переноса.
|
||||
5. pfSense/network layer не меняется в app-level задачах без отдельного
|
||||
решения владельца.
|
||||
|
||||
## 8. Границы продукта
|
||||
|
||||
DetMir не заявляется как сертифицированная СЗИ, DLP, SIEM или EDR/XDR.
|
||||
|
||||
Продукт заявляется как платформа:
|
||||
|
||||
- операционного контроля;
|
||||
- технического аудита;
|
||||
- управления ИТ-инфраструктурой;
|
||||
- контроля регламентов;
|
||||
- расследования операционных и ИБ-событий.
|
||||
|
||||
## 9. Связанные документы
|
||||
|
||||
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/OPERATOR_GUIDE_RU.md`
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`
|
||||
- `adk-rust/RUNBOOK.md`
|
||||
@@ -11,7 +11,14 @@
|
||||
|
||||
## 1. Вывод
|
||||
|
||||
DetMir/AWatch-rus нужно позиционировать не как классическую DLP, SIEM, EDR/XDR
|
||||
`DetMir` - продуктовое и коммерческое имя программного комплекса.
|
||||
`AWatch-rus` - имя репозитория и технической базы.
|
||||
|
||||
Рекомендуемая формула для внешних документов:
|
||||
|
||||
> DetMir, программный комплекс на базе AWatch-rus.
|
||||
|
||||
DetMir нужно позиционировать не как классическую DLP, SIEM, EDR/XDR
|
||||
или СЗИ, а как:
|
||||
|
||||
> отечественную платформу операционного контроля, технического аудита,
|
||||
@@ -50,7 +57,7 @@ DetMir/AWatch-rus нужно позиционировать не как клас
|
||||
|
||||
### Короткое описание
|
||||
|
||||
DetMir/AWatch-rus - платформа операционного контроля и технического аудита
|
||||
DetMir - платформа операционного контроля и технического аудита
|
||||
корпоративной ИТ-инфраструктуры. Система собирает телеметрию рабочих мест и
|
||||
серверных сервисов, контролирует состояние регламентов, фиксирует инциденты,
|
||||
показывает управленческие и технические dashboards, помогает оператору
|
||||
@@ -58,7 +65,7 @@ DetMir/AWatch-rus - платформа операционного контрол
|
||||
|
||||
### Расширенное описание
|
||||
|
||||
DetMir/AWatch-rus объединяет сбор активности пользователей, мониторинг
|
||||
DetMir объединяет сбор активности пользователей, мониторинг
|
||||
состояния сервисов, контроль endpoint-событий, DLP-сигналы, evidence workflow,
|
||||
Grafana/portal-аналитику, Telegram-оповещения, runbook automation и
|
||||
автовосстановление. Платформа предназначена для эксплуатации корпоративного
|
||||
@@ -195,6 +202,13 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`;
|
||||
- `docs/FULL_DEPLOYMENT_MANUAL_RU.md`;
|
||||
- `docs/PRESENTATION_RU.md`;
|
||||
- `docs/ADMIN_GUIDE_RU.md`;
|
||||
- `docs/OPERATOR_GUIDE_RU.md`;
|
||||
- `docs/INSTALL_RU.md`;
|
||||
- `docs/ARCHITECTURE_RU.md`;
|
||||
- `docs/OWNERSHIP_RU.md`;
|
||||
- `docs/THIRD_PARTY_LICENSES_RU.md`;
|
||||
- `docs/REGISTRY_CHECKLIST_RU.md`;
|
||||
- `adk-rust/RUNBOOK.md`.
|
||||
|
||||
Эти документы надо привести к единому публичному пакету: меньше внутренних IP,
|
||||
@@ -203,17 +217,14 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa
|
||||
|
||||
## 10. Очередь работ
|
||||
|
||||
1. Зафиксировать финальное публичное имя: `DetMir` или `AWatch-rus`.
|
||||
2. Подготовить публичный `README_PRODUCT_RU.md`.
|
||||
3. Собрать `docs/site/` или `mdbook/` для сайта.
|
||||
4. Сделать страницу продукта с описанием класса `09.10`.
|
||||
5. Подготовить руководство администратора.
|
||||
6. Подготовить руководство оператора.
|
||||
7. Подготовить страницу ограничений и security boundaries.
|
||||
8. Подготовить скриншоты портала/Grafana без секретов и внутренних адресов.
|
||||
9. Составить license/dependencies inventory.
|
||||
10. Подготовить пакет для Роспатента.
|
||||
11. После этого готовить заявку в реестр.
|
||||
1. Подготовить публичный `README_PRODUCT_RU.md`.
|
||||
2. Собрать `docs/site/` или `mdbook/` для сайта.
|
||||
3. Сделать страницу продукта с описанием класса `09.10`.
|
||||
4. Подготовить страницу ограничений и security boundaries.
|
||||
5. Подготовить скриншоты портала/Grafana без секретов и внутренних адресов.
|
||||
6. Сформировать проверенный license/SBOM пакет.
|
||||
7. Подготовить пакет для Роспатента.
|
||||
8. После этого готовить заявку в реестр.
|
||||
|
||||
## 11. Решение на текущий момент
|
||||
|
||||
@@ -222,6 +233,9 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa
|
||||
- основной публичный класс: операционный контроль и управление
|
||||
ИТ-инфраструктурой;
|
||||
- основной классификаторный ориентир: `09.10`;
|
||||
- публичное имя: `DetMir`;
|
||||
- техническая база/репозиторий: `AWatch-rus`;
|
||||
- формула: `DetMir, программный комплекс на базе AWatch-rus`;
|
||||
- DLP/ИБ/evidence/Hayabusa остаются функциональными модулями платформы;
|
||||
- не заявляем сертифицированную СЗИ;
|
||||
- сначала готовим сайт, документацию и правообладательский пакет.
|
||||
|
||||
@@ -2,8 +2,11 @@
|
||||
|
||||
Дата фиксации: `2026-06-03`
|
||||
|
||||
Статус: рабочая модель угроз `v0.1` для текущего production-контура
|
||||
`DetMir/AWatch-rus`.
|
||||
Статус: рабочая модель угроз `v0.1` для текущего production-контура `DetMir`.
|
||||
|
||||
Нейминг для внешних материалов: `DetMir` - продукт, `AWatch-rus` -
|
||||
репозиторий и техническая база. Рекомендуемая формула: `DetMir, программный
|
||||
комплекс на базе AWatch-rus`.
|
||||
|
||||
Документ фиксирует фактически используемую модель угроз для эксплуатации,
|
||||
аудита, развития продукта и подготовки к возможной регистрации как
|
||||
@@ -12,11 +15,11 @@
|
||||
## 1. Правообладание и позиционирование
|
||||
|
||||
На момент фиксации правообладателем продукта заявлен Игорь, владелец текущего
|
||||
репозитория и production-контура DetMir/AWatch-rus.
|
||||
репозитория AWatch-rus и production-контура DetMir.
|
||||
|
||||
Рабочее позиционирование продукта:
|
||||
|
||||
> DetMir/AWatch-rus - отечественная платформа операционного контроля,
|
||||
> DetMir - отечественная платформа операционного контроля,
|
||||
> технического аудита, мониторинга действий пользователей, расследования
|
||||
> инцидентов и автоматизации реагирования.
|
||||
|
||||
@@ -298,7 +301,7 @@
|
||||
|
||||
Для внутренних и внешних описаний использовать:
|
||||
|
||||
> DetMir/AWatch-rus использует рабочую операционную модель угроз для платформы
|
||||
> DetMir использует рабочую операционную модель угроз для платформы
|
||||
> технического аудита и операционного контроля. Модель покрывает сбор
|
||||
> активности, DLP-события, доказательства инцидентов, мониторинг состояния
|
||||
> сервисов, ошибки операторов, отказ компонентов и базовые сценарии
|
||||
@@ -309,6 +312,13 @@
|
||||
## 12. Связанные документы
|
||||
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/OPERATOR_GUIDE_RU.md`
|
||||
- `docs/INSTALL_RU.md`
|
||||
- `docs/ARCHITECTURE_RU.md`
|
||||
- `docs/OWNERSHIP_RU.md`
|
||||
- `docs/THIRD_PARTY_LICENSES_RU.md`
|
||||
- `docs/REGISTRY_CHECKLIST_RU.md`
|
||||
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`
|
||||
- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md`
|
||||
- `docs/dlp-security-functional-spec-ru.md`
|
||||
|
||||
@@ -18,6 +18,10 @@
|
||||
управления ИТ-инфраструктурой, с ориентиром на класс `09.10`, без заявления
|
||||
сертифицированной DLP/SIEM/EDR/XDR/СЗИ.
|
||||
|
||||
Нейминг для внешних материалов: `DetMir` - продукт, `AWatch-rus` -
|
||||
репозиторий и техническая база. Рекомендуемая формула: `DetMir, программный
|
||||
комплекс на базе AWatch-rus`.
|
||||
|
||||
## 1. Назначение
|
||||
|
||||
`DetMir` в этом репозитории это не только `ActivityWatch Server`.
|
||||
@@ -420,6 +424,13 @@ Telegram bot `DetMirAuto` обязан покрывать:
|
||||
| `docs/runbook.md` | живая эксплуатация |
|
||||
| `docs/DETMIR_THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования |
|
||||
| `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО |
|
||||
| `docs/ADMIN_GUIDE_RU.md` | руководство администратора |
|
||||
| `docs/OPERATOR_GUIDE_RU.md` | руководство оператора |
|
||||
| `docs/INSTALL_RU.md` | установка и первичная проверка |
|
||||
| `docs/ARCHITECTURE_RU.md` | продуктовая архитектура |
|
||||
| `docs/OWNERSHIP_RU.md` | правообладание и состав продукта |
|
||||
| `docs/THIRD_PARTY_LICENSES_RU.md` | сторонние компоненты и license-audit baseline |
|
||||
| `docs/REGISTRY_CHECKLIST_RU.md` | чек-лист подготовки к реестру российского ПО |
|
||||
| этот файл | единая карта системы и рабочего процесса |
|
||||
|
||||
## 9. Операционный минимум, который нельзя терять
|
||||
|
||||
@@ -0,0 +1,159 @@
|
||||
# DetMir: установка и первичная проверка
|
||||
|
||||
Статус: подготовительный документ для пакета реестра российского ПО.
|
||||
|
||||
Продуктовое имя: `DetMir`.
|
||||
|
||||
Техническая база и репозиторий: `AWatch-rus`.
|
||||
|
||||
## 1. Назначение
|
||||
|
||||
Документ описывает воспроизводимую установочную модель DetMir без публикации
|
||||
секретов и внутренних адресов production-контура.
|
||||
|
||||
Подробные внутренние playbooks и текущие runtime-пути описаны в
|
||||
`docs/FULL_DEPLOYMENT_MANUAL_RU.md` и `adk-rust/RUNBOOK.md`. Этот документ
|
||||
является публично-подготовительной версией для продукта.
|
||||
|
||||
## 2. Минимальные требования
|
||||
|
||||
Серверный контур:
|
||||
|
||||
- Linux server или LXC/VM;
|
||||
- systemd;
|
||||
- сетевой доступ от endpoint-collectors до AW-rus API;
|
||||
- Rust runtime binaries из release artifacts;
|
||||
- Python runtime для Telegram bot и legacy-compatible компонентов, где он еще
|
||||
используется;
|
||||
- Grafana/InfluxDB/SQLite/ClickHouse по выбранному профилю установки.
|
||||
|
||||
Endpoint-контур:
|
||||
|
||||
- Windows с PowerShell 5.1+;
|
||||
- права локального администратора для установки collectors;
|
||||
- Scheduled Tasks;
|
||||
- доступ к серверному API;
|
||||
- каталог для incident artifacts/evidence sync.
|
||||
|
||||
Административный контур:
|
||||
|
||||
- Ansible;
|
||||
- SSH/WinRM доступ;
|
||||
- git;
|
||||
- доступ к release artifacts.
|
||||
|
||||
## 3. Общий порядок установки
|
||||
|
||||
1. Подготовить сервер.
|
||||
2. Установить AW-rus server.
|
||||
3. Развернуть Rust binaries DetMir.
|
||||
4. Установить systemd units/timers.
|
||||
5. Развернуть DetMir Portal.
|
||||
6. Настроить Grafana datasources и dashboards.
|
||||
7. Настроить DLP/worktime/reporting services.
|
||||
8. Развернуть Windows collectors.
|
||||
9. Включить evidence upload/sync.
|
||||
10. Выполнить smoke checks.
|
||||
|
||||
## 4. Конфигурация
|
||||
|
||||
Секреты задаются вне git:
|
||||
|
||||
- tokens;
|
||||
- passwords;
|
||||
- SSH/WinRM credentials;
|
||||
- Grafana admin/API credentials;
|
||||
- Telegram bot token;
|
||||
- evidence upload token.
|
||||
|
||||
В git допускаются только:
|
||||
|
||||
- `.example` файлы;
|
||||
- шаблоны переменных;
|
||||
- документация;
|
||||
- playbooks без секретов.
|
||||
|
||||
## 5. Установка серверных компонентов
|
||||
|
||||
Типовой путь:
|
||||
|
||||
```bash
|
||||
cd ansible
|
||||
ansible-playbook -i inventory.ini deploy_aw_server.yml
|
||||
ansible-playbook -i inventory.ini deploy_detmir_portal.yml
|
||||
ansible-playbook -i inventory.ini deploy_grafana_dashboards.yml
|
||||
```
|
||||
|
||||
Для production нужно использовать актуальный inventory и group vars конкретного
|
||||
контура. Секреты передаются через защищенное окружение или отдельные
|
||||
непубликуемые файлы.
|
||||
|
||||
## 6. Установка Windows collectors
|
||||
|
||||
Типовой путь:
|
||||
|
||||
```bash
|
||||
cd ansible
|
||||
ansible-playbook -i inventory.ini deploy_aw_windows.yml
|
||||
ansible-playbook -i inventory.ini deploy_dlp_evidence_sync.yml
|
||||
```
|
||||
|
||||
После установки проверяются:
|
||||
|
||||
- scheduled tasks созданы;
|
||||
- tasks выполняются без ошибок;
|
||||
- ActivityWatch buckets получают события;
|
||||
- DLP/evidence sync task возвращает успешный статус.
|
||||
|
||||
## 7. Первичная проверка
|
||||
|
||||
Минимальный smoke:
|
||||
|
||||
```bash
|
||||
detmir-status --json
|
||||
detmir-check --json
|
||||
detmir-dlp --json
|
||||
detmir-grafana-check --json
|
||||
```
|
||||
|
||||
Ожидается:
|
||||
|
||||
- status OK;
|
||||
- failed systemd units отсутствуют;
|
||||
- AW API отвечает;
|
||||
- Grafana datasources healthy;
|
||||
- mandatory dashboards не stale;
|
||||
- portal health OK.
|
||||
|
||||
## 8. Проверка evidence workflow
|
||||
|
||||
Контролируемый тест:
|
||||
|
||||
1. Создать тестовый incident artifact на endpoint.
|
||||
2. Дождаться scheduled sync или запустить его вручную.
|
||||
3. Проверить upload на сервере.
|
||||
4. Проверить portal evidence metadata.
|
||||
5. Открыть preview/download.
|
||||
6. Проверить audit.
|
||||
7. Удалить тестовый incident/artifact/state.
|
||||
|
||||
Тестовые artifacts должны быть явно помечены как synthetic/smoke.
|
||||
|
||||
## 9. Завершение установки
|
||||
|
||||
Перед передачей в эксплуатацию:
|
||||
|
||||
- сохранить версии release artifacts;
|
||||
- сохранить контрольный `detmir-status`;
|
||||
- сохранить список active services/timers;
|
||||
- сохранить список Grafana dashboards;
|
||||
- проверить backup/restore;
|
||||
- проверить, что ноутбук администратора не является runtime-зависимостью.
|
||||
|
||||
## 10. Связанные документы
|
||||
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/ARCHITECTURE_RU.md`
|
||||
- `docs/FULL_DEPLOYMENT_MANUAL_RU.md`
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`
|
||||
- `adk-rust/RUNBOOK.md`
|
||||
@@ -0,0 +1,138 @@
|
||||
# DetMir: руководство оператора
|
||||
|
||||
Статус: подготовительный документ для эксплуатации и пакета реестра российского
|
||||
ПО.
|
||||
|
||||
Продуктовое имя: `DetMir`.
|
||||
|
||||
Техническая база и репозиторий: `AWatch-rus`.
|
||||
|
||||
## 1. Роль оператора
|
||||
|
||||
Оператор использует DetMir для ежедневного контроля состояния контура,
|
||||
просмотра dashboards, разбора инцидентов и проверки доказательств.
|
||||
|
||||
Оператор не администрирует firewall, VPN, базовые системные сервисы и секреты.
|
||||
Эти действия относятся к администратору.
|
||||
|
||||
## 2. Основной вход
|
||||
|
||||
Основной пользовательский вход:
|
||||
|
||||
- web-портал DetMir;
|
||||
- Grafana dashboards;
|
||||
- Telegram-уведомления и команды, если они включены в контуре.
|
||||
|
||||
Портал является первичной операторской поверхностью. Grafana используется для
|
||||
графиков, исторических срезов и детальной аналитики.
|
||||
|
||||
## 3. Ежедневная проверка
|
||||
|
||||
Оператор проверяет:
|
||||
|
||||
1. Общий статус контура.
|
||||
2. Наличие активных предупреждений.
|
||||
3. Состояние DLP/ИБ-инцидентов.
|
||||
4. Актуальность графиков Grafana.
|
||||
5. Наличие свежих worktime/session данных.
|
||||
6. Наличие evidence для инцидентов, где оно ожидается.
|
||||
|
||||
Зеленое состояние означает:
|
||||
|
||||
- сервисы доступны;
|
||||
- fresh/stale/dead семантика не показывает активного отказа;
|
||||
- current SLO sample OK;
|
||||
- Grafana не показывает stale mandatory panels;
|
||||
- нет failed units, требующих вмешательства.
|
||||
|
||||
## 4. Раздел `Инциденты ИБ`
|
||||
|
||||
В этом разделе отображаются события, связанные с DLP/ИБ-контролем:
|
||||
|
||||
- DLP incident metadata;
|
||||
- severity/status;
|
||||
- источник события;
|
||||
- время события;
|
||||
- evidence metadata;
|
||||
- screenshot preview/download, если evidence доступно;
|
||||
- ссылки на Grafana dashboards.
|
||||
|
||||
Этот раздел не должен использоваться как общий каталог всех технических
|
||||
событий. Он предназначен для инцидентов и доказательной аналитики.
|
||||
|
||||
## 5. Работа с доказательствами
|
||||
|
||||
Если у инцидента есть доказательство:
|
||||
|
||||
1. Открыть запись инцидента.
|
||||
2. Проверить наличие блока `Доказательства`.
|
||||
3. Открыть preview.
|
||||
4. При необходимости скачать файл.
|
||||
5. Убедиться, что в audit зафиксирован просмотр.
|
||||
|
||||
Оператор не должен:
|
||||
|
||||
- открывать evidence по прямому пути на сервере;
|
||||
- пересылать screenshots в публичные каналы;
|
||||
- удалять evidence без отдельного решения администратора/владельца;
|
||||
- трактовать screenshot как юридически неизменяемое доказательство без
|
||||
отдельного регламента.
|
||||
|
||||
## 6. Grafana
|
||||
|
||||
Grafana используется для:
|
||||
|
||||
- DLP/ИБ обзора;
|
||||
- worktime и RDP активности;
|
||||
- управленческих графиков;
|
||||
- проверки исторических трендов;
|
||||
- сверки данных портала.
|
||||
|
||||
Если портал показывает инцидент, а Grafana не показывает ожидаемый график,
|
||||
оператор передает администратору:
|
||||
|
||||
- название dashboard;
|
||||
- время проверки;
|
||||
- affected panel;
|
||||
- ожидаемое и фактическое поведение.
|
||||
|
||||
## 7. Telegram
|
||||
|
||||
Telegram bot используется как канал уведомлений и операторских команд.
|
||||
|
||||
Важно:
|
||||
|
||||
- Telegram runtime остается Python;
|
||||
- Rust используется для backend helpers;
|
||||
- Telegram не является единственным источником истины;
|
||||
- при расхождении Telegram и портала приоритет у портала/status checks.
|
||||
|
||||
## 8. Когда звать администратора
|
||||
|
||||
Эскалация нужна, если:
|
||||
|
||||
- портал недоступен;
|
||||
- Grafana не авторизует или dashboards пустые;
|
||||
- evidence preview не открывается;
|
||||
- upload/view/download audit не пишется;
|
||||
- SLO current sample FAIL;
|
||||
- появились failed systemd units;
|
||||
- Windows collectors не дают свежих данных;
|
||||
- инцидент требует удаления/ретенции/экспорта evidence.
|
||||
|
||||
## 9. Ограничения
|
||||
|
||||
DetMir помогает контролировать и расследовать события, но не заменяет:
|
||||
|
||||
- юридический аудит;
|
||||
- сертифицированную СЗИ;
|
||||
- EDR/XDR;
|
||||
- полноценную SIEM;
|
||||
- утвержденный регламент обработки персональных данных.
|
||||
|
||||
## 10. Связанные документы
|
||||
|
||||
- `docs/ADMIN_GUIDE_RU.md`
|
||||
- `docs/GRAFANA_DASHBOARDS_RU.md`
|
||||
- `docs/DETMIR_THREAT_MODEL_RU.md`
|
||||
- `docs/dlp-security-functional-spec-ru.md`
|
||||
@@ -0,0 +1,117 @@
|
||||
# DetMir: правообладание и состав продукта
|
||||
|
||||
Статус: подготовительный документ для пакета реестра российского ПО.
|
||||
|
||||
## 1. Нейминг
|
||||
|
||||
Продуктовое имя:
|
||||
|
||||
```text
|
||||
DetMir
|
||||
```
|
||||
|
||||
Репозиторий и техническая база:
|
||||
|
||||
```text
|
||||
AWatch-rus
|
||||
```
|
||||
|
||||
Рекомендуемая формула:
|
||||
|
||||
> DetMir, программный комплекс на базе AWatch-rus.
|
||||
|
||||
Эту формулу нужно использовать в сайте, документации и карточке продукта, чтобы
|
||||
не создавать впечатление двух разных продуктов.
|
||||
|
||||
## 2. Правообладатель
|
||||
|
||||
На дату фиксации правообладателем продукта заявлен Игорь, владелец текущего
|
||||
репозитория и production-контура.
|
||||
|
||||
Перед подачей в реестр нужно подготовить формальные подтверждения:
|
||||
|
||||
- данные правообладателя;
|
||||
- основание возникновения исключительного права;
|
||||
- история разработки;
|
||||
- сведения о сотрудниках/подрядчиках, если они участвовали;
|
||||
- подтверждение передачи прав, если код писался не только правообладателем;
|
||||
- выбранная лицензия поставки;
|
||||
- при необходимости свидетельство Роспатента.
|
||||
|
||||
## 3. Собственные части продукта
|
||||
|
||||
К собственным частям относятся:
|
||||
|
||||
- архитектура DetMir;
|
||||
- Rust workspace `adk-rust/`;
|
||||
- DetMir Portal;
|
||||
- status/check/autoheal helpers;
|
||||
- DLP/worktime/reporting Rust services;
|
||||
- Ansible deployment automation;
|
||||
- Windows collectors и scripts;
|
||||
- AW-rus RU/WebUI patches;
|
||||
- Grafana dashboard JSON;
|
||||
- docs/runbooks/product docs;
|
||||
- evidence workflow implementation.
|
||||
|
||||
## 4. Внешние компоненты
|
||||
|
||||
Внешние компоненты используются как dependencies/runtime platform:
|
||||
|
||||
- ActivityWatch;
|
||||
- Grafana;
|
||||
- InfluxDB;
|
||||
- ClickHouse;
|
||||
- SQLite;
|
||||
- Python ecosystem;
|
||||
- Rust crates;
|
||||
- PowerShell/Windows runtime;
|
||||
- Hayabusa;
|
||||
- Ansible.
|
||||
|
||||
Они не должны описываться как созданные правообладателем DetMir. Их нужно
|
||||
указывать как сторонние компоненты или интеграции.
|
||||
|
||||
## 5. Что нельзя смешивать
|
||||
|
||||
Не смешивать в документах:
|
||||
|
||||
- право на собственный код DetMir;
|
||||
- право на сторонние open-source компоненты;
|
||||
- право на конкретные customer/runtime данные;
|
||||
- право на торговое наименование;
|
||||
- право на домен/сайт;
|
||||
- право на screenshots с чувствительными данными.
|
||||
|
||||
## 6. Что подготовить для Роспатента
|
||||
|
||||
Минимальный пакет:
|
||||
|
||||
1. Название программы: `DetMir`.
|
||||
2. Альтернативное техническое название: `AWatch-rus`.
|
||||
3. Описание назначения.
|
||||
4. Реферат.
|
||||
5. Исходные тексты или депонируемая часть.
|
||||
6. Данные автора/правообладателя.
|
||||
7. Подтверждение исключительных прав.
|
||||
8. Дата создания и версия.
|
||||
9. Состав модулей.
|
||||
|
||||
## 7. Что подготовить для реестра российского ПО
|
||||
|
||||
1. Сайт правообладателя/продукта.
|
||||
2. Документация установки и эксплуатации.
|
||||
3. Описание функциональных характеристик.
|
||||
4. Сведения о правообладателе.
|
||||
5. Сведения об основаниях исключительного права.
|
||||
6. Информация о сторонних компонентах.
|
||||
7. Поддерживаемые ОС/СУБД/среда исполнения.
|
||||
8. Скриншоты и демонстрационные материалы.
|
||||
9. Release artifacts.
|
||||
10. License/dependency inventory.
|
||||
|
||||
## 8. Связанные документы
|
||||
|
||||
- `docs/THIRD_PARTY_LICENSES_RU.md`
|
||||
- `docs/REGISTRY_CHECKLIST_RU.md`
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
@@ -0,0 +1,112 @@
|
||||
# DetMir: чек-лист подготовки к реестру российского ПО
|
||||
|
||||
Статус: рабочий чек-лист. Не является юридическим заключением.
|
||||
|
||||
Продуктовое имя: `DetMir`.
|
||||
|
||||
Техническая база и репозиторий: `AWatch-rus`.
|
||||
|
||||
Основной классификаторный ориентир: `09.10 Средства управления ИТ-службой,
|
||||
ИТ-инфраструктурой и ИТ-активами`.
|
||||
|
||||
## 1. Позиционирование
|
||||
|
||||
- [x] Не заявлять продукт как DLP/SIEM/EDR/XDR/СЗИ.
|
||||
- [x] Зафиксировать основную линию: операционный контроль, технический аудит,
|
||||
управление ИТ-инфраструктурой.
|
||||
- [x] Зафиксировать `09.10` как основной класс.
|
||||
- [x] Описать DLP/evidence/Hayabusa как прикладные модули.
|
||||
- [ ] Подготовить публичное описание продукта на 500-1000 знаков.
|
||||
- [ ] Подготовить короткое описание на 1-2 предложения.
|
||||
|
||||
## 2. Правообладание
|
||||
|
||||
- [x] Зафиксировать текущего заявленного правообладателя.
|
||||
- [ ] Подготовить формальные данные правообладателя.
|
||||
- [ ] Подготовить основание возникновения исключительного права.
|
||||
- [ ] Проверить историю участия третьих лиц.
|
||||
- [ ] Подготовить документы о передаче прав, если нужно.
|
||||
- [ ] Решить вопрос со свидетельством Роспатента.
|
||||
|
||||
## 3. Название
|
||||
|
||||
- [x] Принять `DetMir` как продуктовое имя.
|
||||
- [x] Принять `AWatch-rus` как имя репозитория и технической базы.
|
||||
- [x] Использовать формулу `DetMir, программный комплекс на базе AWatch-rus`.
|
||||
- [ ] Проверить доступность домена/товарного обозначения.
|
||||
- [ ] Проверить, нет ли конфликтов по названию.
|
||||
|
||||
## 4. Документация
|
||||
|
||||
- [x] Модель угроз: `docs/DETMIR_THREAT_MODEL_RU.md`.
|
||||
- [x] Позиционирование: `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
|
||||
- [x] Руководство администратора: `docs/ADMIN_GUIDE_RU.md`.
|
||||
- [x] Руководство оператора: `docs/OPERATOR_GUIDE_RU.md`.
|
||||
- [x] Установка: `docs/INSTALL_RU.md`.
|
||||
- [x] Архитектура: `docs/ARCHITECTURE_RU.md`.
|
||||
- [x] Правообладание: `docs/OWNERSHIP_RU.md`.
|
||||
- [x] Сторонние компоненты: `docs/THIRD_PARTY_LICENSES_RU.md`.
|
||||
- [ ] Подготовить публичный `README_PRODUCT_RU.md`.
|
||||
- [ ] Подготовить сайт/mdBook.
|
||||
- [ ] Очистить публичные docs от внутренних IP, секретов и временных путей.
|
||||
|
||||
## 5. Сайт
|
||||
|
||||
- [ ] Создать раздел `О продукте`.
|
||||
- [ ] Создать раздел `Возможности`.
|
||||
- [ ] Создать раздел `Архитектура`.
|
||||
- [ ] Создать раздел `Установка`.
|
||||
- [ ] Создать раздел `Эксплуатация`.
|
||||
- [ ] Создать раздел `Безопасность и ограничения`.
|
||||
- [ ] Создать раздел `Документация`.
|
||||
- [ ] Создать раздел `Контакты правообладателя`.
|
||||
- [ ] Разместить документацию на странице правообладателя.
|
||||
|
||||
## 6. Сборка и поставка
|
||||
|
||||
- [ ] Зафиксировать release version.
|
||||
- [ ] Собрать Rust release binaries.
|
||||
- [ ] Зафиксировать checksums release artifacts.
|
||||
- [ ] Проверить clean build из репозитория.
|
||||
- [ ] Подготовить installation bundle.
|
||||
- [ ] Подготовить upgrade/rollback notes.
|
||||
|
||||
## 7. Лицензии и зависимости
|
||||
|
||||
- [ ] Добавить root `LICENSE`.
|
||||
- [ ] Выполнить `cargo deny check`.
|
||||
- [ ] Сформировать Rust license report.
|
||||
- [ ] Сформировать Python license report.
|
||||
- [ ] Подготовить SBOM.
|
||||
- [ ] Проверить transitive dependencies.
|
||||
- [ ] Подготовить `THIRD_PARTY_NOTICES`.
|
||||
|
||||
## 8. Демонстрационные материалы
|
||||
|
||||
- [ ] Скриншот портала DetMir.
|
||||
- [ ] Скриншот раздела `Инциденты ИБ`.
|
||||
- [ ] Скриншот evidence preview без чувствительных данных.
|
||||
- [ ] Скриншоты Grafana dashboards.
|
||||
- [ ] Пример operator daily flow.
|
||||
- [ ] Пример admin health check.
|
||||
|
||||
## 9. Безопасность
|
||||
|
||||
- [x] Зафиксировать, что продукт не заявляется как сертифицированная СЗИ.
|
||||
- [x] Зафиксировать остаточные риски.
|
||||
- [x] Зафиксировать evidence controls.
|
||||
- [ ] Подготовить evidence retention policy.
|
||||
- [ ] Подготовить role/access policy.
|
||||
- [ ] Подготовить public security boundaries.
|
||||
- [ ] Подготовить vulnerability disclosure/contact.
|
||||
|
||||
## 10. Финальная готовность
|
||||
|
||||
- [ ] Все документы согласованы по названию `DetMir`.
|
||||
- [ ] Нет противоречивых заявлений DLP/SIEM/EDR/XDR/СЗИ.
|
||||
- [ ] Сайт доступен.
|
||||
- [ ] Документация доступна с сайта правообладателя.
|
||||
- [ ] Release artifacts готовы.
|
||||
- [ ] Правообладательский пакет готов.
|
||||
- [ ] License/SBOM пакет готов.
|
||||
- [ ] Заявка может готовиться к подаче.
|
||||
@@ -0,0 +1,120 @@
|
||||
# DetMir: сторонние компоненты и лицензии
|
||||
|
||||
Статус: первичный inventory для подготовки к реестру российского ПО.
|
||||
|
||||
Этот документ не заменяет юридическую license audit. Перед подачей в реестр
|
||||
нужно выполнить автоматизированную проверку зависимостей и сохранить отчет.
|
||||
|
||||
Продуктовое имя: `DetMir`.
|
||||
|
||||
Техническая база и репозиторий: `AWatch-rus`.
|
||||
|
||||
## 1. Собственный код
|
||||
|
||||
Собственный код проекта включает:
|
||||
|
||||
- Rust workspace `adk-rust/`;
|
||||
- Ansible playbooks;
|
||||
- Windows PowerShell collectors и deployment scripts;
|
||||
- AW-rus WebUI patches;
|
||||
- DetMir Portal;
|
||||
- DLP/worktime/status/reporting helpers;
|
||||
- документацию проекта.
|
||||
|
||||
В `adk-rust/Cargo.toml` для workspace указан license:
|
||||
|
||||
```text
|
||||
Apache-2.0
|
||||
```
|
||||
|
||||
Перед публичной поставкой нужно проверить, что license root файла и все
|
||||
исходники согласованы с выбранной моделью поставки.
|
||||
|
||||
## 2. Основные внешние компоненты runtime
|
||||
|
||||
| Компонент | Роль |
|
||||
|---|---|
|
||||
| ActivityWatch | Базовый сбор и API событий активности. |
|
||||
| Grafana | Dashboards и визуализация. |
|
||||
| InfluxDB | Метрики и временные ряды. |
|
||||
| ClickHouse | 1C/file analytics слой. |
|
||||
| SQLite | Локальные state/warehouse/cases/policy хранилища. |
|
||||
| Python | Telegram runtime и legacy-compatible tooling. |
|
||||
| Rust crates ecosystem | Основной runtime DetMir helpers. |
|
||||
| PowerShell | Windows collectors/deployment. |
|
||||
| Hayabusa | Offline/DFIR enrichment. |
|
||||
| Ansible | Deployment automation. |
|
||||
|
||||
## 3. Rust зависимости
|
||||
|
||||
Найдены workspace dependencies:
|
||||
|
||||
| Dependency | Использование |
|
||||
|---|---|
|
||||
| `adk-rust` | Agent/tooling integration. |
|
||||
| `anyhow` | Error handling. |
|
||||
| `base64` | Evidence upload body decoding. |
|
||||
| `chrono` | Time/date handling. |
|
||||
| `clap` | CLI parsing. |
|
||||
| `fs2` | File locks. |
|
||||
| `reqwest` | HTTP client. |
|
||||
| `regex` | Rules/content matching. |
|
||||
| `rusqlite` | SQLite access. |
|
||||
| `serde`, `serde_json`, `serde_yaml` | Serialization. |
|
||||
| `sha2` | SHA-256 validation. |
|
||||
| `tempfile` | Tests/temp files. |
|
||||
| `tiny_http` | Lightweight HTTP services. |
|
||||
| `url`, `urlencoding` | URL handling. |
|
||||
|
||||
Перед релизом выполнить:
|
||||
|
||||
```bash
|
||||
cargo install cargo-about cargo-deny
|
||||
cd adk-rust
|
||||
cargo about generate about.hbs > ../docs/licenses-rust.html
|
||||
cargo deny check
|
||||
```
|
||||
|
||||
Шаблон `about.hbs` нужно добавить отдельно.
|
||||
|
||||
## 4. Python зависимости
|
||||
|
||||
Найдены requirements:
|
||||
|
||||
| Файл | Зависимости |
|
||||
|---|---|
|
||||
| `aw-server/dlp-case-management/requirements.txt` | `fastapi`, `uvicorn`, `pydantic` |
|
||||
| `aw-server/dlp-compliance/requirements.txt` | `requests` |
|
||||
| `aw-server/dlp-content-analysis/requirements.txt` | `pytesseract`, `Pillow` |
|
||||
| `aw-server/dlp-integrations/requirements.txt` | `PyYAML` |
|
||||
| `aw-server/dlp-policy-engine/requirements.txt` | `fastapi`, `uvicorn`, `pydantic` |
|
||||
| `clickhouse-1c/ai/requirements.txt` | `fastapi`, `uvicorn`, `clickhouse-connect` |
|
||||
| `clickhouse-1c/etl/requirements.txt` | `clickhouse-connect`, `PyYAML`, `python-dateutil`, `openpyxl` |
|
||||
|
||||
Перед релизом выполнить license scan:
|
||||
|
||||
```bash
|
||||
python3 -m pip install pip-licenses
|
||||
pip-licenses --from=mixed --format=markdown > docs/licenses-python.md
|
||||
```
|
||||
|
||||
Команду запускать в воспроизводимом virtualenv, где установлены реальные
|
||||
runtime dependencies.
|
||||
|
||||
## 5. Что нужно закрыть перед подачей
|
||||
|
||||
1. Добавить root `LICENSE`.
|
||||
2. Добавить `NOTICE`, если это потребуется выбранными лицензиями.
|
||||
3. Сформировать полный SBOM.
|
||||
4. Проверить transitive dependencies.
|
||||
5. Зафиксировать список компонентов, которые поставляются вместе с продуктом.
|
||||
6. Отделить компоненты, которые устанавливаются пользователем самостоятельно.
|
||||
7. Проверить отсутствие GPL/AGPL-компонентов, если выбранная модель поставки с
|
||||
ними несовместима.
|
||||
8. Подготовить публичный `THIRD_PARTY_NOTICES`.
|
||||
|
||||
## 6. Связанные документы
|
||||
|
||||
- `docs/OWNERSHIP_RU.md`
|
||||
- `docs/REGISTRY_CHECKLIST_RU.md`
|
||||
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
|
||||
Reference in New Issue
Block a user