mirror of
https://github.com/Direct-Dev-Ru/go-lcg.git
synced 2025-11-16 01:29:55 +00:00
Исправления в ветке auth-feature
This commit is contained in:
118
docs/ROADMAP.md
Normal file
118
docs/ROADMAP.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Дорожная карта развития (функциональность и безопасность)
|
||||
|
||||
Документ описывает план развития проекта на ближайшие релизы с фокусом на улучшение функциональности и усиление безопасности.
|
||||
|
||||
## Принципы
|
||||
|
||||
- Безопасность по умолчанию: новые возможности включают безопасные дефолты, опционально ослабляются.
|
||||
- Обратная совместимость: не ломать существующие сценарии CLI и API.
|
||||
- Прозрачность: чёткие Changelog, версии по SemVer, миграции и откаты.
|
||||
- Качество: тесты, линтеры, аудит зависимостей, автоматизация релизов.
|
||||
|
||||
## Вехи и цели
|
||||
|
||||
### v2.1.0 — Формализация API и UX улучшения
|
||||
|
||||
- REST API
|
||||
- Описать `POST /execute` в OpenAPI (swagger.yaml/json) и приложить в репозитории.
|
||||
- Валидация входа по схеме: обязательные поля, ограничения длины, лимит размера тела.
|
||||
- Явные коды ошибок и структура ответа (коды/сообщения).
|
||||
- Безопасность API (первый этап)
|
||||
- Дополнить защиту: ограничение размера тела (например, 64KB), тайм-ауты на чтение/запись.
|
||||
- Rate limit (встроенный простой токен-бакет, по IP). Конфиг через env.
|
||||
- Логирование попыток доступа и ошибок API (с редактированием PII).
|
||||
- Веб-интерфейс
|
||||
- Улучшения мобильной версии (доступность, контраст, a11y-метки).
|
||||
- Переключатель темы (light/dark), сохранение предпочтений.
|
||||
- Промпты
|
||||
- Экспорт/импорт системных промптов (JSON) из UI/CLI.
|
||||
- Превью при редактировании промптов в UI.
|
||||
- Документация
|
||||
- `API_GUIDE.md`: синхронизировать с OpenAPI.
|
||||
- `USAGE_GUIDE.md`: добавить раздел «Ограничения API и лимиты».
|
||||
|
||||
### v2.2.0 — Усиление безопасности и управление доступом
|
||||
|
||||
- Аутентификация/Авторизация для веб-сервера
|
||||
- Ввести токен доступа для API: `LCG_SERVER_TOKEN` (Bearer), отключаемо.
|
||||
- Сессии UI (опционально): cookie HttpOnly + SameSite=strict, CSRF-защита форм.
|
||||
- CORS: явный список разрешённых Origin через `LCG_CORS_ORIGINS`.
|
||||
- Транспорт и заголовки безопасности
|
||||
- Рекомендации по TLS терминации (пример конфигов nginx/caddy) в `serve/README.md`.
|
||||
- Security headers: CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, HSTS (при HTTPS).
|
||||
- Хранилище и история
|
||||
- Опциональное шифрование истории на диске (`LCG_HISTORY_ENCRYPTION_KEY_FILE`).
|
||||
- Права на файлы истории и результатов: 0600, директории 0700.
|
||||
- Настраиваемая ретенция истории (дни/размер). Авто-очистка.
|
||||
- Наблюдаемость
|
||||
- Аудит-лог действий UI/API с маскированием чувствительных данных.
|
||||
- Включаемые/отключаемые метрики (prometheus endpoint — опционально, по отдельному порту/токену).
|
||||
|
||||
### v2.3.0 — Расширяемость и производительность
|
||||
|
||||
- Плагины провайдеров
|
||||
- Интерфейс адаптеров (провайдеры LLM), регистрация через конфиг/билд-теги.
|
||||
- Образцы адаптеров и гайды по разработке.
|
||||
- Производительность
|
||||
- Пулы HTTP-клиентов, connection reuse, упреждающие таймауты на уровне контекста.
|
||||
- Кэширование результатов подробных объяснений (опционально, по ключу запроса).
|
||||
- Расширения API
|
||||
- Пакетная обработка запросов (batch) с квотой.
|
||||
- Пагинация и фильтрация для `/history` (если будет публичный REST).
|
||||
- Дистрибуция
|
||||
- Улучшения .goreleaser: публикация SBOM, подписи (cosign), детерминированные сборки.
|
||||
- Готовые пакеты: deb/rpm, инструкции для brew/scoop (по возможности).
|
||||
|
||||
## Backlog (кандидаты)
|
||||
|
||||
- Потоковая генерация (stream) и WebSocket-канал (при наличии поддержки у провайдеров).
|
||||
- Оффлайн-режим/кэширование моделей для локальных провайдеров.
|
||||
- Расширенный поиск по результатам/истории, теги и сохранённые фильтры.
|
||||
- Резервное копирование и восстановление каталога результатов/истории.
|
||||
- Улучшение доступности (a11y), горячие клавиши, локализация интерфейса.
|
||||
|
||||
## Техническое качество
|
||||
|
||||
- Обновление стека
|
||||
- Обновить Go (минимум 1.20+), пересобрать и протестировать совместимость.
|
||||
- Регулярные обновления зависимостей и проверка уязвимостей (`govulncheck`).
|
||||
- Линтеры и проверка качества
|
||||
- Включить `golangci-lint`, `staticcheck`, `gosec` в CI.
|
||||
- Форматирование и единый стиль, pre-commit хуки.
|
||||
- Тесты
|
||||
- Unit-тесты на `serve/*` (маршруты, валидация входных данных, заголовки).
|
||||
- Интеграционные тесты API `/execute` (позитив/негатив, лимиты, токены).
|
||||
- Фаззинг критичных функций парсинга/валидации.
|
||||
- CI/CD
|
||||
- GitHub Actions: сборка, тесты, линты, релизы. Генерация чек-сумм, подписи, SBOM.
|
||||
- Автоматическая публикация релизов и проверок артефактов.
|
||||
|
||||
## Конфигурация (новые/уточняемые переменные)
|
||||
|
||||
- `LCG_SERVER_TOKEN` — токен доступа для API (Bearer). Отключаемый режим.
|
||||
- `LCG_RATE_LIMIT` — глобальные лимиты (например, `60/m`, `5/s`).
|
||||
- `LCG_CORS_ORIGINS` — список разрешённых Origin.
|
||||
- `LCG_HISTORY_ENCRYPTION_KEY_FILE` — путь к ключу для шифрования истории (опц.).
|
||||
- `LCG_MAX_BODY_BYTES` — максимальный размер тела запроса, байты (по умолчанию 65536).
|
||||
- `LCG_BROWSER_PATH` — путь к браузеру для `--browser`.
|
||||
|
||||
## Политика релизов
|
||||
|
||||
- SemVer: MINOR — функционал без ломаний, PATCH — багфиксы/мелкие улучшения.
|
||||
- Каждый релиз: обновлённый `CHANGELOG.txt`, теги `vX.Y.Z`, двуязычная документация (RU/EN при возможности).
|
||||
- Security Advisories: отдельный раздел/ISSUE шаблон для отчётов об уязвимостях.
|
||||
|
||||
## Критерии приемки (примеры)
|
||||
|
||||
- v2.1.0: OpenAPI спецификация доступна, API валидируется по схеме, лимит размера тела и таймауты соблюдаются, добавлены тесты в CI.
|
||||
- v2.2.0: Доступ к API с токеном включаем/отключаем через env; активированы security-заголовки; есть базовые правила CORS; аудит-лог включается флагом.
|
||||
- v2.3.0: Пулы клиентов, бенчмарки показывают улучшение p95 латентности, есть механизм подключения новых провайдеров.
|
||||
|
||||
## Риски и смягчение
|
||||
|
||||
- Ломание совместимости при усилении безопасности → режим совместимости через env/флаги.
|
||||
- Рост сложности конфигурации → шаблоны конфигов и «рецепты» в README/serve/README.md.
|
||||
- Производительные регрессии из-за валидации/лимитов → профилирование и кэширование на горячих путях.
|
||||
|
||||
---
|
||||
Последнее обновление: 2025-10-22
|
||||
Reference in New Issue
Block a user