Some checks failed
Deploy on push / deploy (push) Failing after 39s
### 🚨 CRITICAL Security Fixes - **🔒 Open Redirect Protection**: Добавлена строгая валидация redirect_uri против whitelist доменов - **🔒 Rate Limiting**: Защита OAuth endpoints от брутфорса (10 попыток за 5 минут на IP) - **🔒 Logout Endpoint**: Критически важный endpoint для безопасного отзыва httpOnly cookies - **🔒 Provider Validation**: Усиленная валидация OAuth провайдеров с логированием атак - **🚨 GlitchTip Alerts**: Автоматические алерты безопасности в GlitchTip при критических событиях ### 🛡️ Security Modules - **auth/oauth_security.py**: Модуль безопасности OAuth с валидацией и rate limiting + GlitchTip алерты - **auth/logout.py**: Безопасный logout с поддержкой JSON API и browser redirect - **tests/test_oauth_security.py**: Комплексные тесты безопасности (11 тестов) - **tests/test_oauth_glitchtip_alerts.py**: Тесты интеграции с GlitchTip (8 тестов) ### 🔧 OAuth Improvements - **Minimal Flow**: Упрощен до минимума - только httpOnly cookie, нет JWT в URL - **Simple Logic**: Нет error параметра = успех, максимальная простота - **DRY Refactoring**: Устранено дублирование кода в logout и валидации ### 🎯 OAuth Endpoints - **Старт**: `v3.dscrs.site/oauth/{provider}` - с rate limiting и валидацией - **Callback**: `v3.dscrs.site/oauth/{provider}/callback` - безопасный redirect_uri - **Logout**: `v3.dscrs.site/auth/logout` - отзыв httpOnly cookies - **Финализация**: `testing.discours.io/oauth?redirect_url=...` - минимальная схема ### 📊 Security Test Coverage - ✅ Open redirect attack prevention - ✅ Rate limiting protection - ✅ Provider validation - ✅ Safe fallback mechanisms - ✅ Cookie security (httpOnly + Secure + SameSite) - ✅ GlitchTip integration (8 тестов алертов) ### 📝 Documentation - Создан `docs/oauth-minimal-flow.md` - полное описание минимального flow - Обновлена документация OAuth в `docs/auth/oauth.md` - Добавлены security best practices
Документация Discours Core v0.9.16
📚 Быстрый старт
Discours Core - это GraphQL API бэкенд для системы управления контентом с реакциями, рейтингами и темами.
🚀 Запуск
# Подготовка окружения
python3.12 -m venv .venv
source .venv/bin/activate
uv run pip install -r requirements.dev.txt
# Сертификаты для HTTPS
mkcert -install
mkcert localhost
# Запуск сервера
uv run python -m granian main:app --interface asgi
📊 Статус проекта
- Версия: 0.9.16
- Тесты: 344/344 проходят (включая E2E Playwright тесты) ✅
- Покрытие: 90%
- Python: 3.12+
- База данных: PostgreSQL 16.1
- Кеш: Redis 6.2.0
- E2E тесты: Playwright с автоматическим headless режимом
📖 Документация
🔧 Основные компоненты
- API Documentation - GraphQL API и резолверы
- Authentication System - 🎯 Основная документация по аутентификации
- RBAC System - Роли и права доступа
- Redis Schema - Схема данных Redis и кеширование
- Security System - Управление паролями и email
- Search System - 🔍 Семантический поиск с эмбедингами
- Admin Panel - Админ-панель управления
🔐 Система аутентификации
- Auth Overview - 🎯 Главная страница аутентификации
- System Architecture - Архитектура и компоненты
- Architecture Diagrams - Диаграммы и потоки данных
- Session Management - Управление сессиями и JWT
- OAuth Integration - Социальные провайдеры
- Microservices Guide - 🔍 Интеграция с другими сервисами
- Migration Guide - Обновление с предыдущих версий
🛡️ Безопасность и права доступа
- RBAC System - Система ролей и разрешений
- Security System - Управление паролями и email
- Redis Schema - Схема данных и кеширование
🛠️ Разработка
- Features - Обзор возможностей
- Testing - Тестирование и покрытие
- Security - Безопасность и конфигурация
🔍 Текущие проблемы
Тестирование
- Ошибки в тестах кастомных ролей:
test_custom_roles.py - Проблемы с JWT:
test_token_storage_fix.py - E2E тесты браузера: ✅ Исправлены - добавлен автоматический headless режим для CI/CD
Git статус
- 48 измененных файлов в рабочей директории
- 5 новых файлов (включая тесты и роуты)
- 3 файла готовы к коммиту
🎯 Следующие шаги
- Исправить тесты - Устранить ошибки в тестах кастомных ролей и JWT
- Настроить E2E - Исправить браузерные тесты
- Завершить RBAC - Доработать систему кастомных ролей
- Обновить docs - Синхронизировать документацию
- Подготовить релиз - Зафиксировать изменения
🔗 Полезные команды
# Линтинг и форматирование
biome check . --write
ruff check . --fix --select I
ruff format . --line-length=120
# Тестирование
pytest
# Проверка типов
mypy .
# Запуск в dev режиме
python -m granian main:app --interface asgi
Discours Core - открытый проект под MIT лицензией. Подробнее о вкладе