Формат, общий для всех клиентов LogDB (Elixir logdb_client, CLI, PHP, веб-консоль):
всё о подключении к шине в одной строке и одной переменной окружения, как
DATABASE_URL у Postgres или nats://token@host у NATS.
Место этого документа — справочник для потребителей (сайт logdb-docs); здесь он
лежит, пока туда не перенесён. Реализация в Elixir — LogDB.Client.ConnectionString.
Формат
logdb[s]://[токен@]хост[:порт][/стрим/консьюмер][?параметры]| Часть | Значение |
|---|---|
logdb / logdbs | без TLS / с TLS (ws/http → wss/https) |
токен@ | токен сервиса; необязателен — клиент может принять его отдельно |
хост[:порт] | шина; порт по умолчанию — 4000 у logdb, 443 у logdbs (TLS снимает прокси перед шиной) |
/стрим/консьюмер | какой консьюмер читать; имя без префикса сервиса — сервис шина знает по токену. Нет пути — клиент только публикует |
Параметры:
| Параметр | Значения | Значение |
|---|---|---|
transport | ws, http, hybrid, erlangd | чем подключаться; по умолчанию решает клиент (Elixir — http) |
node | logdb или logdb@host | нода шины для erlangd; короткое имя дополняется хостом строки |
node_name | как node | прежнее имя node; если заданы оба — должны совпадать |
client | строка | имя экземпляра клиента, видно в консоли LogDB (по умолчанию — имя ноды или хоста) |
Правила
- Неизвестный параметр — ошибка, а не молчание: опечатка не должна давать клиент, который подключился «не туда».
- Значения не приводятся к типам (
yes— это строкаyes). - Токен с зарезервированными символами (
/,+,=,@,:) кодируется процентами (a%2Fb). - Если клиент принимает те же части и отдельными опциями (токен, транспорт, консьюмер…), заданное и там, и там должно совпадать — иначе ошибка, а не тихий приоритет одного из источников.
- Строка содержит секрет: печатая её (логи,
inspect, консоль), клиент скрывает токен —logdb://***@bus/....
Примеры
logdbs://s3cr3t@bus.hayot.uz/default/rkp_core?transport=ws консьюмер по WS, TLS
logdb://s3cr3t@10.60.10.249:4000?transport=erlangd&node=logdb erlangd, только публикация
logdb://s3cr3t@bus:4000/default/jobs?transport=http pull-консьюмер, long-poll
logdb://bus:4000?node_name=logdb прежняя форма; токен — отдельно