Автоматическая синхронизация

По умолчанию Elph Chat Server синхронизирует БД пользователей с Keycloak каждые 10 минут. Вы можете включить/выключить синхронизацию или изменить интервал между синхронизациями. Для этого необходимо перенастроить Elph Chat Server, указав следующие значения в .env файле для docker-compose:

KEYCLOAK_ELPH_CHAT_SYNC_ENABLED=true
KEYCLOAK_ELPH_CHAT_SYNC_INTERVAL=10000 #значение в миллисекундах

После перенастройки .env файла необходимо перезапустить контейнеры ECSS Chat Server:

<path-to-install-script>/ecss-elph-chat-server.sh stop
<path-to-install-script>/ecss-elph-chat-server.sh up

Ручная синхронизация

При необходимости вы можете вручную запустить синхронизацию с Keycloak с базой данных Elph Chat Server.

Синхронизация базы данных Elph Chat Server с Keycloak

Для синхронизации необходимо чтобы на Elph Chat Server был создан пользователь admin.help.bot.

Включение admin.help.bot описано на странице «Пользователь admin.help.bot».

В первую очередь необходимо авторизоваться как admin.help.bot с помощью POST запроса:

curl -X POST -H "Content-Type: application/json" -d \
'{"user": "admin.help.bot", "password": "password"}' \
-c cookies.txt \
https://<elph-proxy_ipaddress>/elph_chat/api/v1/login

Если у вас самоподписанный сертификат, необходимо отключить проверку сертификатов curl с помощью опции: -k
Результат:

{"status":"success","data":{"userId":"admin.help.bot","authToken":"your-auth-token","authTokenExpires":1765264202000,"me":{"_id":"admin.help.bot","roles":["admin","bot"],"active":true,"createdAt":"2025-12-08T02:36:45.559Z","type":"bot","preferences":[{"key":"showFolders","value":["c","a"]}],"name":"Система","username":"admin.help.bot","statusText":"Система Elph-chat","_updatedAt":"2025-12-09T06:09:58.023Z","avatarUrl":"avatars/systemuser.png"}}

После этого синхронизируем БД ECSS Chat Server с Keycloak:

curl -X POST -b cookies.txt \
https://<elph-proxy_ipaddress>/elph_chat/api/v1/keycloak.sync

Результат:

{"success":true}

При успешной синхронизации в поиске при создании чата пользователь начнет отображаться в формате: Имя@Номер.

Синхронизация базы данных ECSS Address book с Keycloak

Перейдите в контейнер address-book-server:

$ docker exec -it address-book-server bash

Перейдите в оболочку Erlang:

# ./ecss_address_book remote --name ecss_address_book

И выполните команду для запуска миграции Keycloak (дождитесь завершения процесса):

EcssAddressBookCore.Actions.KkImport.import

Общее количество импортируемых контактов можно посмотреть с помощью команды:

EcssAddressBookDb.Actions.Contacts.count(%{})

Чтобы выйти из оболочки Erlang и из контейнера, нажмите Ctrl+C два раза, затем Ctrl+D.

Подробная настройка ECSS Address Book с Keycloak описана на странице «Настройка режима авторизации».

  • Нет меток