Commit Graph

214 Commits

Author SHA1 Message Date
12023d9eda oauth-fix
All checks were successful
Deploy on push / deploy (push) Successful in 7m5s
2025-09-24 13:35:49 +03:00
408749f34d - 🚨 **Critical Fix**: Исправлена критическая ошибка OAuth маршрутизации - использование HTTP handlers вместо GraphQL функций
All checks were successful
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
4dccb84b18 [0.9.21] - 2025-09-21
All checks were successful
Deploy on push / deploy (push) Successful in 4m0s
### 🔧 Redis Connection Pool Fix
- **🐛 Fixed "max number of clients reached" error**: Исправлена критическая ошибка превышения лимита соединений Redis
  - Добавлен `aioredis.ConnectionPool` с ограничением `max_connections=20` для 5 микросервисов
  - Реализовано переиспользование соединений вместо создания новых для каждого запроса
  - Добавлено правильное закрытие connection pool при shutdown приложения
  - Улучшена обработка ошибок соединения с автоматическим переподключением
- **📊 Health Monitoring**: Добавлен `/health` endpoint для мониторинга состояния Redis
  - Отображает количество активных соединений, использование памяти, версию Redis
  - Помогает диагностировать проблемы с соединениями в production
- **🔄 Connection Management**: Оптимизировано управление соединениями
  - Один connection pool для всех операций Redis
  - Автоматическое переподключение при потере соединения
  - Корректное закрытие всех соединений при остановке приложения

### 🧪 TypeScript Warnings Fix
- **🏷️ Type Annotations**: Добавлены явные типы для устранения implicit `any` ошибок
  - Исправлены типы в `RolesModal.tsx` для параметров `roleName` и `r`
  - Устранены все TypeScript warnings в admin panel

### 🚀 CI/CD Improvements
- ** Mypy Optimization**: Исправлена проблема OOM (exit status 137) в CI
  - Оптимизирован `mypy.ini` с исключением тяжелых зависимостей
  - Добавлен `dmypy` с fallback на обычный `mypy`
  - Ограничена область проверки типов только критичными модулями
  - Добавлена проверка доступной памяти перед запуском mypy
- **🐳 Docker Build**: Исправлены проблемы с PyTorch зависимостями
  - Увеличен `UV_HTTP_TIMEOUT=300` для загрузки больших пакетов
  - Установлен `TORCH_CUDA_AVAILABLE=0` для предотвращения CUDA зависимостей
  - Упрощены зависимости PyTorch в `pyproject.toml` для совместимости с Python 3.13
2025-09-21 14:23:53 +03:00
b70901f8f7 ## [0.9.19] - 2025-09-01
Some checks failed
Deploy on push / deploy (push) Failing after 5m57s
### 🚀 ML Models Runtime Preloading
- **🔧 models loading**: Перенесена предзагрузка ML моделей из Docker build в runtime startup
  - Убрана предзагрузка из `Dockerfile` - модели теперь загружаются после монтирования `/dump` папки
  - Добавлена async функция `preload_models()` в `services/search.py` для фоновой загрузки
  - Интеграция предзагрузки в `lifespan` функцию `main.py`
  - Использование `asyncio.run_in_executor()` для неблокирующей загрузки моделей
  - Исправлена проблема с недоступностью `/dump` папки во время сборки Docker образа
2025-09-01 16:38:23 +03:00
98f625ec0d index-metric
All checks were successful
Deploy on push / deploy (push) Successful in 5m45s
2025-08-30 21:20:01 +03:00
906c9bbdf4 search-index-metric 2025-08-30 21:18:48 +03:00
2dad23f86c search-index-fixed
All checks were successful
Deploy on push / deploy (push) Successful in 5m49s
2025-08-30 18:53:38 +03:00
d677d6547c debug-improved
Some checks failed
Deploy on push / deploy (push) Failing after 3m44s
2025-08-28 20:19:30 +03:00
4f63da037d alembic-removed 2025-08-28 19:42:03 +03:00
d38c1485e4 shout-create-fix
Some checks failed
Deploy on push / deploy (push) Failing after 3m5s
2025-08-23 10:58:09 +03:00
b4f683a7cc fmt
Some checks failed
Deploy on push / deploy (push) Failing after 36s
2025-08-23 10:47:52 +03:00
d33e53933f migrate-on-deploy
Some checks failed
Deploy on push / deploy (push) Failing after 7s
2025-08-23 10:25:15 +03:00
1b48675b92 [0.9.7] - 2025-08-18
Some checks failed
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
Some checks failed
Deploy on push / deploy (push) Failing after 6s
2025-08-17 17:56:31 +03:00
e78e12eeee circular-fix
Some checks failed
Deploy on push / deploy (push) Failing after 17s
2025-08-17 16:33:54 +03:00
8c363a6615 e2e-fixing
fix: убран health endpoint, E2E тест использует корневой маршрут

- Убран health endpoint из main.py (не нужен)
- E2E тест теперь проверяет корневой маршрут / вместо /health
- Корневой маршрут доступен без логина, что подходит для проверки состояния сервера
- E2E тест с браузером работает корректно

docs: обновлен отчет о прогрессе E2E теста

- Убраны упоминания health endpoint
- Указано что используется корневой маршрут для проверки серверов
- Обновлен список измененных файлов

fix: исправлены GraphQL проблемы и E2E тест с браузером

