Skip to main content

Хранилище и политики хранения

Актуально для: SimpleTwo 0.9.x · Проверено: 20.09.2026

1. Где лежат байты

ЧтоГде по умолчаниюЧем заменяется
Вложения перепискидиск хоста messagingроль s3 или внешнее S3-совместимое хранилище
Аватарытам же, где вложения
Записи встречобъектное хранилищеотдельный бакет и префикс: Settings → Recording
База переписки и календарейроль postgresвнешний кластер Postgres
Шинароль redisвнешний Redis
База плоскости управления, сертификаты, сборки клиентовтом данных координатора

Диск хоста messaging годится на старте и перестаёт годиться в трёх случаях: вложения не помещаются на один диск, нужны несколько реплик службы переписки (тогда файл, записанный одной, не виден остальным) или нужны записи встреч.

Внешние Postgres и Redis подключаются в Settings → External stores — готовыми строками подключения. Не одной административной учётной записью, из которой мы сами создадим базу: создание базы и роли требует прав, которых администратор чужого кластера не выдаёт, а мы не хотим наполовину создавать что-то на кластере, который нам не принадлежит.

Хосты redis и s3 закрываются фаерволом, а не доверием

Ни у того, ни у другого нет собственной аутентификации, достаточной, чтобы стоять открытыми даже в приватной сети. Установка роли s3 на хост без фаервола отклоняется.

2. Шифрование содержимого при хранении

Включается тенантом и состоит из трёх шагов, порядок которых не случаен:

  1. Мастер-ключ заводится в консоли и записывается в файл вне каталога данных.
  2. Лист восстановления печатается до того, как ключом что-то запечатано.
  3. Две группы с листа вводятся обратно — только после этого шифрование включается.

Так закрыто единственное состояние, в котором система не должна оказываться: ключ, которым запечатаны строки, и ни одной копии, которую кто-то может прочитать.

Что шифруетсяЧто не шифруется
тела сообщенийимена вложений
расшифровки встречметаданные: кто, когда, в какой беседе

Поиск продолжает работать: он идёт по токенам, которые считаются отдельным ключом, а не по тексту. Ключ поиска и ключ шифрования разные намеренно — индекс по своей природе протекает (одинаковые слова дают одинаковые токены), и такая утечка не должна быть утечкой шифра.

Три свойства, о которых спрашивают:

  • Старые строки остаются как есть. Включение не переписывает базу задним числом; хранилище живёт смешанным, а чтение понимает обе формы.
  • Секретные чаты не при чём. Они зашифрованы клиентом, и сервер их и так не читает.
  • Ключ хранится вне каталога данных — иначе резервная копия данных увозит с собой и ключ от них. Смотрите обновление и бэкап.

3. Сроки хранения

ПолитикаПо умолчаниюГде
Хранение сообщенийбессрочноMSG_RETENTION_DAYS
Ревизии журнала беседы10 000MSG_CONVLOG_KEEP
Записи встречне удаляются автоматическиполитика жизненного цикла вашего хранилища

Ограничение журнала ревизий и удаление переписки — разные решения. Первое экономит место, второе выполняет требование по срокам хранения. Организация, которой нужно удалять сообщения, задаёт это явно: по умолчанию не удаляется ничего.

4. Аватары

Фотографии берутся из каталога (синхронизация из AD) либо загружаются людьми самостоятельно — это политика организации: Settings → avatar policy. Смешанный режим — обычный случай: каталог даёт фотографию по умолчанию, человек может заменить её своей, если это разрешено.

5. Сколько места нужно

0,8 ГБ на человека в год по профилю нагрузки (8 файлов в рабочий день, в среднем 400 КБ). Записи встреч считаются сверх этого и по своим правилам — подробности и таблица по размерам организации в сайзинге.

6. Что хранится на устройствах

Клиент держит свою копию: базу сообщений, поисковый индекс и кеш медиа. Два рычага, и оба — ваши:

  • Глубина офлайна — сколько бесед и сколько сообщений в каждой клиент подтягивает заранее. Задаётся организацией (консоль → sync depth) и передаётся клиенту вместе с остальными настройками. Три состояния: число, явный ноль (не подгружать ничего) и молчание — тогда клиент берёт своё умолчание. Ноль и молчание различаются намеренно: администратор, который ни разу не открывал этот экран, не должен выглядеть как тот, кто выключил подгрузку.
  • Потолок кеша на устройстве человек задаёт сам; он же видит, сколько занято, и может очистить медиа, не трогая переписку.

Люди с трёхстами комнат в день и команда из шести человек хотят разной глубины, поэтому это настройка организации, а не константа продукта.

Дальше