Подключение к хранилищу (storage)

Описание

Определяет параметры доступа к конкретному хранилищу для использования платформой.
Определяет тип (type). Данные могут располагаться в кластерах postgresql, kafka, clickhouse. Файлы - в s3, fs, nfs, fsync.
Задает код (instance) и позволяет на него ссылаться при настройке классов модели данных.
Элемент с instance = auto создается автоматически.

Поля

Структура сущности
{
  "id": uuid,
  "name": str,
  "instance": str,
  "params": object,
  "opts": {
    "title": str,
    "comment": str
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой.

Поле: type
Режим: in
Тип: str
По умолчанию: required

Код. Используется для ассоциирования с другими сущностями.

  • postgresql. Экземпляр реляционной БД postgresql. Несколько экземпляров с одним и тем же значением instance считаются репликами друг друга.

  • kafka. Кластер Kafka. Одна сущность определяет сразу несколько брокеров кластера.

  • clickhouse. Сервер кластера аналитической колоночной БД Clickhouse. Несколько экземпляров с одним и тем же значением instance считаются серверами одного кластера.

  • s3. Файловое хранилище S3. Может использоваться как сервером модели данных (dms), так и для хранения записей разговоров.

  • nfs. Файловое хранилище на сетевом диске, доступном из любой ноды как папка на текущем сервере.

  • fs. Файловое хранилище, организованное на нескольких серверах, где располагаются экземпляры роли файлового сервера (или middleware при его отсутствии).

  • fsync. Файловое хранилище в синхронизируемой папке. Синхронизация происходит в течение 10 секунд на все серверы сайта и других сайтов, где обслуживается домен.

Поле: instance
Режим: in
Тип: str
По умолчанию: required

Имя хранилища. Используется при связывании с классами.

Хранилища со значением auto генерируются и применяются автоматически в случае их отсутствия в коллекции в явном виде.
Данные размещаются в хранилищах с типом postgresql (для табличных данных) и fs (для файлов вложений).

Поле: params
Режим: in
Тип: object
По умолчанию: required

Параметры конкретного хранилища.

  • Для postgresql: 'host', 'port', 'login', 'pwd', 'database', (опционально 'max_connections' - по умолчанию 10, что применяется раздельно для пользовательских вызовов и для вызовов из системы и из под токенов).

  • Для kafka: 'endpoints'. Каждый endpoint содержит 'host', 'port'. (опционально 'send_mode' - режим отправки сообщений в брокер KAFKA ('sync' или 'async', по умолчанию 'sync'), 'partition_count' - количество партиций для топика (по умолчанию берется из класса),'replication_factor' - количество реплик для топика (по умолчанию берется из класса) ).

  • Для clickhouse: 'cluster', 'host', 'login', 'password', 'port'.

  • Для s3: 'bucket', 'keyId', 'secretKey', (опционально 'region', 'endpoint', 'prefix').

  • Для nfs: 'configkey', 'prefix'. configkey: 'globalshare', 'siteshare', 'local'.

  • Для fs: 'prefix'

  • Для fsync: 'prefix'.

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: empty
По умолчанию: "

Произвольный комментарий

Поле: ext
Режим: inout
Тип: object
Составное поле

Позволяет расширять состав произвольными ключами и значениями

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

См. также