Форсайт
Версия 23.12:005

Версия 25.03:001

Общая информация по релизу

В основном релизе 25.03:001 серверной части продукта «Форсайт. Мобильная платформа» дополнен перечень по подключению корпоративных ИТ-сервисов. Новый функционал позволяет в качестве системы in-mem хранения использовать корпоративный Redis, корпоративный OpenSearch применять как систему журналирования событий и запросов, а Ceph как файловое хранилище.
Обновлены версии базовых образов ряда компонентов, что позволяет установить его на ОС Astra Linux SE 1.7.6 и 1.8.1.
Добавлены новые функции для оптимизации процесса отладки. Расширены возможности системного логирования, теперь для отладки возможных ошибок при работе с источниками данных доступно использование дополнительных логов с новыми параметрами. Включено дополнительное описание ошибок для запросов пользователей LDAP.
Реализован функционал для обработки пустых значений входящих параметров источника данных SAP и персонализации логики работы сервера с пустыми значениями.
Расширены возможности работы с ресурсами источника данных WEB, теперь данные ресурса могут быть получены при кросс-доменном взаимодействии.
Переход в подсистему документации API сервера «Форсайт. Мобильная платформа» в новой версии возможен без доступа к сети Интернет.
Для мобильной части «Форсайт. Мобильная платформа», фреймворка 25.03:001 для операционной системы Android, добавлена функциональность по сбору подробной статистической информации о работе методов.
Также в новом релизе фреймворка оптимизирована работа с JWT-токенами мобильных пользователей в режиме офлайн. Расширены возможности работы с файлами и внедрены доработки с вектором направленности на безопасность в функционировании методов. Обновлена и актуализирована документация по работе с мобильным фреймворком.
Помимо описанной функциональности, в релиз серверной и мобильной части 25.03:001 включена функциональность из предыдущих версий.

Серверная часть и администрирование

Детализированное логирование

Доступна новая функциональность, позволяющая включать расширенное логирование запросов к источникам данных, что может быть полезно для процесса отладки в цепочке интеграции при получении пользователем API некорректных или неполных данных. При включённой функциональности в подразделе «Системные логи» отображаются записи в исходном формате, как сформировал отправитель. Записи формируются для выбранных объектов логирования (источники, ресурсы, пользователи API). Функциональность отображает первоначальную структуру запроса относительно всех точек его обработки.

Расширенно логируются следующие запросы пользователя API:

  • /api/v1/rpc/{resource_title}/
  • /api/v1/web/{resource_title}/.*
  • /api/v2/web/{resource_title}/.*
  • /api/v1/json/{resource_title}/

Для каждого запроса ресурса отображается ряд первичных состояний структур данных в пограничных для сервера мобильной платформы точках с характеристиками запроса:

  • Полученного платформой от пользователя API;
  • Отправленного платформой на источник данных или в базу данных cache/redis;
  • Полученного платформой от источника данных или от базы данных cache/redis;
  • Отправленного платформой пользователю API.

В детализированных логах отображаются следующие новые параметры:

  • Дата и время, когда мобильная платформа получила запрос от пользователя API;
  • Дата и время, когда запрос был отправлен платформой в источник данных;
  • Дата и время, когда мобильной платформой был получен ответ от источника;
  • Дата и время, когда запрос был отправлен в базу данных (для кешируемых ресурсов);
  • Дата и время, когда ответ был получен от базы данных (для кешируемых ресурсов);
  • Дата и время, когда мобильная платформа отправила ответ пользователю API;
  • Точка обработки запроса;
  • Входящие параметры (Query, Path);
  • Тело запроса и ответа;
  • Заголовки запроса и ответа.

Для упрощения отладки в логах отображаются команды для воспроизведения запроса к источнику/базам данных: psql, curl, sqlplus, sqlcmd, python-скрипт.

Обработка пустых значений для интеграции с SAP NW

В новой версии обновлена библиотека интеграции с SAP. В библиотеку внедрены строгие правила по обработке типов данных. Для сохранения рабочего состояния, ранее введённых в эксплуатацию мобильных приложений, где для обозначения пустого значения применяется («», «null» или null), возвращён функционал для проверки входящих параметров SAP на пустое значение («», «null» или null). Если значение входящего параметра обозначено как пустое, то сервер мобильной платформы не отправит параметр в SAP. Данное решение позволяет сохранить логику обработки пустых значений. Для разных типов данных определены значения, которые сервер мобильной платформы будет определять как пустые. Для различных типов данных эти значения отличаются.

Ниже приведен перечень типов данных входящих параметров источника SAP и значения, которые сервером мобильной платформы будут интерпретироваться как пустые или не пустые:

  • для типов данных NUMC, CURR, QUAN, DEC, INT4, DATS, UNIT, CUKY, FLTP, INT2, TIMS, INT1 значения null, «null», «» считаются пустыми;
  • для типов данных RAWSTRING, RAW значение null считается пустым, «null», «» — не пустым;
  • для типов данных CHAR, STRING значения null, «» считаются пустым, «null» — не пустым.

Блокировка пользователя API на основе параметра в LDAP

Для пользователей API с типом аутентификации «Сервер LDAP» реализована синхронизация статуса блокировки. Теперь при добавлении пользователя LDAP, его аутентификации и общей синхронизации с LDAP сервер мобильной платформы будет проверять статус блокировки пользователя на стороне LDAP и устанавливать соответствующий статус на стороне мобильной платформы.

В случае ошибки аутентификации по причине блокировки пользователя сервер мобильной платформы будет возвращать в теле ответа определенный код и описание ошибки, идентифицирующие причину ошибки и инициатора блокировки.

