core/docs/README.md

93 lines
4.0 KiB
Markdown
Raw Normal View History

2025-06-02 21:50:39 +00:00
# Документация Discours.io API
2025-06-02 18:50:58 +00:00
2025-06-02 21:50:39 +00:00
## 🚀 Быстрый старт
2025-06-02 18:50:58 +00:00
2025-06-02 21:50:39 +00:00
### Запуск локально
```bash
# Стандартный запуск
python main.py
2025-06-02 18:50:58 +00:00
2025-06-02 21:50:39 +00:00
# С HTTPS (требует mkcert)
2025-06-16 17:20:23 +00:00
python dev.py
2025-05-16 06:23:48 +00:00
```
2025-06-02 21:50:39 +00:00
## 📚 Документация
### Авторизация и безопасность
- [Система авторизации](auth-system.md) - Токены, сессии, OAuth
- [Архитектура](auth-architecture.md) - Диаграммы и схемы
- [Миграция](auth-migration.md) - Переход на новую версию
- [Безопасность](security.md) - Пароли, email, RBAC
- [OAuth](oauth.md) - Google, GitHub, Facebook, X, Telegram, VK, Yandex
2025-06-16 17:20:23 +00:00
- [OAuth настройка](oauth-setup.md) - Инструкции по настройке OAuth провайдеров
2025-06-02 21:50:39 +00:00
### Функциональность
- [Система рейтингов](rating.md) - Лайки, дизлайки, featured статьи
- [Подписки](follower.md) - Follow/unfollow логика
- [Кэширование](caching.md) - Redis, производительность
2025-06-16 17:20:23 +00:00
- [Схема данных Redis](redis-schema.md) - Полная документация структур данных
2025-06-02 21:50:39 +00:00
- [Пагинация комментариев](comments-pagination.md) - Иерархические комментарии
- [Загрузка контента](load_shouts.md) - Оптимизированные запросы
### API и инфраструктура
- [API методы](api.md) - GraphQL эндпоинты
- [Функции системы](features.md) - Полный список возможностей
2025-06-19 08:28:48 +00:00
## ⚡ Ключевые возможности
2025-06-02 21:50:39 +00:00
### Авторизация
- **Модульная архитектура**: SessionTokenManager, VerificationTokenManager, OAuthTokenManager
- **OAuth провайдеры**: 7 поддерживаемых провайдеров с PKCE
- **RBAC**: user/moderator/admin роли
- **Производительность**: 50% ускорение Redis, 30% меньше памяти
### Nginx (упрощенная конфигурация)
- **KISS принцип**: ~60 строк вместо сложной конфигурации
- **Dokku дефолты**: Максимальное использование встроенных настроек
- **SSL/TLS**: TLS 1.2/1.3, HSTS, OCSP stapling
- **Статические файлы**: Кэширование на 1 год, gzip сжатие
- **Безопасность**: X-Frame-Options, X-Content-Type-Options
### Реакции и комментарии
- **Иерархические комментарии** с эффективной пагинацией
- **Физическое/логическое удаление** (рейтинги/комментарии)
- **Автоматический featured статус** на основе лайков
- **Distinct() оптимизация** для JOIN запросов
### Производительность
- **Redis pipeline операции** для пакетных запросов
- **Автоматическая очистка** истекших токенов
- **Connection pooling** и keepalive
- **Type-safe codebase** (mypy clean)
2025-06-26 14:19:42 +00:00
- **Оптимизированная сортировка авторов** с кешированием по параметрам
2025-06-02 21:50:39 +00:00
## 🔧 Конфигурация
2025-06-02 18:50:58 +00:00
```python
2025-06-02 21:50:39 +00:00
# JWT
2025-06-02 18:50:58 +00:00
JWT_SECRET_KEY = "your-secret-key"
JWT_EXPIRATION_HOURS = 720 # 30 дней
# Redis
REDIS_URL = "redis://localhost:6379/0"
2025-06-02 21:50:39 +00:00
# OAuth (необходимые провайдеры)
2025-06-16 17:20:23 +00:00
OAUTH_CLIENTS_GOOGLE_ID = "..."
OAUTH_CLIENTS_GITHUB_ID = "..."
2025-06-02 21:50:39 +00:00
# ... другие провайдеры
2025-05-19 08:25:41 +00:00
```
2025-06-02 21:50:39 +00:00
## 🛠 Использование API
2025-05-19 08:25:41 +00:00
2025-06-02 21:50:39 +00:00
```python
# Сессии
from auth.tokens.sessions import SessionTokenManager
sessions = SessionTokenManager()
token = await sessions.create_session(user_id, username=username)
2025-05-19 08:25:41 +00:00
2025-06-02 21:50:39 +00:00
# Мониторинг
from auth.tokens.monitoring import TokenMonitoring
monitoring = TokenMonitoring()
stats = await monitoring.get_token_statistics()
2025-05-19 08:25:41 +00:00
```