Синхронизация с DIS: создание, удаление, обновление, сохранение данных
Бизнес-требования
От Fastboard:
- При создании/копировании/перемещении проекта отправляем запрос в DIS на создание там источника (области + main таблицы для проекта)
- Создаем автоматически источник в FB, связанный с этой пустой таблицей в DIS
- У таких источников будет новый параметр link с урлом таблицы в DIS
- Отправляем запрос на все права для пользователя-создателя проекта, а также всех админов в системе
- При отправке запроса на все права на бэке хэшируем связку из пароля пользователя и его прав
ахдоступа, хэш передаем в DIS - При удалении также не забываем отправить запрос на удаление в DIS
- При входе в диспетчер данных отдавать список не только источников, доступных пользователю, но и источников из DIS для данного проекта
- При создании новых пользователей в FB отправлять данные о пользователях в DIS
От DIS:
- На каждый проект в FB создается пространство с как минимум одной системной таблицей
- Таблица становится источником этого проекта. Остальные таблицы, созданные в этом пространстве, автоматически становятся источниками этого проекта
- FB отдает данные пользователей, имеющих доступ к формам ввода. Необходимо сохранять эти данные и проверять доступность по этим данным при попытке пользователя получить доступ к форме ввода
- При получении информации о создании нового пользователя в FB заводить ему учетку в DIS с новым уровнем доступа – Fastboard
- При входе пользователя с учеткой Fastboard обязательно должны быть получены:
- Роль пользователя (текущая)
- Хэш-пароль для подтверждения доступа и роли
Примерная структура таблицы-связки пользователей с таблицами в DIS:
- id пользователя
- id таблицы
- Роль пользователя
- Хэш-пароль для входа этого пользователя в эту таблицу с этой ролью
Решение
Синхронизация создания, изменения и удаления данных пользователей и проектов в Fastboard с системой DIS по API с использованием хэширования для повышения безопасности.
Создание новых пользователей
Логика (фронтенд)
- При создании нового пользователя в системе выполнять запрос в API DIS – POST, который передаёт в себе:
- Логин пользователя