Что спросит технический согласователь — и что мы отвечаем, с версиями

Согласование прикладной системы срывается не на функциях, а на вопросах «где это будет стоять», «куда оно ходит наружу» и «кто управляет доступом». Ниже — ответы списком: варианты развёртывания, границы модулей, стек с версиями, интеграции и перечень параметров, которые настраиваются под вашу организацию.

Развёртывание: в вашем контуре, без обращений наружу

Это первый вопрос службы информационной безопасности, поэтому ответ — здесь, а не в конце страницы.

На площадке организации

Серверное приложение разворачивается в инфраструктуре организации — в собственном центре обработки данных или в её частном облаке. Для работы продукту не нужны обращения к внешним, не принадлежащим организации сервисам: аутентификация, хранилище секретов, файловое хранилище и почтовый шлюз — это ваши системы, подключаемые по адресам, которые задаёте вы.

  • Данные не покидают контур организации
  • Интеграции настраиваются параметрами, а не пересборкой
  • Секреты хранятся во внешнем хранилище секретов, а не в файлах приложения

Что не входит в поставку

  • Облачного сервиса по подписке: мультиарендности в продукте нет, разделение по юридическим лицам — это функция предметной области, а не изоляция арендаторов
  • Мобильного приложения и публичного программного интерфейса для внешних потребителей данных
  • Готовых сборочных образов и манифестов оркестратора в поставке — состав поставки и способ развёртывания фиксируются на пилоте

Границы модулей: понятно, что чем занимается

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

Схема листается вбок — она шире экрана.

Границы модулей продуктаВеб-слой опирается на доменное ядро. Ядро использует модуль безопасности и три модуля интеграции: почтовый шлюз, файловое хранилище и внешнюю систему процессов. Данные хранятся в PostgreSQL, справочная информация приходит из внешних систем.ПриложениеВеб-слойэкраны, навигация, дашборды, внутренние отчётыДоменное ядрореестры, статусные модели, уведомления, отчётностьМодули интеграцииБезопасностьПочтовый шлюзФайлыСистема процессовPostgreSQL · миграции схемыСправочная информация из внешних системматериализованные представления, обновление по расписанию
Границы модулей. Каждый модуль интеграции включается отдельным параметром и имеет режим-заглушку — для стенда, где внешней системы ещё нет.
Модули и зона ответственности
МодульЗа что отвечает
Веб-слойто, что видит пользователь: реестры, карточки, дашборды, выгрузки
Доменное ядроправила предметной области: этапы, обязательные поля, расчёты, сроки
Безопасностьвход в систему и модель прав
Почтовый шлюздоставка уведомлений по электронной почте
Файловое хранилищехранение вложений и файлов отчётов вне базы данных
Система процессовсвязь риска с бизнес-процессом и его владельцем

Стек с версиями

Версии названы там, где они зафиксированы в продукте.

Состав технологического стека
СлойЧто используется
Язык и платформаJava 17
Каркас приложенияSpring Boot 2.7.18
Пользовательский интерфейсZK 9.6.2 — серверный рендеринг
Веб-контейнервстроенный Tomcat 9.0.98; поставка в формате war
База данныхPostgreSQL, драйвер 42.7.2
Миграции схемыLiquibase 4.23.0
СборкаGradle 8.1.1
АутентификацияKeycloak как провайдер OpenID Connect
СекретыHashiCorp Vault
Файлывнешнее объектное файловое хранилище
Отчётыформирование xlsx и docx по файлам-шаблонам
Наблюдаемостьслужебные точки состояния и метрик, метрики в формате Prometheus
Контроль качества сборкистатические анализаторы кода в конвейере сборки

Безопасность и управление доступом

Продукт не заводит собственного каталога пользователей и собственного хранилища паролей. Вход и права остаются в ваших системах — это и есть ответ на вопрос «как мы будем отзывать доступ при увольнении».

  • Вход через OpenID ConnectKeycloak как провайдер; токен проверяется по набору ключей провайдера
  • Права — из внешнего модуля безопасностиразрешения и идентификатор сотрудника приходят по REST
  • Секреты — в хранилище секретовпараметры подключения не лежат в файлах приложения
  • Журналирование событий безопасностиотдельный журнал событий входа и отказов в доступе
  • Таймаут сессии60 минут бездействия
  • Экран отказа в доступеотдельная страница вместо пустого раздела без объяснений

Глубина ролевой модели описана отдельно: 12 типов объектов защиты, 5 действий, 27 именованных действий пользователя, права до вкладки карточки и сборка меню из выданных прав — страница о правах доступа. Для внешнего проверяющего и внешнего пользователя предусмотрены отдельные реестры «только чтение», а не учётная запись с исключениями.

