9.3 KiB
UX Reference: Clean Repository Enterprise Preparation
Feature Branch: 023-clean-repo-enterprise
Created: 2026-03-03
Status: Draft
1. User Persona & Context
- Who is the user?: Release Manager и инженер сопровождения корпоративной платформы.
- What is their goal?: Подготовить и выпустить clean-дистрибутив без тестовых данных и без зависимости от внешнего интернета.
- Context: Работа в изолированной сети организации.
- Interaction Model (explicit): Пользовательский интерфейс реализуется как интерактивный консольный TUI-скрипт на базе
ncurses(или полностью совместимого аналога). Веб-интерфейс для этого сценария не является целевым.
2. The "Happy Path" Narrative
Оператор запускает TUI-скрипт и видит главный экран подготовки enterprise clean-релиза. В форме выбирается релиз-кандидат и профиль enterprise-clean, затем запускается проверка одной горячей клавишей. На экране в реальном времени обновляются этапы проверки: чистота данных, проверка источников ресурсов и изоляция от внешнего интернета. После завершения пользователь получает итоговый статус COMPLIANT, ID отчёта и короткую сводку для передачи в релизный процесс. Весь путь проходится в одном ncurses-экране без переходов во внешние инструменты.
3. Interface Mockups
CLI Interaction (TUI / ncurses)
$ clean-release-tui
┌──────────────────────────────────────────────────────────────────────────────┐
│ Enterprise Clean Release Validator (TUI) │
├──────────────────────────────────────────────────────────────────────────────┤
│ Candidate: [2026.03.03-rc1 ] Profile: [enterprise-clean]│
│ │
│ Checks: │
│ [ ] Data Purity (no test/demo payloads) │
│ [ ] Internal Sources Only (company servers) │
│ [ ] No External Internet Endpoints │
│ [ ] Release Manifest Consistency │
│ │
│ Allowed Internal Sources: │
│ - repo.intra.company.local │
│ - artifacts.intra.company.local │
│ - pypi.intra.company.local │
│ │
│ Status: READY │
├──────────────────────────────────────────────────────────────────────────────┤
│ F5 Run Check F6 Export Report F10 Exit │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ Check Progress │
├──────────────────────────────────────────────────────────────────────────────┤
│ [1/4] Data Purity................................. PASS │
│ [2/4] Internal Sources Only....................... PASS │
│ [3/4] No External Internet Endpoints.............. PASS │
│ [4/4] Manifest Consistency........................ PASS │
│ │
│ FINAL STATUS: COMPLIANT │
│ Report ID: CCR-2026-03-03-001 │
├──────────────────────────────────────────────────────────────────────────────┤
│ Enter View Details F6 Export Report F10 Exit │
└──────────────────────────────────────────────────────────────────────────────┘
UI Layout & Flow (for TUI screen states)
Screen/Component: Main ncurses validation screen
- Layout:
- Верхний блок: выбор релиз-кандидата и профиля.
- Средний блок: список проверок и прогресс.
- Нижний блок: журнал сообщений/ошибок и подсказки горячих клавиш.
- Key Elements:
- Candidate Field: выбор проверяемого релиз-кандидата.
- Profile Field: фиксированное значение
enterprise-clean. - Allowed Sources Panel: видимый список допустимых внутренних серверов.
- Violations Table (details mode): нарушения с категорией, путём и рекомендацией.
- States:
- Default: готовность к запуску проверки.
- Running: поэтапный прогресс проверок.
- Compliant: успешное завершение и экспорт отчёта.
- Blocked: выпуск заблокирован до устранения нарушений.
4. The "Error" Experience
Philosophy: Ошибка должна блокировать выпуск и сразу показывать конкретное нарушение и путь исправления в терминах релизного процесса.
Scenario A: Найдены тестовые/демо-данные
- User Action: Нажимает
F5 Run Check. - System Response (TUI):
- Итог:
FINAL STATUS: BLOCKED - Запись в деталях:
Category=Data Purity,Path=<artifact-path>,Action=Remove prohibited content
- Итог:
- Recovery: Удалить артефакты, повторно запустить проверку из того же экрана.
Scenario B: Найден внешний источник ресурсов
- System Response (TUI):
- Итог:
FINAL STATUS: BLOCKED - Запись в деталях:
Category=External Source,Endpoint=<external-host>,Action=Replace with approved internal server
- Итог:
- Recovery: Заменить источник на внутренний из реестра разрешённых, затем повторить проверку.
Scenario C: Недоступен внутренний сервер ресурсов
- System Response (TUI):
- Этап помечается как
FAILED: Internal source unavailable - Итог:
BLOCKED (operational risk)
- Этап помечается как
- Recovery: Восстановить доступность внутреннего сервера и перезапустить проверку (F5).
5. Tone & Voice
- Style: Операционный, короткий, однозначный.
- Terminology:
- Использовать: «enterprise clean-профиль», «релиз-кандидат», «внутренний сервер», «блокировка выпуска».
- Не использовать размытые формулировки вроде «возможно» или «вероятно».
- В сообщениях о нарушениях указывать: категорию, объект, действие для исправления.