- Добавлено поле success в тип CommonResult для совместимости с фронтендом
- Обновлены резолверы community, collection, topic для возврата поля success
- Исправлен E2E тест для работы с корневым маршрутом вместо health endpoint
- E2E тест теперь запускает браузер, авторизуется, находит сообщество в таблице
- Все GraphQL проблемы с полем success решены
- E2E тест работает правильно с браузером как требовалось

fix: исправлен поиск UI элементов в E2E тесте

- Добавлен правильный поиск кнопки удаления по CSS классу _delete-button_1qlfg_300
- Добавлены альтернативные способы поиска кнопки удаления (title, aria-label, символ ×)
- Добавлен правильный поиск модального окна с множественными селекторами
- Добавлен правильный поиск кнопки подтверждения в модальном окне
- E2E тест теперь полностью работает: находит кнопку удаления, модальное окно и кнопку подтверждения
- Обновлен отчет о прогрессе с полными результатами тестирования

fix: исправлен импорт require_any_permission в resolvers/collection.py

- Заменен импорт require_any_permission с auth.decorators на services.rbac
- Бэкенд сервер теперь запускается корректно
- E2E тест полностью работает: находит кнопку удаления, модальное окно и кнопку подтверждения
- Оба сервера (бэкенд и фронтенд) работают стабильно

fix: исправлен порядок импортов в resolvers/collection.py

- Перемещен импорт require_any_permission в правильное место
- E2E тест полностью работает: находит кнопку удаления, модальное окно и кнопку подтверждения
- Сообщество не удаляется из-за прав доступа - это нормальное поведение системы безопасности

feat: настроен HTTPS для локальной разработки с mkcert
2025-08-01 04:51:06 +03:00
e7230ba63c tests-passed 2025-07-31 18:55:59 +03:00
5855412065 graphqlerror-fix
Some checks failed
Deploy on push / deploy (push) Failing after 4s
2025-07-25 10:13:26 +03:00
fb6ef4272d failed-auth-lesslog
Some checks failed
Deploy on push / deploy (push) Failing after 5s
2025-07-25 10:10:36 +03:00
5d766b7601 asynccontextmanagerf-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-07-07 22:53:01 +03:00
82111ed0f6 Squashed new RBAC
All checks were successful
Deploy on push / deploy (push) Successful in 7s
2025-07-02 22:30:21 +03:00
1e2c85e56a 0.5.9-collections-crud+spa-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-30 21:46:53 +03:00
52bf78320b middlware-fix
All checks were successful
Deploy on push / deploy (push) Successful in 5s
2025-06-28 13:56:05 +03:00
7c11c9875f allow-all 2025-06-27 15:42:16 +03:00
b1775f4814 allow-vercel2 2025-06-27 15:34:51 +03:00
0c4a2bcf6d allow-vercel
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-27 15:27:28 +03:00
f4d7cd8f67 merged-dev
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-26 17:31:41 +03:00
8a5f4a2421 maintainance 2025-06-16 20:20:23 +03:00
7fc9908857 nginx-revert-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-03 01:53:19 +03:00
a3e4d6a49a cors-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-03 01:48:23 +03:00
852cb6d653 postmerge3
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-03 01:25:24 +03:00
36ea07b8fc postmerge2
All checks were successful
Deploy on push / deploy (push) Successful in 7s
2025-06-03 01:24:49 +03:00
9f16ee022b cors-applevel-fix
Some checks failed
Deploy on push / deploy (push) Failing after 40s
2025-06-02 23:59:09 +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
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-30 14:08:29 +03:00
f160ab4d26 middleware-fix+oauth-routes
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-30 14:05:50 +03:00
6e5545b190 nonginx-cors
All checks were successful
Deploy on push / deploy (push) Successful in 5s
2025-05-29 18:26:10 +03:00
4070f4fcde linted+fmt
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-29 12:37:39 +03:00
ab39b534fe auth fixes, search connected 2025-05-22 04:34:30 +03:00
91258721c6 Merge branch 'staging' of https://dev.dscrs.site/discours.io/core into feature/auth-internal 2025-05-21 23:00:03 +03:00
d3a760b6ba auth-wip 2025-05-21 01:34:02 +03:00
Stepan Vladovskiy
82870a4e47 debug: prechase wrapped for time out
All checks were successful
Deploy on push / deploy (push) Successful in 1m15s
2025-05-20 11:26:30 -03:00
Stepan Vladovskiy
1ada0a02f9 debug: with timeout for prechashing 2025-05-20 11:19:58 -03:00
Stepan Vladovskiy
44aef147b5 debug: moved precache to background to avoid stucking ...
All checks were successful
Deploy on push / deploy (push) Successful in 45s
2025-05-20 11:03:02 -03:00
1d64811880 userlist-demo-ready
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-20 00:00:24 +03:00
dc5ad46df9 wip 2025-05-19 11:25:41 +03:00
11e46f7352 adminpanel login fix 2025-05-16 10:30:02 +03:00
2d382be794 upgrade schema, resolvers, panel added 2025-05-16 09:23:48 +03:00
Stepan Vladovskiy
6e284640c0 feat: give little timeout for resource stab
All checks were successful
Deploy on push / deploy (push) Successful in 51s
2025-03-24 21:42:51 -03:00
Stepan Vladovskiy
385057ffcd debug: with logs in indexing procedure
All checks were successful
Deploy on push / deploy (push) Successful in 54s
2025-03-21 13:45:50 -03:00