В продукте есть второй режим аутентификации — по файлу пользователей. Он предназначен для разработки и на продуктивном контуре не используется; рабочий режим — OpenID Connect. Говорим об этом прямо, чтобы вопрос не всплыл на аудите.

Интеграции: каждая включается отдельно

У каждой внешней связи есть параметр включения и режим-заглушка. На стенде, где почтового шлюза или файлового хранилища ещё нет, продукт запускается и работает — интеграция просто выключена.

Интеграции продукта
С чемНаправлениеЧто даёт
Провайдер OpenID Connectвходящая аутентификацияединый вход, отзыв доступа — в вашем каталоге
Внешний модуль безопасностиисходящая, RESTразрешения пользователя и его идентификатор сотрудника
Почтовый шлюзисходящая, RESTдоставка уведомлений, вложения, пакетная отправка
Объектное файловое хранилищеисходящая, RESTвложения и файлы отчётов вне базы; ограничение файла — 700 МБ
Внешняя система управления процессамиисходящая, REST и загрузка по расписаниюпроцесс и владелец процесса в карточке риска и в выгрузке
Справочная информация организациивходящая, на уровне базы данныхсотрудники, подразделения, должности, юридические лица, клиенты и договоры
Хранилище секретовисходящая, конфигурацияпараметры подключения и учётные данные вне файлов приложения
Система сбора метрикисходящая, мониторингсостояние приложения и метрики в привычном для вас формате

Данные, справочная информация и импорт

  • Схема базы данных версионируется миграциями: обновление продукта не превращается в ручные скрипты на продуктивной базе.
  • Четырнадцать справочников нормативно-справочной информации не ведутся в продукте: они приходят из внешних учётных систем материализованными представлениями и обновляются фоновой задачей. Обновления пишутся в отдельный журнал.
  • Массовая загрузка данных о манипулировании и запросах и предписаниях идёт через промежуточную схему загрузки с проверкой ограничений: обязательность значения, формат даты, число, строка, ссылочная целостность. Строки с предупреждениями и ошибками подсвечиваются до того, как попадут в рабочие реестры.
  • Источники загрузки — файлы CSV и Excel, а также база данных.

Наблюдаемость и фоновые задачи

  • Служебные точки состояния и метрик включены; метрики отдаются в формате Prometheus.
  • Планировщик включается целиком одним параметром, каждая задача — отдельным признаком. Расписания хранятся в базе и правятся в интерфейсе, без пересборки.
  • Параллельный запуск одной задачи на нескольких узлах кластера блокируется; ошибка внутри задачи не останавливает планировщик.
  • Запуски пишутся в журналы со статусами: не запущен, исполняется, завершено, завершено с ошибками, ошибка, отменено. В интерфейсе доступны журнал почтовых уведомлений, журнал загрузки процессов и журнал обновления справочной информации.

Совместимость и параметры площадки

База данных — PostgreSQL

Продукт работает с PostgreSQL: драйвер и миграции схемы сделаны под неё, схема разворачивается и обновляется миграциями Liquibase.

Перечень поддерживаемых операционных систем и браузеров, требования к ресурсам, сроки внедрения, параметры сопровождения и модель лицензирования фиксируются в коммерческом предложении под вашу площадку — по объёму данных, числу пользователей и нагрузочному профилю.

Российская разработка, работа в вашем контуре

Разработчик — российская компания ООО «Ланселот-ИТ». Продукт разворачивается в инфраструктуре организации и для работы не обращается к внешним, не принадлежащим ей сервисам.

Что настраивается под вашу организацию

Продукт подстраивается под ваши регламенты настройкой, а не правкой кода. Ниже — параметры, которые задаются на внедрении, и то, подо что они настраиваются.

Параметры, настраиваемые под организацию
ПараметрПод что настраивается
Расписания фоновых задачрегламент напоминаний вашей организации; хранятся в базе и правятся в интерфейсе
Состав ролей и матрица правструктура подразделений и требования вашего процесса управления доступом
Перечень справочников НСИ и источники их загрузкикакие учётные системы у вас являются мастер-системами
Структура шаблонов отчётовчасть отчётов собирается по файлам-шаблонам вашей организации
Производственный календарьзаполняется на год: от него зависят все сроки в рабочих днях
Требования к ресурсам и режим сопровожденияобъём данных, число пользователей, нагрузочный профиль
Способ развёртывания и состав поставкипринятые у вас правила размещения приложений

Документация

Публично мы выкладываем обзорные материалы: описание функционального контура, перечень реестров и справочников, модель прав. Техническая документация — руководство по развёртыванию, описание модели данных, описание программных интерфейсов интеграции, регламент администрирования безопасности — передаётся по запросу под соглашение о неразглашении. Публиковать её в открытом доступе означало бы выкладывать карту системы, которая стоит в контуре заказчика.

Запросить документацию под NDA

Обсудить развёртывание в вашем контуре

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