simpler-auth+no-overlay
Some checks failed
Deploy / deploy (push) Has been skipped
CI / lint (push) Failing after 8s
CI / test (push) Failing after 3m57s

This commit is contained in:
2025-09-01 20:36:15 +03:00
parent a44bf3302b
commit 6c3262edbe
20 changed files with 1516 additions and 686 deletions

View File

@@ -1,3 +1,92 @@
## [0.5.0] - 2025-09-01
### Added
- 🔧 **JWT декодирование** с поддержкой jsonwebtoken crate для работы с сессионными токенами
- 🔧 **Прямая интеграция с Redis** для получения данных пользователя из сессий вместо внешних API
- 🔧 Автоматическое обновление `last_activity` при каждом запросе к /
- 📝 Поддержка переменной окружения JWT_SECRET для конфигурации ключа декодирования
- 📝 Валидация сессий через Redis TTL и проверка expiration в JWT
- 🚀 **HTTP кэширование** с ETag и Cache-Control заголовками для статических файлов
- 🚀 **Оптимизация proxy_handler** - добавлена поддержка 304 Not Modified ответов
- 📊 **Метрики производительности** - timing логирование для всех запросов файлов
### Changed
- 🔄 **Кардинальное изменение архитектуры GET /**: переход от GraphQL API к Redis сессиям
- 🔄 Структура данных Author теперь содержит session-данные: user_id, username, token_type, created_at, last_activity, auth_data, device_info
- 📝 Обновлена документация API с новой структурой ответа на основе Redis сессий
- 🔧 Функция get_user_by_token теперь принимает параметр redis: &mut MultiplexedConnection
### Removed
- 🗑️ **Удалена legacy OpenGraph overlay логика** - теперь обрабатывается пакетом Vercel
- 🗑️ Удален файл `src/overlay.rs` с функциями генерации overlay
- 🗑️ Удален файл `src/core.rs` с GraphQL запросами для shout
- 🗑️ Удален файл шрифта `src/Muller-Regular.woff2`
- 🗑️ Удалены зависимости: `imageproc`, `ab_glyph`
- 🗑️ Удален параметр `s=<shout_id>` из GET запросов файлов
- 🗑️ Упрощена функция serve_file - убран параметр shout_id
### Technical Details
- Redis key pattern: `session:{user_id}:{token}`
- JWT claims structure: `{ user_id, username, exp?, iat? }`
- Session data включает метаданные устройства и авторизации в JSON формате
- Automatic last_activity updates для tracking активности пользователей
- OpenGraph overlay теперь полностью вынесен в отдельный Vercel пакет
### Status
- 🧪 tests: требуется обновление тестов для новой Redis-based архитектуры
- 🚀 deploy: требует настройки JWT_SECRET environment variable
## [0.6.0] - 2025-01-28
### Added
- 👤 **Новый endpoint GET /** для получения информации о текущем пользователе
- 👤 Интеграция с внешним сервисом аутентификации для получения полных данных профиля
- 👤 Автоматическое включение данных квоты в ответ о пользователе (current_quota, max_quota, usage_percentage)
- 📝 Поддержка Bearer token в заголовке Authorization с автоматическим парсингом
- 📝 Детальная обработка ошибок для невалидных/устаревших токенов
### Changed
- 📝 Обновлена документация API с новым endpoint /
- 📝 Добавлена детальная документация структуры пользователя в upload-api-detailed.md
- 🔄 Улучшена архитектура auth.rs с новыми структурами для пользователей
### Status
- 🧪 tests: требуется добавление тестов для нового endpoint
- 🚀 deploy: готово к продакшену, обратная совместимость сохранена
## [0.5.0] - 2025-01-28
### Added
- 🔄 Улучшенная логика загрузки файлов с streaming обработкой и проверкой квот во время чтения
- 📝 Лимит размера одного файла: 500 МБ для предотвращения перегрузки памяти
- 📝 Поддержка множественных файлов в одном запросе с детальными ответами
- 📝 Предварительная проверка квоты перед началом загрузки
- 📝 Улучшенное логирование с процентом использования квоты
### Fixed
- 🧪 Правильный HTTP код ошибки для превышения квоты: 413 Payload Too Large вместо 401 Unauthorized
- 🔄 Эффективное использование памяти: streaming вместо полного чтения файла в память
- 🔄 Пропуск пустых файлов с соответствующими сообщениями об ошибках
- 📝 Улучшенная обработка ошибок Redis без прерывания загрузки
### Changed
- 📝 Обновлена документация API с точными кодами ошибок и лимитами
- 📝 Создан детальный документ API с описанием улучшений (`docs/upload-api-detailed.md`)
- 🔄 Реструктурирована логика валидации токенов с детальными сообщениями об ошибках
### Status
- 🧪 tests: требуется обновление для новой логики множественных файлов
- 🚀 deploy: значительные улучшения производительности и надежности
## [0.4.1] - 2025-08-12
### Fixed
- 🧪 Линтинг: подавлены предупреждения о неиспользуемых полях в `src/core.rs` через `#[allow(dead_code)]` на структурах `ShoutTopic`, `ShoutAuthor`, `Shout` для прохождения `cargo clippy -D warnings` в CI
### Status
- 🧪 tests: все тесты проходят локально (36/36)
- 🚀 deploy: без изменений в логике, безопасно для деплоя
## [0.4.0] - 2025-01-27
### Added