Автоматическая синхронизация
По умолчанию 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 описана на странице «Настройка режима авторизации».