Перейти к основному содержимому

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

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

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

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

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

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

Состояние шины Redis, её настройка, смена пароля и TLS для внешнего Redis — на странице Шина координации (Redis).

Хосты 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) и передаётся клиенту вместе с остальными настройками. Три состояния: число, явный ноль (не подгружать ничего) и молчание — тогда клиент берёт своё умолчание. Ноль и молчание различаются намеренно: администратор, который ни разу не открывал этот экран, не должен выглядеть как тот, кто выключил подгрузку.
  • Потолок кеша на устройстве человек задаёт сам; он же видит, сколько занято, и может очистить медиа, не трогая переписку.

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

Дальше​