Автоматическая синхронизация
По умолчанию Elph Chat Server синхронизирует БД пользователей с Keycloak каждые 10 минут. Вы можете включить/выключить синхронизацию или изменить интервал между синхронизациями. Для этого необходимо перенастроить Elph Chat Server, указав следующие значения в .env файле для docker-compose:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
KEYCLOAK_ELPH_CHAT_SYNC_ENABLED=true
KEYCLOAK_ELPH_CHAT_SYNC_INTERVAL=10000 #значение в миллисекундах |
После перенастройки .env файла необходимо перезапустить контейнеры ECSS Chat Server:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
<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 запроса:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
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
Результат:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
{"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:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
curl -X POST -b cookies.txt \
https://<elph-proxy_ipaddress>/elph_chat/api/v1/keycloak.sync |
Результат:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
{"success":true} |
При успешной синхронизации в поиске при создании чата пользователь начнет отображаться в формате: Имя@Номер.
Синхронизация базы данных ECSS Address book с Keycloak
Перейдите в контейнер address-book-server:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
$ docker exec -it address-book-server bash |
Перейдите в оболочку Erlang:
| Блок кода |
|---|
| language | bash |
|---|
| theme | Midnight |
|---|
|
# ./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 описана на странице «Настройка режима авторизации».