Подсистема документации API

В поставку сервера мобильной платформы включён инструмент автоматического документирования API. Начиная с версии 25.03:001 его использование возможно без доступа к сети Интернет. Использование подсистемы документации оптимально для просмотра доступных API-методов пользователей и администраторов, изучения обязательных входящих параметров и исходящей структуры, для проверки вызова методов. Для открытия документации API нажмите на подраздел «Документация API» в разделе «Системные логи и инструменты аналитики» в консоли администратора.

Возврат текста ошибок от LDAP и/или Kerberos

Когда пользователь API отправляет запрос аутентификации или запрос данных ресурса, сервер мобильной платформы может обращаться в LDAP и Kerberos с целью аутентификации и авторизации запроса. На стороне LDAP и Kerberos обработка запроса может завершиться ошибкой, например, по причине истечения времени актуальности пароля пользователя. С версии 25.03:001 сервер мобильной платформы отображает текст полученной ошибки от LDAP и Kerberos в теле ответа на запрос пользователя. Функциональность возврата текста ошибки будет полезна при разборе исключений в процессе аутентификации с типом LDAP.

Обработка Preflight-запросов

При разработке веб-приложений с использованием мобильной платформы может возникнуть потребность в кросс-доменном взаимодействии. В ряде случаев перед основным кросс-доменным запросом браузер автоматически отправляет Preflight-запрос методом OPTIONS для определения разрешений на использование определенных методов, заголовков и т.д. В новой версии для методов api/v1/web/ и api/v2/web/ включена обработка Preflight-запросов.

Установка сервера

Использование корпоративных ИТ-сервисов

В новой версии возможно опциональное использование внешних сервисов. Теперь в качестве внешних сервисов можно подключить Redis, Elasticsearch и другие. Для системы логирования событий опционально можно определить внешний OpenSearch или Elasticsearch вместо внутреннего Elasticsearch. В качестве хранилища файлов появилась возможность указать внешний Ceph или MinIO вместо внутреннего MinIO. Для системы in-mem хранения вместо внутреннего Redis возможно использовать внешний Redis. Теперь, если требуется более надёжно хранить данные, то можно использовать внешние ИТ-сервисы. ИТ-сервисы можно подключить, выполнив шаги из инструкции по установке. Версия мобильной платформы 25.03:001 поддерживает работу с определенными версиями внешних сервисов. Инструкции к установке мобильной платформы и подключению внешних сервисов учитывают их версионность. Ниже перечислены поддерживаемые версии внешних сервисов:

  • Redis версии 7.4.х;
  • OpenSearch версии 1.0.x;
  • Elasticsearch версии 8.16.x;
  • Ceph версии 17.2.x;
  • MinIO версии 2024.11.x;
  • PostgreSQL версии 15.4.

Внешние ИТ-сервисы можно определить только на этапе установки продукта. Определить внешние ИТ-сервисы на уже установленной мобильной платформе невозможно.

Совместимость с Astra Linux SE 1.7.6 и 1.8.1

Обновлены версии базовых образов компонентов системы логирования, системы работы с файлами, системы для in-mem хранения данных. Обновление базовых образов позволяет использовать новую версию сервера мобильной платформы с операционной системой Astra Linux SE версии 1.7.6 и 1.8.1.

Мобильные фреймворки

Сбор статистических данных о работе методов фреймворка

В новой версии мобильного фреймворка добавлена возможность активировать сбор подробной информации о работе методов. Теперь при выборе в консоли администратора уровня логирования «INFO» фреймворк будет записывать в файл статистические данные. С помощью новой функциональности можно отследить время запуска и окончания работы метода на мобильном устройстве, параметры вызываемого метода, объём отправленных данных с устройства на сервер мобильной платформы и другую полезную информацию.

Контроль срока жизни JWT-токена в офлайн режиме

При истечении времени жизни JWT-токена в офлайн режиме метод FMPUser.auth() возвращает известное исключение UnathorizedException. Добавлен метод FMPUser.getTokenExpiration(), позволяющий получить время окончания срока актуальности Refresh-токена. Определение времени окончания Refresh-токена необходимо для строгой организации процесса аутентификации мобильного пользователя в режиме работы офлайн.

Работа с ресурсами в разных потоках

Оптимизирован процесс загрузки данных ресурса. Теперь класс FMPQuery более эффективно загружает ресурсы в разных потоках.

Обработка ошибок сертификата серверной части

Добавлено новое исключение CertException для обработки ошибок сертификата сервера и SSL Pinning.

Оптимизация метода для работы с базой данных

Метод FMPDatabase.attach() теперь принимает список вместо vararg. Старый метод объявлен устаревшим.

Идентификация блокировки пользователя

Добавлено новое исключение UserDisabledException, сигнализирующее о заблокированном пользователе.

Улучшение процесса взаимодействия с документацией

Для всех методов в документации Dokka добавлены ссылки переходы, упрощающие навигацию по документации. Обновлены и актуализированы примеры использования методов.

Повышение безопасности в работе методов

Теперь при возможности используется метод SecureRandom(). Также добавлен метод FMP.Builder.strictSecurityRequirements(), который приведёт к аварийной остановке приложения, если физическое устройство не поддерживает безопасный SecureRandom().

Расширение возможностей работы с файловыми хранилищами

Класс FMPFile теперь поддерживает работу с InputStream и OutputStream. Для этого потребуется передать их в Builder при инициализации файла вместо указания пути на файловой системе.