Инструкция для владельца сервиса, у которого уже установлен ShariX Open и который хочет подключить его к Платформе ShariX.
После подключения:
Выполняется на сервере, где установлен ShariX Open.
Откройте файл .env сервиса и проверьте настройки.
Для первичного подключения рекомендуется:
DEBUG=True PLATFORM_INTEGRATION=2 PLATFORM_API_URL=https://адрес-платформы/my/api/ DEFAULT_CLIENT_ROLE=METASERVICE-CLIENT SYSTEMD_SERVICE_NAME=sharix_main
Что означает каждая настройка:
| Настройка | Что указать |
|---|---|
DEBUG=True | Удобно на этапе разворачивания: сервис сможет показывать сгенерированный ключ для переноса на платформу. После настройки лучше вернуть False. |
PLATFORM_INTEGRATION=2 | Подготовительный режим. Сервис уже пробует синхронизацию, но еще не считается полностью активным. |
PLATFORM_API_URL | Адрес API платформы. Пример: https://testpm1.sharix-app.org/my/api/. |
DEFAULT_CLIENT_ROLE | Роль пользователя при самостоятельной регистрации на сервисе. Обычно METASERVICE-CLIENT. |
SYSTEMD_SERVICE_NAME | Имя systemd-сервиса без .service. Нужно для перезапуска через веб-интерфейс. Например, если systemd-сервис называется sharix_main.service, укажите sharix_main. |
Возможные значения DEFAULT_CLIENT_ROLE:
| Значение | Когда использовать |
|---|---|
METASERVICE-CLIENT | Обычный вариант. Зарегистрированный пользователь становится клиентом сервиса. |
METASERVICE-GUEST | Пользователи создаются только локально, без синхронизации с платформой. |
METASERVICE-CORPCLIENT | Регистрация используется как заявка на корпоративное обслуживание. |
После изменения .env перезапустите сервис.
Если доступен веб-интерфейс администратора:
Visual settings.Перезапустить сервис.
Если кнопка перезапуска не работает, проверьте SYSTEMD_SERVICE_NAME в .env. Значение должно совпадать с именем systemd-сервиса без .service.
Пример:
SYSTEMD_SERVICE_NAME=sharix_main
Для ручного перезапуска через сервер:
systemctl restart sharix_main.service
Выполняется в интерфейсе сервиса ShariX Open.
Этот ключ нужен платформе, чтобы обращаться к вашему сервису.
Если DEBUG=True, ключ может отображаться в кабинете сервиса, чтобы его было удобно скопировать.
Если DEBUG=False, ключ может быть показан только один раз сразу после генерации. Скопируйте его сразу.
Выполняется на Платформе ShariX.
На этапе первичного создания на платформе может не быть поля для ключа синхронизации. Это нормально.
Сначала создайте сервис. После создания откройте карточку или форму редактирования сервиса и внесите данные интеграции.
Выполняется на платформе, в карточке или форме редактирования созданного сервиса.
Нужно заполнить два значения.
| Что заполнить на платформе | Что туда вставить |
|---|---|
| API URL сервиса | Адрес API вашего сервиса. Например: https://open.example.org/my/api/. |
| Ключ доступа к сервису / ключ синхронизации | Ключ, который вы сгенерировали на сервисе на шаге 2. |
Пример:
API URL сервиса: https://open.example.org/my/api/ Ключ доступа к сервису: скопированный_ключ_с_сервиса
Сохраните карточку сервиса.
После создания сервиса платформа генерирует ключ, с которым ваш сервис сможет обращаться к API платформы.
Этот ключ должен попасть на сервис в .env:
PLATFORM_API_KEY=ключ_выданный_платформой
Также сервис должен знать свой ID на платформе:
METASERVICE_ID=ID_сервиса_на_платформе
Есть два способа заполнить эти значения.
Используйте этот способ, если уже заполнены:
В карточке или форме редактирования сервиса на платформе нажмите кнопку обновления настроек сервиса, если она доступна.
После этого платформа сама запишет на сервис в .env:
METASERVICE_ID=ID_сервиса_на_платформе PLATFORM_API_KEY=ключ_выданный_платформой
После записи настроек перезапустите сервис.
На сервисе это можно сделать через:
Visual settings;Перезапустить сервис.
Если автоматическая кнопка недоступна или не сработала, внесите значения вручную в .env сервиса:
METASERVICE_ID=ID_сервиса_на_платформе PLATFORM_API_KEY=ключ_выданный_платформой
После этого перезапустите сервис.
После того как платформа может обращаться к сервису, она назначает владельца сервиса администратором сервиса.
Обычно это происходит после сохранения настроек интеграции на платформе.
В результате на сервисе должно быть так:
METASERVICE-ADMIN;2101 больше не является METASERVICE-ADMIN;METASERVICE-ADMIN нет.Проверьте это в кабинете метасервиса на сервисе.
Если на сервисе найдено больше одного METASERVICE-ADMIN, в кабинете должно появиться предупреждение и кнопки для снятия лишних прав.
Оставьте одного администратора сервиса.
На сервисе проверьте .env:
PLATFORM_INTEGRATION=2 PLATFORM_API_URL=https://адрес-платформы/my/api/ METASERVICE_ID=ID_сервиса_на_платформе PLATFORM_API_KEY=ключ_выданный_платформой
На платформе в карточке сервиса проверьте:
На сервисе проверьте:
METASERVICE-ADMIN;
Когда все проверки прошли успешно, измените на сервисе .env:
PLATFORM_INTEGRATION=1
Перезапустите сервис.
После этого сервис работает в активном режиме синхронизации.
Проверьте сценарий самостоятельной регистрации на сервисе.
Если в .env:
DEFAULT_CLIENT_ROLE=METASERVICE-CLIENT PLATFORM_INTEGRATION=1
то на форме регистрации пользователь сможет выбрать синхронизацию с платформой.
Ожидаемое поведение:
| Ситуация | Что должно произойти |
|---|---|
| Пользователь выбрал синхронизацию, и на платформе его еще нет | Пользователь создается на сервисе и на платформе. |
| Пользователь выбрал синхронизацию, но уже есть на платформе | Сервис предлагает перейти на платформу и подключить сервис там. |
| Пользователь не выбрал синхронизацию | Пользователь создается локально на сервисе. |
| Платформа временно недоступна | Пользователь создается локально, синхронизация отключается, показывается предупреждение. |
Выполняется на платформе.
Ожидаемое поведение:
На сервисе откройте профиль пользователя.
Если синхронизация доступна, в профиле должна быть кнопка включения или отключения синхронизации с платформой.
Проверьте:
Если пользователь подключен к нескольким сервисам, платформа попробует передать изменение на остальные сервисы.
Если какой-то сервис не принял изменение:
На сервисе смените пароль пользователя.
Если синхронизация включена:
Если один из связанных сервисов недоступен:
Аварийный режим означает, что платформа пыталась синхронизироваться с сервисом, но сервис не ответил корректно.
Проверьте по порядку:
PLATFORM_API_URL на сервисе.METASERVICE_ID.PLATFORM_API_KEY.METASERVICE-ADMIN..env.После исправления снова сохраните настройки интеграции на платформе или повторите проверку подключения.
.env указать DEBUG=True, PLATFORM_INTEGRATION=2, PLATFORM_API_URL, DEFAULT_CLIENT_ROLE, SYSTEMD_SERVICE_NAME.METASERVICE_ID и PLATFORM_API_KEY.METASERVICE-ADMIN на сервисе.PLATFORM_INTEGRATION=1.