Files
core/docs
Untone 05c188df62
Some checks failed
Deploy on push / deploy (push) Failing after 39s
[0.9.29] - 2025-09-26
### 🚨 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
2025-09-26 21:03:45 +03:00
..
2025-09-26 21:03:45 +03:00
2025-08-12 13:14:49 +03:00
2025-08-31 20:01:40 +03:00
2025-08-31 19:20:43 +03:00
2025-07-31 18:55:59 +03:00
2025-08-01 10:41:10 +03:00
2025-09-26 21:03:45 +03:00
2025-09-24 09:33:02 +03:00
2025-09-26 21:03:45 +03:00
2025-09-22 00:56:36 +03:00
2025-07-02 22:30:21 +03:00
2025-09-22 00:56:36 +03:00
2025-09-22 00:56:36 +03:00
2025-09-01 15:09:36 +03:00
2025-09-22 00:56:36 +03:00
2025-09-01 16:10:10 +03:00

Документация 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 режимом

📖 Документация

🔧 Основные компоненты

🔐 Система аутентификации

🛡️ Безопасность и права доступа

  • 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 файла готовы к коммиту

🎯 Следующие шаги

  1. Исправить тесты - Устранить ошибки в тестах кастомных ролей и JWT
  2. Настроить E2E - Исправить браузерные тесты
  3. Завершить RBAC - Доработать систему кастомных ролей
  4. Обновить docs - Синхронизировать документацию
  5. Подготовить релиз - Зафиксировать изменения

🔗 Полезные команды

# Линтинг и форматирование
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 лицензией. Подробнее о вкладе