clean ui
This commit is contained in:
@@ -126,6 +126,48 @@
|
||||
|
||||
---
|
||||
|
||||
## Decision 7: Вся конфигурация валидации определяется через `.clean-release.yaml` в корне репозитория
|
||||
|
||||
**Decision**
|
||||
Ввести единый конфигурационный файл `.clean-release.yaml` в корне репозитория, определяющий:
|
||||
- `profile` и `scan_mode` (repo | build | docker);
|
||||
- `prohibited_categories` и `prohibited_paths` — классификация запрещённых артефактов;
|
||||
- `allowed_sources` — список допустимых внутренних endpoint'ов (glob-паттерны);
|
||||
- `ignore_paths` — исключения из сканирования;
|
||||
- `database_cleanup` (tables + preserve) — правила очистки БД от тестовых данных.
|
||||
|
||||
**Rationale**
|
||||
Централизация конфигурации в одном файле обеспечивает прозрачность и версионируемость правил. Владелец проекта явно контролирует политику clean-поставки через декларативный конфиг, что снижает операционные ошибки.
|
||||
|
||||
**Alternatives considered**
|
||||
- Хранение правил в БД: отклонено — усложняет версионирование и аудит policy drift.
|
||||
- Отдельные файлы для каждой секции: отклонено — фрагментация ухудшает обзорность и повышает вероятность рассинхронизации.
|
||||
- Hardcode в коде: отклонено — нарушает принцип конфигурируемости и делает проект-специфичные правила невозможными.
|
||||
|
||||
---
|
||||
|
||||
## Decision 8: Очистка БД от тестовых пользователей и демо-данных — обязательная стадия
|
||||
|
||||
**Decision**
|
||||
Добавить стадию `database_cleanup` в compliance pipeline. Правила очистки задаются в секции `database_cleanup` файла `.clean-release.yaml`:
|
||||
- `tables` — список таблиц с SQL-условиями для удаления тестовых записей;
|
||||
- `preserve` — whitelist записей, которые MUST быть сохранены (напр. системный admin).
|
||||
|
||||
**Rationale**
|
||||
Одной файловой очистки недостаточно: тестовые пользователи (`test_user`, `sample_analyst`) и демо-дашборды в БД являются таким же нарушением enterprise clean-профиля, как наличие тестовых файлов в дистрибутиве.
|
||||
|
||||
**Alternatives considered**
|
||||
- Только предупреждение без очистки: отклонено — не обеспечивает SC-001 (100% отсутствие тестовых данных).
|
||||
- Автоматическая очистка по паттернам имён: отклонено — высокий риск ложных удалений без явного whitelist.
|
||||
|
||||
---
|
||||
|
||||
## Open Clarifications Status
|
||||
|
||||
По итогам Phase 0 `NEEDS CLARIFICATION` не осталось: все критичные решения по scope, security/policy и UX зафиксированы.
|
||||
По итогам Phase 0 + speckit.clarify (2026-03-04) все `NEEDS CLARIFICATION` сняты:
|
||||
- Режимы ввода: 3 режима (папка, репозиторий, Docker-образ) — FR-015;
|
||||
- Классификация артефактов: `.clean-release.yaml` — FR-016;
|
||||
- Определение внутренних источников: `allowed_sources` в конфиге — FR-017;
|
||||
- Область сканирования NO_EXTERNAL_ENDPOINTS: все текстовые файлы — FR-018;
|
||||
- Очистка БД: секция `database_cleanup` — FR-019;
|
||||
- Структура конфига: полная схема зафиксирована — FR-020.
|
||||
Reference in New Issue
Block a user