Инструменты пользователя

Инструменты сайта


instrukcija_po_registracii_servisa_na_platforme

Подключение своего ShariX Open к Платформе ShariX

Инструкция для владельца сервиса, у которого уже установлен ShariX Open и который хочет подключить его к Платформе ShariX.

Что получится после настройки

После подключения:

  • сервис появится на платформе;
  • владелец сервиса получит права администратора сервиса;
  • пользователи смогут подключать сервис через платформу;
  • новые пользователи смогут регистрироваться на сервисе с синхронизацией профиля;
  • изменения профиля и пароля смогут передаваться через платформу на другие подключенные сервисы.

1. Подготовьте сервис

Выполняется на сервере, где установлен 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 перезапустите сервис.

Если доступен веб-интерфейс администратора:

  1. Войдите в Django admin сервиса.
  2. Откройте раздел Visual settings.
  3. Нажмите кнопку Перезапустить сервис.
  4. Подтвердите перезапуск.

Если кнопка перезапуска не работает, проверьте SYSTEMD_SERVICE_NAME в .env. Значение должно совпадать с именем systemd-сервиса без .service.

Пример:

SYSTEMD_SERVICE_NAME=sharix_main

Для ручного перезапуска через сервер:

systemctl restart sharix_main.service

2. Сгенерируйте на сервисе ключ для платформы

Выполняется в интерфейсе сервиса ShariX Open.

  1. Войдите на сервис под администратором.
  2. Откройте кабинет метасервиса.
  3. Нажмите кнопку генерации API-ключа для платформы.
  4. Скопируйте полученный ключ.

Этот ключ нужен платформе, чтобы обращаться к вашему сервису.

Если DEBUG=True, ключ может отображаться в кабинете сервиса, чтобы его было удобно скопировать.

Если DEBUG=False, ключ может быть показан только один раз сразу после генерации. Скопируйте его сразу.

3. Создайте сервис на платформе

Выполняется на Платформе ShariX.

  1. Войдите на платформу под пользователем, который будет владельцем сервиса.
  2. Откройте раздел создания сервиса.
  3. Создайте сервис и заполните основные данные:
    • название;
    • юридическое название;
    • ИНН;
    • реквизиты;
    • описание;
    • адрес сайта сервиса.

На этапе первичного создания на платформе может не быть поля для ключа синхронизации. Это нормально.

Сначала создайте сервис. После создания откройте карточку или форму редактирования сервиса и внесите данные интеграции.

4. Заполните на платформе данные для связи с сервисом

Выполняется на платформе, в карточке или форме редактирования созданного сервиса.

Нужно заполнить два значения.

Что заполнить на платформе Что туда вставить
API URL сервиса Адрес API вашего сервиса. Например: https://open.example.org/my/api/.
Ключ доступа к сервису / ключ синхронизации Ключ, который вы сгенерировали на сервисе на шаге 2.

Пример:

API URL сервиса: https://open.example.org/my/api/
Ключ доступа к сервису: скопированный_ключ_с_сервиса

Сохраните карточку сервиса.

5. Передайте сервису ключ платформы

После создания сервиса платформа генерирует ключ, с которым ваш сервис сможет обращаться к API платформы.

Этот ключ должен попасть на сервис в .env:

PLATFORM_API_KEY=ключ_выданный_платформой

Также сервис должен знать свой ID на платформе:

METASERVICE_ID=ID_сервиса_на_платформе

Есть два способа заполнить эти значения.

Способ 1. Автоматически через кнопку на платформе

Используйте этот способ, если уже заполнены:

  • API URL сервиса;
  • ключ доступа платформы к сервису;
  • сервис доступен с платформы.

В карточке или форме редактирования сервиса на платформе нажмите кнопку обновления настроек сервиса, если она доступна.

После этого платформа сама запишет на сервис в .env:

METASERVICE_ID=ID_сервиса_на_платформе
PLATFORM_API_KEY=ключ_выданный_платформой

После записи настроек перезапустите сервис.

На сервисе это можно сделать через:

  1. Django admin;
  2. Visual settings;
  3. кнопку Перезапустить сервис.

Способ 2. Вручную через .env

Если автоматическая кнопка недоступна или не сработала, внесите значения вручную в .env сервиса:

METASERVICE_ID=ID_сервиса_на_платформе
PLATFORM_API_KEY=ключ_выданный_платформой

После этого перезапустите сервис.

6. Назначьте администратора сервиса

После того как платформа может обращаться к сервису, она назначает владельца сервиса администратором сервиса.

Обычно это происходит после сохранения настроек интеграции на платформе.

В результате на сервисе должно быть так:

  • пользователь-владелец сервиса создан или обновлен;
  • у него есть роль METASERVICE-ADMIN;
  • тестовый пользователь 2101 больше не является METASERVICE-ADMIN;
  • других лишних METASERVICE-ADMIN нет.

Проверьте это в кабинете метасервиса на сервисе.

Если на сервисе найдено больше одного METASERVICE-ADMIN, в кабинете должно появиться предупреждение и кнопки для снятия лишних прав.

Оставьте одного администратора сервиса.

7. Проверьте состояние подключения

На сервисе проверьте .env:

