core/docs
Untone aeb53a7354
Some checks failed
Deploy on push / type-check (push) Failing after 7s
Deploy on push / deploy (push) Has been skipped
nginx-simpler
2025-06-03 00:50:39 +03:00
..
api.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
auth-architecture.md token-storage-refactored 2025-06-02 21:50:58 +03:00
auth-migration.md token-storage-refactored 2025-06-02 21:50:58 +03:00
auth-system.md token-storage-refactored 2025-06-02 21:50:58 +03:00
auth.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
caching.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
comments-pagination.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
features.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
follower.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
load_shouts.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
oauth-deployment.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
oauth-implementation.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
oauth-setup.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
oauth.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
rating.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
README.md nginx-simpler 2025-06-03 00:50:39 +03:00
security.md Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00

Документация Discours.io API

🚀 Быстрый старт

Запуск локально

# Стандартный запуск
python main.py

# С HTTPS (требует mkcert)
python run.py --https --workers 4

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

Авторизация и безопасность

Функциональность

API и инфраструктура

Ключевые возможности (v0.5.4)

Авторизация

  • Модульная архитектура: 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)

🔧 Конфигурация

# JWT
JWT_SECRET_KEY = "your-secret-key"
JWT_EXPIRATION_HOURS = 720  # 30 дней

# Redis
REDIS_URL = "redis://localhost:6379/0"

# OAuth (необходимые провайдеры)
GOOGLE_CLIENT_ID = "..."
GITHUB_CLIENT_ID = "..."
# ... другие провайдеры

🛠 Использование API

# Сессии
from auth.tokens.sessions import SessionTokenManager
sessions = SessionTokenManager()
token = await sessions.create_session(user_id, username=username)

# Мониторинг
from auth.tokens.monitoring import TokenMonitoring
monitoring = TokenMonitoring()
stats = await monitoring.get_token_statistics()