# Релиз 1.2.0

**Дата релиза:** 4 мая 2026  
**Версия:** 1.2.0

## Обзор

Версия 1.2.0 усиливает безопасность и удобство работы с учётными записями: гибче настраиваются пароли и сессии, появляется поддержка восстановления доступа через электронную почту. Административная панель и API дополняются сценариями для профиля пользователя и более глубокой работы с бакетами; на бэкенде работа с хранилищем переработана под будущую мультивендорность — платформа теперь работает с хранилищем через универсальные абстракции, чтобы позволит добавить поддержку других хранилищ в будущем, таких как RustFs или Ceph.

## Новые возможности и улучшения административной панели

- **Новые настройки Политики паролей**: В диалоге c Настройками политики паролей теперь доступны параметры срока действия пароля, запрета повторного использования последних паролей (история) и предупреждения о скором истечении срока действия.
  
- **Системные настройки**: Добавлен диалог для управления Системными настройками. Теперь появилась возможностью задать время жизни access-токена JWT (в минутах) и режим инвалидации токенов. Эти настройки позволяют администратору балансировать между скоростью работы и требования безопасности платформы.

- **Новые настройки Политики входа**: В политику входа добавлен параметр управляющий сроком жизни ссылки для сборса пароля, используемой в сценариях восстановления пароля посредством электронной почты пользователя.

- **Профили пользователей и управление паролями пользователей**: Реализована страница которая позволяет администратору ознакомиться с детальной информацией о любом пользователе. Так же добавлен диалог который позволяет администратору вручную установить любому пользователю новый пароль. Кроме того любой пользователь может сам сменить свой пароль на новый (соответствующий текущей политике паролей).

- **Расширенные сценарии аутентификации**: Добавлена возможность сброса пароля посредством электронной почты для сценариев в которых пользователь забыл свой пароль. Так же пользователю предлагается сменить пароль при входе, в случае если срок действия его пароля истек.

- **Верхнее меню**: Выбор языка, выход и смена пароля теперь доступны через выпадающее меню профиля текущего пользователя.

- **Управление выбранным бакетом**: Теперь для каждого бакета в разделах Бакеты и Мои Бакеты доступна страница с детальной информацией о выбранном бакете и его объектах. Новая страница так же позволяет производить операциями над объектами бакета (включая загрузку, скачивание, удаление и т.п.), что существенно упрощает их администрирование.

## Новые возможности и изменения в API

- **Расширенная политика паролей**: Добавлены требования к сроку действия пароля, истории предыдущих паролей и предупреждению об истечении срока. Политика теперь единообразно применяется как в административном интерфейсе, так и через API.

- **Системные настройки JWT**: Реализованы настройки времени жизни access-токена и режима его инвалидации. Эти параметры позволяют администратору гибко настраивать баланс между безопасностью и удобством использования.

- **Сброс пароля по электронной почте**: Полностью реализован сценарий восстановления пароля через email с одноразовыми токенами ограниченного срока действия.

- **Управление паролями пользователей**: Добавлены методы для смены собственного пароля пользователем и установки пароля администратором с обязательной проверкой актуальной политики.

- **Инфраструктура email-уведомлений**: Добавлен модуль отправки писем через SMTP с поддержкой локализованных шаблонов, используемый для сценариев восстановления доступа.

- **Абстракции над хранилищами**: Работа с хранилищем (MinIO) переработана через универсальные контракты, разделённые на Control Plane и Data Plane. Это закладывает основу для поддержки других хранилищ в будущем (RustFs, Ceph и др.).

- **Улучшенная обработка ошибок**: Введены чёткие и структурированные коды ошибок для сценариев с просроченными паролями, токенами и конфликтами состояний.

## Инфраструктурные и архитектурные изменения

- **Переменные окружения**: Для Core сервиса добавлены параметры SMTP (`SMTP_HOST`, `SMTP_PORT`, `SMTP_FROM_EMAIL` и др.), а также `DASHBOARD_EXTERNAL_BASE_URL` — публичный базовый URL административной панели для ссылок в письмах. В Ansible добавлены примеры значений для `DASHBOARD_EXTERNAL_BASE_URL`.

## Решённые проблемы

- Устранены расхождения в обработке выхода из системы и обновлении сессий в связке с новой моделью инвалидации токенов (в рамках изменений релиза 1.2.0).