PLATFORM_INTEGRATION=2
PLATFORM_API_URL=https://адрес-платформы/my/api/
METASERVICE_ID=ID_сервиса_на_платформе
PLATFORM_API_KEY=ключ_выданный_платформой

На платформе в карточке сервиса проверьте:

  • API URL сервиса заполнен;
  • ключ доступа к сервису заполнен;
  • сервис не находится в аварийном режиме;
  • текущий владелец сервиса соответствует администратору на сервисе.

На сервисе проверьте:

  • кабинет метасервиса открывается;
  • нет предупреждения о нескольких METASERVICE-ADMIN;
  • Testkit, если подключен, открывается;
  • регистрация пользователя работает.

8. Переведите сервис в активный режим

Когда все проверки прошли успешно, измените на сервисе .env:

PLATFORM_INTEGRATION=1

Перезапустите сервис.

После этого сервис работает в активном режиме синхронизации.

9. Проверьте регистрацию пользователя

Проверьте сценарий самостоятельной регистрации на сервисе.

Если в .env:

DEFAULT_CLIENT_ROLE=METASERVICE-CLIENT
PLATFORM_INTEGRATION=1

то на форме регистрации пользователь сможет выбрать синхронизацию с платформой.

Ожидаемое поведение:

Ситуация Что должно произойти
Пользователь выбрал синхронизацию, и на платформе его еще нет Пользователь создается на сервисе и на платформе.
Пользователь выбрал синхронизацию, но уже есть на платформе Сервис предлагает перейти на платформу и подключить сервис там.
Пользователь не выбрал синхронизацию Пользователь создается локально на сервисе.
Платформа временно недоступна Пользователь создается локально, синхронизация отключается, показывается предупреждение.

10. Проверьте подключение существующего пользователя платформы

Выполняется на платформе.

  1. Войдите на платформу под пользователем, который уже существует на платформе.
  2. Откройте список сервисов.
  3. Найдите ваш сервис.
  4. Нажмите подключение сервиса.

Ожидаемое поведение:

  • платформа создаст или обновит пользователя на сервисе;
  • на платформе появится активная связь пользователя с сервисом;
  • на сервисе у пользователя появится запись клиента;
  • синхронизация профиля будет включена.

11. Проверьте синхронизацию профиля

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

Если синхронизация доступна, в профиле должна быть кнопка включения или отключения синхронизации с платформой.

Проверьте:

  1. Включите синхронизацию.
  2. Измените имя или email.
  3. Сохраните профиль.
  4. Проверьте, что изменение появилось на платформе.

Если пользователь подключен к нескольким сервисам, платформа попробует передать изменение на остальные сервисы.

Если какой-то сервис не принял изменение:

  • изменение у пользователя не откатывается;
  • проблемный сервис переводится в аварийный режим;
  • пользователю показывается предупреждение.

12. Проверьте смену пароля

На сервисе смените пароль пользователя.

Если синхронизация включена:

  • пароль меняется на сервисе;
  • сервис передает изменение на платформу;
  • платформа пробует передать изменение на другие подключенные сервисы.

Если один из связанных сервисов недоступен:

  • пароль у пользователя все равно меняется;
  • недоступный сервис переводится в аварийный режим;
  • пользователь получает предупреждение о проблеме синхронизации.

13. Если сервис попал в аварийный режим

Аварийный режим означает, что платформа пыталась синхронизироваться с сервисом, но сервис не ответил корректно.

Проверьте по порядку:

  1. Открывается ли сервис в браузере.
  2. Правильно ли указан API URL сервиса на платформе.
  3. Правильно ли вставлен ключ доступа к сервису на платформе.
  4. Правильно ли указан PLATFORM_API_URL на сервисе.
  5. Есть ли на сервисе METASERVICE_ID.
  6. Есть ли на сервисе PLATFORM_API_KEY.
  7. Ровно ли один пользователь имеет роль METASERVICE-ADMIN.
  8. Перезапущен ли сервис после изменения .env.

После исправления снова сохраните настройки интеграции на платформе или повторите проверку подключения.

14. Короткий порядок действий

  1. На сервисе в .env указать DEBUG=True, PLATFORM_INTEGRATION=2, PLATFORM_API_URL, DEFAULT_CLIENT_ROLE, SYSTEMD_SERVICE_NAME.
  2. Перезапустить сервис.
  3. На сервисе сгенерировать ключ доступа платформы к сервису.
  4. На платформе создать сервис.
  5. На платформе открыть созданный сервис и заполнить API URL сервиса.
  6. На платформе вставить ключ, сгенерированный на сервисе.
  7. Сохранить сервис.
  8. На платформе обновить настройки сервиса, чтобы на сервис попали METASERVICE_ID и PLATFORM_API_KEY.
  9. Перезапустить сервис.
  10. Проверить, что владелец стал единственным METASERVICE-ADMIN на сервисе.
  11. Проверить регистрацию пользователя.
  12. Проверить подключение пользователя с платформы.
  13. Проверить изменение профиля.
  14. Проверить смену пароля.
  15. Перевести сервис в PLATFORM_INTEGRATION=1.
  16. Перезапустить сервис.
instrukcija_po_registracii_servisa_na_platforme.txt · Последнее изменение: sharixadmin

© 2022 ShariX