Администрирование посредством публичного API
Максимальная поставка содержит Сервер API как компонент консоли управления. В такой конфигурации GraDeLy предоставляет публичный REST API для управления работой модулей репликации.
Последовательность выполнения
Все действия по конфигурированию репликации могут быть выполнены без использования графического интерфейса посредством вызова этого API. Администратор организации может использовать любой инструмент, который поддерживает HTTP/HTTPS вызовы (например — curl, postman). При подготовке скриптов следует использовать документацию API, входящую в состав поставки продукта.
Привилегии
- Привилегии пользователей API делятся на системные (позволяющие выполнять класс действий, то есть вызывать определенные методы API) и объектные (позволяющие выполнять действия над конкретными объектами). Привилегии пользователей определяют доступность определенных методов API.
- Модуль управления не производит аутентификацию и авторизацию. Сервер API должен быть установлен за прокси-сервером, выполняющим аутентификацию и авторизацию (например, Keycloak). В последующих релизах такой прокси-сервер может быть включен в поставку GraDeLy с целью возможности защищенного развертывания вне среды контейнерной виртуализации. Подход может быть пересмотрен в более поздних релизах.
- Привилегии могут быть объединены в роли – именованные наборы привилегий. Задача трансляции набора ролей в набор привилегий возлагается на внешний сервис авторизации.
- Привилегии не назначаются пользователям непосредственно, а только через назначение ролей. Набор ролей и их наполнение жестко зафиксированы. В текущей версии наследование ролей не поддерживается.
- При развертывании GraDeLy в сервис авторизации загружается набор предопределенных ролей — ролевая модель.
Привилегии определяют набор доступных пользователю API и возможностей редактирования данных в проекте.
Привилегия all — это объединение PUT, POST, DELETE привилегий (без GET привилегии).
Прямая связь по привилегиям есть только с одноименными API.
Связь привилегий с правами на чтение/запись приведена в таблице ниже:
| Привилегии | Описание | Config | Graph | Connection | Module | Process | Task_Control | Connector | Task_connector | Cluster | Compare_task | Compare_config | Compare_result | Требует подтверждение при включенном КВР |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LIST_CONTENTS | Просмотр перечня конфигураций, модулей, соединений, графов, просмотр схемы графов, валидация графов. Для проекта Kafka Cluster просмотр списка коннекторов, кластера | GET | GET | GET | GET | GET | GET | |||||||
| LIST_PROCESSES | Просмотр перечня процессов (запущенных модулей). Для проекта Kafka Cluster просмотр списка задач коннектора | GET | GET | |||||||||||
| READ_CONFIG | Получение исходного текста конфигураций и модулей, валидация конфигураций | GET | GET | |||||||||||
| READ_CONNECTION | Просмотр информации о соединениях, валидация соединений Для проекта Kafka Cluster просмотр полного описания коннекторов, вместе с конфигурацией | GET | GET | |||||||||||
| READ_CLUSTER | Получение состояние и валидация кластера | GET | ||||||||||||
| MODIFY_CONFIG | Создание, редактирование, удаление, копирование конфигураций | all | ||||||||||||
| MODIFY_MODULE | Создание, редактирование, удаление модулей, копирование конфигурации модуля и добавление ее в другой граф | all | ||||||||||||
| MODIFY_CONNECTION | Создание, редактирование, удаление соединений. Для проекта Kafka Cluster создавать новые коннекторы, удалять существующие, редактировать коннекторы и свойства логирования плагина | all | all | all | ||||||||||
| MODIFY_GRAPH | Создание, редактирование, копирование, удаление графов | all | ||||||||||||
| MODIFY_CLUSTER | Изменить или удалить существующую конфигурацию кластера | all | ||||||||||||
| RUN_MODULE | Запуск и остановка модулей Для проекта Kafka Cluster запуск, перезапуск и остановка коннекторов и задач коннекторов | all | all | all | Да | |||||||||
| CONFIRM_OPERATION | Согласование задач контроля второй рукой (КВР) | all | ||||||||||||
| RUN_COMPARISON | Запуск сравнения объектов БД | all | ||||||||||||
| MODIFY_COMPARISON | Создание и редактирование конфигураций сравнения БД | all | ||||||||||||
| READ_COMPARISON | Просмотр конфигураций сравнения, выгрузка результатов задач сравнения объектов БД | GET | GET |
Привилегии не имеют иерархии. Так, например, наличие привилегии MODIFY_CONFIG не подразумевает наличие LIST_CONTENTS или READ_CONFIG.
Роли
Роли пользователя позволяют выполнять действия в рамках созданного проекта. Роли пользователя создаются автоматически со статусом ACTIVE при создании проекта и назначаются пользователям через систему авторизации.
| Роль | Описание | Config | Graph | Connection | Module | Process | Task_Control | Compare_task | Compare_config | Compare_result | Connector | Task_connector | Cluster |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| APPADMIN | Администратор приложения. Роль, наделенная полным набором привилегий для просмотра и редактирования объектов проекта (в том числе проект Kafka Cluster) без права передачи этих привилегий другим ролям | all | all | all | all | GET | all | all | all | all | all | GET | all |
| APPDUTY | Дежурный администратор. Роль, позволяющая просматривать список объектов и процессов, информацию о конфигурациях и соединениях, запускать и останавливать процессы, подтверждать выполнение задач КВР, просматривать конфигурацию и получать результат сверки объектов БД. Для проекта Kafka Cluster просматривать список коннекторов,задач коннекторов, получать информацию о кластере. Запускать, перезапускать и останавливать коннекторы | GET | GET | GET | all | GET | all | GET | GET | all | GET | GET | |
| INSPECTOR | Инспектор. Роль, позволяющая просматривать список объектов и процессов, информацию о конфигурациях и соединениях, просматривать конфигурацию и получать результат сверки объектов БД. Для проекта Kafka Cluster просматривать список коннекторов,задач коннекторов, получать информацию о кластере | GET | GET | GET | GET | GET | GET | GET | GET | GET | GET | GET |
В зависимости от роли пользователь обладает следующими привилегиями в рамках проекта:
| Привилегии | Описание | APPADMIN | APPDUTY | INSPECTOR |
|---|---|---|---|---|
| LIST_CONTENTS | Просмотр перечня конфигураций, модулей, соединений, графов, просмотр схемы графов, валидация графов. Для проекта Kafka Cluster просмотр списка коннекторов, кластера | Да | Да | Да |
| LIST_PROCESSES | Просмотр перечня процессов (запущенных модулей). Для проекта Kafka Cluster просмотр списка задач коннектора | Да | Да | Да |
| READ_CONFIG | Получение исходного текста конфигураций и модулей, валидация конфигураций | Да | Да | Да |
| READ_CONNECTION | Просмотр информации о соединениях, валидация соединений. Для проекта Kafka Cluster просмотр полного описания коннекторов, вместе с конфигурацией | Да | Да | Да |
| READ_CLUSTER | Получение состояние и валидация кластера | Да | Да | Да |
| MODIFY_CONFIG | Создание, редактирование, удаление, копирование конфигураций | Да | ||
| MODIFY_MODULE | Создание, редактирование, удаление модулей, копирование конфигурации модуля и добавление ее в другой граф | Да | ||
| MODIFY_CONNECTION | Создание, редактирование, удаление, копирование соединений. Для проекта Kafka Cluster создавать новые коннекторы, удалять существующие, редактировать коннекторы и свойства логирования плагина | Да | ||
| MODIFY_GRAPH | Создание, редактирование, удаление, копирование графов | Да | ||
| MODIFY_CLUSTER | Изменить или удалить существующую конфигурацию кластера | Да | Да | |
| RUN_MODULE | Запуск и остановка модулей. Для проекта Kafka Cluster запуск, перезапуск и остановка коннекторов и задач коннекторов | Да | Да | |
| CONFIRM_OPERATION | Согласование задач КВР | Да | Да | |
| RUN_COMPARISON | Запуск сравнения объектов БД | Да | ||
| MODIFY_COMPARISON | Создание и редактирование конфигураций сравнения БД | Да | ||
| READ_COMPARISON | Просмотр конфигураций сравнения, выгрузка результатов задач сравнения объектов БД | Да | Да | Да |