
- •Глава 1. Постановка задачи, формирование требований к системе 8
- •Глава 2. Проектирование архитектуры системы и описание логики взаимодействия ее компонентов 16
- •Глава 3. Разработка 31
- •Список сокращений и условных обозначений
- •Введение
- •Глава 1. Постановка задачи, формирование требований к системе
- •1.1 Функциональные и нефункциональные требования к системе
- •1.1.1 Функциональные требования
- •1.1.2 Нефункциональные требования
- •Глава 2. Проектирование архитектуры системы и описание логики взаимодействия ее компонентов
- •2.1 Системная архитектура
- •2.2 Взаимодействие с бэкендом
- •2.3 Интеграция с Access Control и pip Service
- •2.3.1 Конфигурация прав доступа в Access Control
- •2.3.2 Конфигурация расширенных прав доступа в pip Service
- •2.4 Микрофронтенд архитектура
- •2.4.1 Microservices ui Platform Framework
- •2.5 Архитектура данных
- •Глава 3. Разработка
- •3.1 Создание и регистрация Hiring фрагмента
- •3.2. Создание пользовательской роли hr Hiring
- •3.3. Маршрутизация
- •3.3.1 Hiring в глобальном меню Host Application
- •3.3.2 Маршрутизация в Hiring
- •3.4 Vault ldap-аутентификация
- •3.5 Примеры реализации функциональности компонентов системы
- •3.5.1 Создание Hiring Request’а
- •3.5.1.1 Отправка формы по нажатию кнопки “Submit”
- •3.5.2 Поиск Hiring Request’а по названию
- •3.5.3 Настройка видимости колонок таблиц дашбордов
- •3.5.4 Оправка нотификации “Send to Payroll Group”
- •3.5.5 Работа с документами
- •3.6 Выдача прав доступа
- •3.7 Модули проекта
- •3.8 Демонстрация интерфейса веб-приложения
- •3.9 Тестирование
- •Заключение
- •Список использованных источников
- •Приложение а
1.1.2 Нефункциональные требования
NFR-1. Стек технологий, используемый в ходе разработки системы, должен соответствовать стеку технологий, используемому компанией на внутренних проектах для удобства поддержки.
NFR-2. Система должна быть интегрирована с основной внутренней корпоративной системой управления персоналом.
NFR-3. Система должна быть интегрирована с внутренней корпоративной системой отдела финансов.
NFR-4. Клиентская часть системы должна быть разработана под браузер Google Chrome версии 80.0 и выше.
NFR-5. Выдача прав для пользовательских ролей и динамическая видимость должны быть реализованы через внутреннюю корпоративную систему контроля доступа - Access Control.
NFR-6. Персональные данные и денежные суммы должны быть зашифрованы.
NFR-7. Клиентская часть веб-приложения Hiring должна являться независимым динамическим модулем существующего приложения Host Application, который не взаимодействует с другими модулями приложения и имеет независимый деплой.
NFR-8. Пользователь должен быть повторно аутентифицирован и авторизован через Vault.
NFR-9. Веб-приложение должно быть протестировано вручную по пользовательским сценариям, CRUD-функциональность должна быть покрыта unit-тестами.
NFR-10. Система должна быть интегрирована с предоставляющим свой REST API корпоративным абстрактным сервисом File Storage, реализующим облачное хранилище файлов для шифрования и дешифрования ключей которых необходима регистрация в File Storage Vault токена авторизации.
Глава 2. Проектирование архитектуры системы и описание логики взаимодействия ее компонентов
2.1 Системная архитектура
Веб-приложение
Hiring
будет развернуто в OpenShift-кластере,
представленном на диаграмме, изображенной
на рисунке 2.
Рисунок 2 – Диаграмма компонентов системы
На рисунке 2 представлены следующие компоненты системы:
Host Application – уже разработанный Angular микрофронтенд, интерфейс которого представляет собой меню, из которого можно попасть в существующие модули портала. Данный микрофронтенд будет доработан таким образом, чтобы из его меню также можно было попасть в Hiring при наличии доступа. В Host Application сконфигурирован сервер, реализованы авторизация и маршрутизация между существующими модулями портала, которые будут доработаны в ходе разработки Hiring, а также реализованы модели и сервисы, некоторые из которых будут использоваться в Hiring (подробнее в подразделе 2.5). В ходе разработки Hiring в Host Application будут реализованы новые сервисы,
MUI Platform Microservice – реализованный бэкенд-микросервис, предоставляющий доступную по REST API функциональность, необходимую для деплоя микрофронтендов, в том числе “Hiring” (подробнее см. в разделе 2.4.1. “Microservices UI Platform Framework”),
Identity Provider – написанный на базе KeyCloak [10] корпоративный сервис, предоставляющий поддержку OpenID Connect протокола и готовое Single Sign-On решение. В ходе разработки “Hiring” c помощью Identity Provider будет создана и выдана новая пользовательская роль для доступа к “Hiring”,
HashiCorp Vault – сервис, обеспечивающий надёжное хранение и распространение секретов, который будет интегрирован в систему для обеспечения шифрования конфиденциальных данных и документов в Hiring, а также реализации безопасного доступа к этим данным посредством повторной аутентификации и авторизации пользователя через Vault [5]. Расположение Vault в отдельном от остальной инфраструктуры приложения OpenShift-кластере обусловлено необходимостью ограничить доступ к ключам шифрования,
Backend Infrastructure – реализация бэкенд архитектуры веб-приложения.