User management - wildberries-tech/universal-harvester GitHub Wiki

Управление учётными записями пользователей производится через интерфейс приложения в меню USERS. (IMG)

Суперадминистратор

Роль суперадминистратора определена как fullmaster.

Ролевая модель

Роль USERS KEYS SOURCES STEPS TASKS SCENARIOS SCENARIOS EDITOR SCHEDULER
fullmaster Полное редактирование всех УЗ, создание новых УЗ Просмотр,создание, редактирование секретов Просмотр, создание, редактирование источников Просмотр, изменение, создание, копирование, запуск всех шагов Просмотр, перезапуск, остановка всех задач Доступны все сценарии, вся история запусков Просмотр, редактирование, копирование всех сценариев TBD
users_admin Полное редактирование всех УЗ, создание новых УЗ Недоступно Недоступно Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка собственных задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр сценариев в соответствии с собственными ролями TBD
keys_admin Просмотр своей УЗ, изменение своего пароля Просмотр,создание, редактирование секретов Недоступно Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка собственных задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр сценариев в соответствии с собственными ролями TBD
sources_admin Просмотр своей УЗ, изменение своего пароля Недоступно Просмотр, создание, редактирование источников Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка собственных задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр сценариев в соответствии с собственными ролями TBD
steps_admin Просмотр своей УЗ, изменение своего пароля Недоступно Недоступно Просмотр, изменение, создание, копирование, запуск всех шагов Просмотр, перезапуск, остановка собственных задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр сценариев в соответствии с собственными ролями TBD
tasks_admin Просмотр своей УЗ, изменение своего пароля Недоступно Недоступно Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка всех задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр сценариев в соответствии с собственными ролями TBD
scenarios_admin Просмотр своей УЗ, изменение своего пароля Недоступно Недоступно Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка собственных задач Доступны все сценарии, вся история запусков Просмотр сценариев в соответствии с собственными ролями TBD
scenario_editor_admin Просмотр своей УЗ, изменение своего пароля Недоступно Недоступно Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка собственных задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр, редактирование, копирование всех сценариев TBD
custom (собственные роли) Просмотр своей УЗ, изменение своего пароля Недоступно Недоступно Просмотр, запуск шагов в соответствии с собственными ролями Просмотр, перезапуск, остановка собственных задач Доступны сценарии в соответствии с собственными ролями, собственная история запуска Просмотр сценариев в соответствии с собственными ролями TBD

У пользователя может быть несколько ролей.

Метаданные пользователей

У каждого пользователя есть JSON поле, применяемое для расширение функционала и хранения метаданных. Его можно использовать для хранения дополнительной информации, например, табельного номера, сторонних user_id и т.д. На данный момент зарезервирована нода notify, используемая для настроек оповещения пользователя о выполненных запросах к Universal Harvester.

Настройка оповещения пользователей

При завершении выполнения сценария Universal Harvester может проинформировать пользователя и передать ему ссылку на получение результата.

{
  "any_fields": "",
  "notify": {
    "mattermost": {
      "enabled": true,
      "server": "mattermost.example.ru",
      "username": "username of user in mattermost",
      "key": {
        "system": "system in keys (creds link for mattermost.example.ru)",
        "account": "account in keys (creds link for mattermost.example.ru)"
      }
    },
    "telegram": {
      "enabled": true,
      "chat_id": 12345,
      "key": {
        "system": "system in keys (creds link for telegram token)",
        "account": "account in keys (creds link for telegram token)"
      }
    }
  }
}

Mattermost

Для оповещений в Mattermost необходимо создать бота с правами на создание чатов с пользователями и добавить API-ключ бота в разделе Keys.

Telegram

Для оповещения в telegram необходимо сначала создать Телеграм-бота с помощью @BotFather, затем добавить API-ключ бота в разделе Keys. Чтобы получить уникальный chat_id пользователя, необходимо, чтобы пользователь написал боту, после этого можно получить chat_id, например, следующим способом:

import requests
bot_token = ""
url = f"https://api.telegram.org/bot{bot_token}/getUpdates"
print(requests.get(url).json())