Общие вопросы о сервисах¶
Вопрос: Зачем для документного сервиса определяются переменные, связанные с файлом?
Ответ: Документный сервис хранит метаданные документа, в то время как контент (файл) хранится в файловом сервисе. Для синхронизации данных между этими двумя сервисами используется обмен сообщениями через Apache Kafka, а также обращение через API (например, при выполнении клонирования документа).
При установке Системы задаются переменные окружения, в том числе топики событий, на которые подписываются сервисы.
Вопрос: Возможно ли запускать сервисы Платформы не последовательно, а группами по несколько штук?
Ответ: Да, такая возможность существует. Запуск сервисов группами может быть даже более эффективным с точки зрения потребления ресурсов. Однако необходимо учитывать потенциальные зависимости между сервисами, которые могут требовать соблюдения определенного порядка инициализации.
В поставке Docker и Helm предусмотрен последовательный запуск критичных сервисов в следующем порядке:
- dh-registry-service
- dh-configurations-service
- dh-accessrights-service
- ldm-users-info-service
- dh-gateway-api-service
- dh-datamodel-service
- dh-files-service
Вопрос: Какое значение параметра «max_connections» задано в конфигурации PostgreSQL?
Ответ: По 10 коннектов на микросервис, рекомендуется от 1000.
Вопрос: Почему после выхода из системы пользователь не перенаправляется на форму входа?
Ответ: Необходимо изменить параметр «PUBLIC_URL» в файле platform.yml. После корректировки этого параметра функция выхода из системы (logout) должна перенаправлять пользователя на страницу Keycloak для авторизации.
Вопрос: После установки Платформы у большинства сервисов появилось два схожих названия, но одно с припиской «ui». Что это за сервисы?
Ответ: Это ожидаемая архитектура. Один сервис – бэкенд-сервис, который обрабатывает логику и данные. Другой сервис с префиксом «ui» – фронтенд-сервис, предоставляющий пользовательский интерфейс. Логи, как правило, необходимо проверять в соответствующем бэкенд-сервисе.
Вопрос: Как взаимодействует Платформа с P7-Офис для онлайн-редактирования документов?
Ответ: Для редактирования файла онлайн система выполняет следующую последовательность действий:
- Пользователь инициирует онлайн-редактирование документа через карточку в Платформе.
- Документный сервис создает сессию редактирования на сервере P7-Офис и связывает ее с файлом в файловом хранилище.
- Открывается новая вкладка браузера с редактором P7-Офис, где пользователь вносит изменения.
- Пока сессия активна, Платформа отслеживает статус редактирования.
- После завершения работы пользователь применяет изменения в Платформе.
- Измененный файл автоматически скачивается с сервера P7-Офис, заменяя старую версию в системе, после чего сессия редактирования закрывается.
Вопрос: Как работает логика кнопки «Проверить комплектность у папки» и при каких условиях она отображается?
Ответ: Логика отображения и работы кнопки «Проверить комплектность у папки» связана с настройками класса папки.
Для настройки кнопки необходимо:
- Активировать соответствующий переключатель для класса папки и заполнить блок комплектности.
- Пересохранить конфигурацию сервиса.
- Создать папку с настройкой проверки комплектности.
- Выдать разрешение folders-verify пользователю или роли, от имени которой выполняется действие.
Проверка комплектности выполняется:
- при создании объекта непосредственно в папке – будут доступны все типы объектов для создания, но к папке привяжутся только те, которые указаны в настройках ее комплектности;
- при привязке существующего объекта к папке из его карточки (документ, бизнес-объект, коллекция) – если у целевой папки включена проверка комплектности, то она сработает при попытке привязать объект.
Вопрос: Как осуществляется техническая поддержка в рамках вендорской технической поддержки?
Ответ: Порядок технической поддержки описан в документах: «Релизная политика» и «Описание процесса обработки запросов в рамках вендорской технической поддержки».
Вопрос: Что такое подборка (коллекция), для чего она нужна, кто имеет полномочия на работу с ней и какие?
Ответ: Коллекции позволяют пользователям или внешним системам объединять разнородные объекты системы (документы, папки и др.) в единые группы для упрощения их поиска, выполнения групповых операций и управления доступом. Полномочия определяются настройками сервиса управления доступом.
Вопрос: Почему к документу не удается прикрепить файл?
Ответ: Возможные варианты решения проблемы:
1. Необходимо проверить, что созданы необходимые конфигурации разрешения форматов прикрепляемых файлов (в том числе, в модели данных слоя хранения).
Пример конфигурации:
{application/pdf,pdf},
{application/vnd.openxmlformats-officedocument.wordprocessingml.document,docx},
{application/vnd.openxmlformats-officedocument.presentationml.presentation,pptx},
{image/jpeg,jpeg},
{image/jpeg,jpg}
2. Необходимо проверить, что файлы возможно загрузить в хранилище, и что оно правильно настроено.
В хранилище должны быть указаны обязательные поля параметров подключения, изображенные на рисунке (включая «Префикс для загрузки»). Если поля параметров подключения не заполнены, хранилище не сохранит файлы. При попытке сохранить контент будет получена ошибка.
Вопрос: В каком виде предоставляются и отображаются комментарии к объектам?
Ответ: Комментарии могут быть прикреплены к любому объекту системы. Для демонстрации функциональности реализовано отображение комментариев в пользовательском интерфейсе (UI) сервиса документов при открытии карточки документа. На стороне фронтенда комментарии запрашиваются отдельным HTTP-запросом в контексте конкретного объекта.
Вопрос: По каким причинам политики, настроенные на слоях API и DATA, могут не применяться?
Ответ: Для определения причины необходимо выполнить следующую последовательность проверок:
- Для начала проверить логи сервиса прав доступа. Если по логам причина неясна, необходимо проверить через подключение к Kafka, какие события публикуются и принимаются. Возможная причина – некорректная настройка топиков Kafka.
- Убедиться, что значение ENVIRONMENT_PREFIX одинаково во всех связанных сервисах.
-
Проверить настройку топиков:
- Имя топика, в который публикует события сервис прав доступа, формируется по шаблону: ${ENVIRONMENT_PREFIX}-${APP_NAME}-topic;
- Параметр DH_ACCESSRIGHTS_TOPIC_PATTERN в сервисе ldm-users-settings-service должен быть равен полному имени этого топика.
-
Проверить подключение между сервисами: убедиться, что параметр DH_ACCESSRIGHTS_SERVICE_URL в сервисе ldm-users-settings-service задан корректно и данный сервис может подключиться к dh-accessrights-service.
Если данные настройки корректны, логи ldm-users-settings-service должны отображаться подобным образом:
Вопрос: Какие ключи отвечают за настройки Redis (TTL) в сервисе ldm-users-info-service?
Ответ: За настройку TTL (Time To Live) в Redis отвечают следующие ключи:
- ldm.users-info.settings.dhUsersInfoUsernameTtl;
- ldm.users-info.settings.dhUsersInfoUserIdTtl;
- ldm.users-info.settings.dhUsersInfoProfilesTtl;
- ldm.users-info.settings.dhUsersInfoGroupsTtl;
- ldm.users-info.settings.dhUsersInfoGroupsMembersTtl;
- ldm.users-info.settings.dhUsersInfoRolesTtl;
- ldm.users-info.settings.dhUsersInfoRolesMembersTtl;
Для всех перечисленных ключей значение TTL по умолчанию установлено на 12 часов.
Пример настроек:
Вопрос: Почему после сохранения документа он помещается в черновики, все атрибуты сохраняются, но добавленное вложение (файл) отсутствует в его карточке, хотя файл физически присутствует в разделе файлов и хранилище? Класс документа настроен и добавлен в конфигурацию.
Ответ:
- В ConfigMap файлового сервиса (dh-files-service) необходимо убедиться, что значение переменной ENVIRONMENT_PREFIX соответствует ожидаемому префиксу окружения на стенде.
- В ConfigMap документного сервиса необходимо проверить, что для переменной DH_FILES_SERVICE_TOPIC_PATTERN установлено значение <ожидаемый префикс>--dh-files-service-topic.
Вопрос: Используется ли шифрование в файловом сервисе и какой алгоритм применяется для шифрования контента?
Ответ: Для политики размещения в файловом сервисе может быть указана настройка «Шифровать контент», при этом для нее генерируется ключ. Все файлы, размещенные по этой политике, будут зашифрованы с использованием алгоритма AES (Advanced Encryption Standard) 128-битным ключом.
Для генерации случайных чисел алгоритма AES используется стандартная защищенная библиотека Java: javax.crypto.KeyGenerator
Также в сервисе «Проверка уникальности» используется алгоритм SHA-256 для расчета хэша объекта с целью определения его уникальности. Хэширование используется для проверки целостности файла. Хэш вычисляется в момент загрузки файла в хранилище до шифрования и сжатия.
Вопрос: Почему хранилище (PersistentVolume) создано, но данные в него не сохраняются?
Ответ: Необходимо убедиться, что в конфигурации хранилища указан тип хранилища и, в зависимости от этого типа, заданы все параметры подключения (включая «Префикс для загрузки»). Эти параметры различны в зависимости от типа выбранного хранилища.
Параметры подключения в зависимости от выбранного типа хранилища:
Вопрос: Как определить путь к хранилищу для создания нового хранилища типа Filestore, если ранее хранилище не настраивалось отдельно?
Ответ: Путь к хранилищу представляет собой путь до директории на сервере, в которой будут физически храниться файлы.
Необходимо создать директорию вручную на соответствующем сервере с помощью команды mkdir, затем в конфигурации указать полный путь до созданной директории (например, /u01/docshouse/myfiles/). Не следует указывать путь, находящийся в директории /tmp или любой другой временной файловой системе. Это может привести к безвозвратной потере всех файлов при перезапуске файлового сервиса или перезагрузке ноды.
Вопрос: Почему в настройках класса папки можно задать ограничение на добавляемые в нее классы документов, но при добавлении документа в папку по-прежнему отображаются все классы?
Ответ: Данный функционал настройки класса папки реализует проверку комплектности. Его задача – не явно запрещать добавление определенных классов документов, а определять, какие именно классы должны входить в комплект для данной папки.
Вопрос: Является ли отчет выгружаемым файлом? Из чего он формируется?
Ответ: Результатом работы сервиса отчетов является документ, к которому в виде файла прикреплен сформированный отчет. Этот файл отчета можно выгрузить стандартными методами работы с файлами документа.
Для формирования отчета необходим шаблон отчета (документ с прикрепленным файлом в формате FRX, который описывает структуру и дизайн отчета), а также источник данных (подготовленная витрина данных, описанная в файле шаблона (FRX) в качестве источника данных для отчета).
Вопрос: Фоновые задачи – для какого функционала используются, кто осуществляет управление ими?
Ответ: Фоновые задачи реализуют механизм планирования запуска HTTP-запросов по расписанию (или по триггеру). Может использоваться Администратором для автоматизации бизнес-функций (например, ежедневное формирование архива документов) или планирования запуска системных функций конкретных сервисов (например, утилита очистки БД от устаревших данных).
Вопрос: Для чего используется «Общий поисковый запрос»?
Ответ: Общий поисковый запрос – сервис, позволяющий производить поиск по всем объектам системы, а также сохранять настройки запросов, после чего они будут попадать в раздел «Сохраненные запросы», из которого можно восстанавливать указанные ранее условия фильтрации. Сохраняется только тело запроса и информация о его владельце. Сами данные, найденные по запросу, не хранятся.
Вопрос: Для чего используется шаблон уведомления?
Ответ: В системе существует сервис «Подписки», который позволяет подписаться пользователю на определенное событие в Системе (на топик события другого сервиса). При воспроизведении такого события происходит информирование указанного пользователя (либо группы пользователей) через интерфейс «Уведомления» о наступлении события в другом сервисе, на который он подписан.
Сервис уведомлений служит для настройки шаблона, а именно указания, в каком формате и какое содержимое из данного события будет отображаться в качестве текста уведомления.
Вопрос: Как производится проверка форматов файлов в системе (используется magic number или другой механизм)?
Ответ: Проверка формата файла выполняется внутри файлового сервиса с использованием библиотеки Apache Tika. Библиотека анализирует подпись файла в начале его содержимого, метаданные, а также характерные последовательности байтов для конкретных типов файлов, используя собственный встроенный словарь сигнатур.
Вопрос: Для чего используется объект «Альтернативные представления»?
Ответ: Альтернативное представление – это дополнительная форма объекта или его данных, которая может отличаться от оригинального представления по различным характеристикам (например, формат, язык, детализация). Оно представляет собой файл и набор атрибутов, альтернативно предоставляющих объект.
Полномочия на работу определяются настройкой сервиса управления доступом как для самого сервиса альтернативных представлений, так и для сервисов, использующих такие представления для объектов.
Возможность прикрепления альтернативного представления к экземпляру документов задается на стадии создания модели класса в сервисе модели данных.
Вопрос: На что влияет факт добавления в избранное (dh-favorites-service)?
Ответ: Факт добавления в избранное не влияет на объект системы (например, документ) и не изменяет его, а лишь ставит метку (с помощью системного поля, отображающего, что данная сущность находится в избранном).
Вопрос: Для чего используются условия фильтрации файлов для тиринга?
Ответ: Тиринг – это автоматический процесс перемещения файлов между различными уровнями хранилищ в рамках единой политики размещения. Перемещение осуществляется на основе анализа востребованности. Чем чаще файл скачивается пользователями за единицу времени, тем более файл востребован. Полномочия на управление политиками тиринга определяются настройками сервиса управления доступом.
Вопрос: Что такое ключ уникальности в ldm-uniqueness-service?
Ответ: Ключ уникальности является списоком значений набора свойств объекта, совокупность которых идентифицирует объекты, которые должны иметь уникальный (к рамках совокупности этих объектов) номер.
Вопрос: Есть ли возможность через аудит отслеживать, кто выполняет действие в режиме замещения – заместитель или замещаемый пользователь?
Ответа: В настоящий момент в версии 1.11 замещающий сотрудник выполняет все действия от имени замещаемого, через аудит это отследить невозможно.
Вопрос: Запрос на выборку документов – что такое выборка документов, кем она должна инициироваться и в каких целях?
Ответ: Выборка документов используется для операций с объектами системы, триггерами которых являются доменные события с этими объектами. При формировании выборки по всем объектам формируется специальное доменное событие, которое может использоваться в любом сервисе системы, например, перемещение контента документа.
Вопрос: Существует ли в версии 1.10 политика на видимость комментариев?
Ответ: Настроить видимость комментариев, основываясь на свойствах комментируемого объекта, невозможно (например, запретить получать комментарии к документу у которого свойство sum>100000).
Вопрос: Какое конкретное значение при интеграции с методом верификации электронной подписи необходимо передавать в поле «signature[].fileLink.source» для указания, что файл электронной подписи физически хранится в сервисе dh-signature-service?
Ответ: Необходимо предварительно настроить источник для получения ЭП. Для этого в контейнере ldm-signature-service следует добавить данные переменных окружения (значения указаны в качестве примера):
LDM_TRUSTEDSOURCESSETTINGS_TRUSTEDSOURCES_DHSIG_URL: http://dh-signatures-service:8080/api/v1/signatures/
{id}
/content
LDM_TRUSTEDSOURCESSETTINGS_TRUSTEDSOURCES_DHSIG_IDFORMAT: Uuid
LDM_TRUSTEDSOURCESSETTINGS_TRUSTEDSOURCES_DHSIG_IMMUTABLE: false
После этого источник хранения ЭП можно указывать следующим образом:
"fileLink":
{ "linkId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "source": "DHSIG" }
- 3fa85f64-5717-4562-b3fc-2c963f66afa6 – идентификатор подписи в сервисе;
- DHSIG – наименование источника, заданное в переменных окружения выше.
Вопрос: Реализовано ли сжатие файлов в системе и какими средствами оно выполняется?
Ответ: Реализовано автоматическое сжатие файлов на файловом сервисе в зависимости от настройки политики размещения файлов. Сжатие производится в ZIP-архив без возможности настройки сжатия (используются настройки по умолчанию).



