0f6cc61286
mypyfix
Deploy on push / deploy (push) Failing after 36s
2025-09-27 12:31:53 +03:00
05c188df62
[0.9.29] - 2025-09-26
...
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
2025-09-26 21:03:45 +03:00
34738ae611
[0.9.25] - 2025-01-25
...
Deploy on push / deploy (push) Failing after 24s
### Added
- 🔍 **OAuth Detailed Logging**: Добавлено пошаговое логирование OAuth callback для диагностики ошибок `auth_failed`
- 🧪 **OAuth Diagnostic Tools**: Создан `oauth_debug.py` для анализа OAuth callback параметров и диагностики проблем
- 📊 **OAuth Test Helper**: Добавлен `oauth_test_helper.py` для создания тестовых состояний OAuth в Redis
- 🔧 **OAuth Provider Detection**: Автоматическое определение OAuth провайдера по формату authorization code
### Fixed
- 🚨 **OAuth Callback Error Handling**: Улучшена обработка исключений в OAuth callback с детальным логированием каждого шага
- 🔍 **OAuth Exception Tracking**: Добавлено логирование исключений на каждом этапе: token exchange, profile fetch, user creation, session creation
- 📋 **OAuth Error Diagnosis**: Реализована система диагностики для выявления точной причины `error=auth_failed` редиректов
### Changed
- 🔧 **OAuth Callback Flow**: Разделен OAuth callback на логические шаги с индивидуальным error handling
- 📝 **OAuth Error Messages**: Улучшены сообщения об ошибках для более точной диагностики проблем
2025-09-25 08:48:36 +03:00
2ce8a5b957
🔧 Add detailed OAuth callback logging for debugging auth_failed errors
Deploy on push / deploy (push) Successful in 54m37s
2025-09-25 07:54:00 +03:00
5d0ad2a2e3
oauth-fix3
Deploy on push / deploy (push) Successful in 7m8s
2025-09-24 23:11:01 +03:00
77513080c7
oauth-fix2
Deploy on push / deploy (push) Successful in 7m3s
2025-09-24 19:39:50 +03:00
c9b6c77658
oauth-fix2
Deploy on push / deploy (push) Successful in 6m59s
2025-09-24 19:30:06 +03:00
12023d9eda
oauth-fix
Deploy on push / deploy (push) Successful in 7m5s
2025-09-24 13:35:49 +03:00
26f28aa35e
[0.9.23] - 2025-09-23
...
Deploy on push / deploy (push) Successful in 7m2s
### Fixed
- 🔧 **OAuth Callback URL**: Исправлено формирование callback URL - добавлен отсутствующий слеш между доменом и путем
- 🔒 **OAuth HTTPS**: Принудительное использование HTTPS для callback URL в продакшне (исправляет ошибку "redirect_uri is not associated")
### Changed
- 🔄 **OAuth Routes**: Возвращены к стандартному формату `/oauth/{provider}` - провайдеры не передают параметр provider в callback
2025-09-24 09:33:02 +03:00
d19e753e96
oauth-redirect-fix
Deploy on push / deploy (push) Successful in 8m38s
2025-09-24 08:18:44 +03:00
8104454d68
slash-oauth-fix
Deploy on push / deploy (push) Successful in 7m6s
2025-09-23 22:07:06 +03:00
9d4e24732e
oauth-instruct
Deploy on push / deploy (push) Successful in 7m13s
2025-09-23 21:34:48 +03:00
c1a7902937
nopkce
Deploy on push / deploy (push) Successful in 6m59s
2025-09-23 21:22:47 +03:00
bf9515dd39
oauth+tests
Deploy on push / deploy (push) Successful in 6m56s
2025-09-23 20:49:25 +03:00
e0f3272bed
session-mdlwr-oauth-fix
Deploy on push / deploy (push) Successful in 7m9s
2025-09-23 18:54:56 +03:00
71b47bfe59
- 🔧 **OAuth Provider Registration**: Исправлена логика регистрации OAuth провайдеров - теперь корректно проверяются непустые client_id и client_secret
...
Deploy on push / deploy (push) Successful in 8m32s
- 🔍 **OAuth Debugging**: Добавлено отладочное логирование для диагностики проблем с OAuth провайдерами
- 🚫 **OAuth Error**: Исправлена ошибка "Provider not configured" при пустых переменных окружения OAuth
2025-09-23 18:31:56 +03:00
408749f34d
- 🚨 **Critical Fix**: Исправлена критическая ошибка OAuth маршрутизации - использование HTTP handlers вместо GraphQL функций
...
Deploy on push / deploy (push) Successful in 10m8s
- 🔒 **OAuth X/Twitter**: Добавлены обязательные scope `tweet.read users.read`
- 🔒 **OAuth Yandex**: Добавлены scope `login:email login:info login:avatar`
- 🔒 **OAuth Telegram**: Добавлен недостающий access_token_url и scope
- 📚 **OAuth Documentation**: Обновлена документация для всех провайдеров с актуальными настройками и требованиями
2025-09-23 17:14:47 +03:00
d87c0c522c
[0.9.22] - 2025-09-22
...
Deploy on push / deploy (push) Successful in 9m43s
### Fixed
- 🔒 **OAuth Facebook**: Обновлена версия API с v13.0 до v18.0 (актуальная)
- 🔒 **OAuth Facebook**: Добавлены обязательные scope и параметры безопасности
- 🔒 **OAuth Facebook**: Улучшена обработка ошибок API и валидация ответов
- 🔒 **OAuth VK**: Обновлена версия API с v5.131 до v5.199+ (актуальная)
- 🔒 **OAuth VK**: Исправлен endpoint с `authors.get` на `users.get`
- 🔒 **OAuth GitHub**: Добавлены обязательные scope `read:user user:email`
- 🔒 **OAuth GitHub**: Улучшена обработка ошибок и получения email адресов
- 🔒 **OAuth Google**: Добавлены обязательные scope для OpenID Connect
- 🔒 **OAuth X/Twitter**: Исправлен endpoint с `authors/me` на `users/me`
- 🔒 **Session Cookies**: Автоматическое определение HTTPS через переменную окружения HTTPS_ENABLED
- 🏷️ **Type Safety**: Исправлена ошибка в OAuth регистрации провайдеров
2025-09-22 23:56:04 +03:00
1b48675b92
[0.9.7] - 2025-08-18
...
Deploy on push / deploy (push) Failing after 2m22s
### 🔄 Изменения
- **SQLAlchemy KeyError** - исправление ошибки `KeyError: Reaction` при инициализации
- **Исправлена ошибка SQLAlchemy**: Устранена проблема `InvalidRequestError: When initializing mapper Mapper[Shout(shout)], expression Reaction failed to locate a name (Reaction)`
### 🧪 Тестирование
- **Исправление тестов** - адаптация к новой структуре моделей
- **RBAC инициализация** - добавление `rbac.initialize_rbac()` в `conftest.py`
- **Создан тест для getSession**: Добавлен комплексный тест `test_getSession_cookies.py` с проверкой всех сценариев
- **Покрытие edge cases**: Тесты проверяют работу с валидными/невалидными токенами, отсутствующими пользователями
- **Мокирование зависимостей**: Использование unittest.mock для изоляции тестируемого кода
### 🔧 Рефакторинг
- **Упрощена архитектура**: Убраны сложные конструкции с отложенными импортами, заменены на чистую архитектуру
- **Перемещение моделей** - `Author` и связанные модели перенесены в `orm/author.py`: Вынесены базовые модели пользователей (`Author`, `AuthorFollower`, `AuthorBookmark`, `AuthorRating`) из `orm.author` в отдельный модуль
- **Устранены циклические импорты**: Разорван цикл между `auth.core` → `orm.community` → `orm.author` через реструктуризацию архитектуры
- **Создан модуль `utils/password.py`**: Класс `Password` вынесен в utils для избежания циклических зависимостей
- **Оптимизированы импорты моделей**: Убран прямой импорт `Shout` из `orm/community.py`, заменен на строковые ссылки
### 🔧 Авторизация с cookies
- **getSession теперь работает с cookies**: Мутация `getSession` теперь может получать токен из httpOnly cookies даже без заголовка Authorization
- **Убрано требование авторизации**: `getSession` больше не требует декоратор `@login_required`, работает автономно
- **Поддержка dual-авторизации**: Токен может быть получен как из заголовка Authorization, так и из cookie `session_token`
- **Автоматическая установка cookies**: Middleware автоматически устанавливает httpOnly cookies при успешном `getSession`
- **Обновлена GraphQL схема**: `SessionInfo` теперь содержит поля `success`, `error` и опциональные `token`, `author`
- **Единообразная обработка токенов**: Все модули теперь используют централизованные функции для работы с токенами
- **Улучшена обработка ошибок**: Добавлена детальная валидация токенов и пользователей в `getSession`
- **Логирование операций**: Добавлены подробные логи для отслеживания процесса авторизации
### 📝 Документация
- **Обновлена схема GraphQL**: `SessionInfo` тип теперь соответствует новому формату ответа
- Обновлена документация RBAC
- Обновлена документация авторизации с cookies
2025-08-18 14:25:25 +03:00
9a2b792f08
refactored
Deploy on push / deploy (push) Failing after 6s
2025-08-17 17:56:31 +03:00
e78e12eeee
circular-fix
Deploy on push / deploy (push) Failing after 17s
2025-08-17 16:33:54 +03:00
e7230ba63c
tests-passed
2025-07-31 18:55:59 +03:00
b60a314ddd
tested-auth-refactoring
Deploy on push / deploy (push) Failing after 5s
2025-07-25 01:04:15 +03:00
441cca8045
0.7.5-topicfix
2025-07-03 00:20:10 +03:00
82111ed0f6
Squashed new RBAC
Deploy on push / deploy (push) Successful in 7s
2025-07-02 22:30:21 +03:00
ab65fd4fd8
schema-fix
Deploy on push / deploy (push) Successful in 6s
2025-06-30 22:43:32 +03:00
952b294345
0.5.8-panel-upgrade-community-crud-fix
Deploy on push / deploy (push) Successful in 6s
2025-06-30 21:25:26 +03:00
cbecf13053
auth-improves
Deploy on push / deploy (push) Successful in 6s
2025-06-28 14:04:23 +03:00
52bf78320b
middlware-fix
Deploy on push / deploy (push) Successful in 5s
2025-06-28 13:56:05 +03:00
21d28a0d8b
token-storage-refactored
Deploy on push / type-check (push) Failing after 8s
Deploy on push / deploy (push) Has been skipped
2025-06-02 21:50:58 +03:00
3327976586
Improve topic sorting: add popular sorting by publications and authors count
2025-06-02 02:56:11 +03:00
90260534eb
sigil-on
Deploy on push / deploy (push) Successful in 6s
2025-05-30 14:08:29 +03:00
f160ab4d26
middleware-fix+oauth-routes
Deploy on push / deploy (push) Successful in 6s
2025-05-30 14:05:50 +03:00
4070f4fcde
linted+fmt
Deploy on push / deploy (push) Successful in 6s
2025-05-29 12:37:39 +03:00
2d382be794
upgrade schema, resolvers, panel added
2025-05-16 09:23:48 +03:00
Igor Lobanov
34e18317a2
google oauth fix
2023-11-08 19:24:38 +01:00
Igor Lobanov
a2b47dab66
google oauth fix
2023-11-08 19:19:20 +01:00
Ilya Y
0e9f0b0682
Feature/google oauth ( #106 )
...
google oauth
---------
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com >
2023-11-08 21:12:55 +03:00
Igor Lobanov
441bcc1e90
configured isort, black, flake8
2023-10-30 22:00:55 +01:00
Kosta
b142949805
Revert "Feature/lint"
2023-10-27 00:07:35 +03:00
Igor Lobanov
c2cc428abe
lint
2023-10-26 22:38:31 +02:00
Igor Lobanov
2c524279f6
lint wip
2023-10-26 19:56:42 +02:00
839485873a
frontend url setting
2022-11-26 02:49:02 +03:00
ec7f82c72f
authorsall-fix
2022-11-16 19:39:54 +03:00
99a1d5a867
fix-confirm
2022-10-05 19:52:17 +03:00
3136eecd7e
migration, auth, refactoring, formatting
2022-09-17 21:12:14 +03:00
a89a44f660
format and lint orm
2022-09-03 13:50:14 +03:00
8aec6c6e07
refactored
2022-08-11 08:53:14 +03:00
knst-kotov
6f2973c1b1
set cookie on oauth
2022-06-02 10:39:44 +03:00
6addc38342
oauth callback url fix
2022-02-03 05:46:09 +03:00