LogDB.Client.ConnectionString (logdb_client v0.3.0)

Copy Markdown View Source

Строка подключения к LogDB — всё о подключении в одной строке (одна переменная окружения, как DATABASE_URL):

logdb[s]://[токен@]хост[:порт][/стрим/консьюмер][?transport=…&node=…&client=…]
  • logdbs — TLS (wss/https); порт по умолчанию — 4000 у logdb, 443 у logdbs (TLS снимает прокси перед шиной);
  • токен — токен сервиса; необязателен, можно передать опцией token:;
  • /стрим/консьюмер — какой консьюмер читать (consumer: "стрим/имя");
  • transport — ws, http, hybrid или erlangd;
  • node — имя ноды шины для erlangd: logdb (тогда logdb@хост) или полное logdb@host; node_name — прежнее имя того же параметра;
  • client — имя экземпляра клиента (client_name:).

Неизвестный параметр — ошибка. Формат общий для всех клиентов LogDB — docs/connection-string.md (место — справочник logdb-docs).

Токен в выводе (format/2, inspect конфига) скрыт.

Summary

Functions

Порт по умолчанию: 4000, с TLS — 443.

Собрать строку. Токен скрыт (***), если не передать reveal_token: true.

Разобрать строку: {:ok, map} с заданными в ней частями или {:error, причина}.

Модуль транспорта по имени из строки ("ws" → Transport.WebSocket).

Types

parsed()

@type parsed() :: %{
  :host => String.t(),
  :port => pos_integer(),
  :secure => boolean(),
  optional(:token) => String.t(),
  optional(:consumer) => String.t(),
  optional(:transport) => module(),
  optional(:node) => String.t(),
  optional(:client_name) => String.t()
}

Functions

default_port(secure)

Порт по умолчанию: 4000, с TLS — 443.

format(c, opts \\ [])

@spec format(map(), keyword()) :: String.t()

Собрать строку. Токен скрыт (***), если не передать reveal_token: true.

parse(string)

@spec parse(String.t()) :: {:ok, parsed()} | {:error, String.t()}

Разобрать строку: {:ok, map} с заданными в ней частями или {:error, причина}.

transport(name)

Модуль транспорта по имени из строки ("ws" → Transport.WebSocket).