Обзор
Adal ограниченное время хранит принятые вебхуки, чтобы их можно было просматривать, доставлять настроенным получателям, отправлять повторно и изучать историю доставки.
У каждого сервера есть регион и срок хранения, определяемый тарифом. Данные принятого запроса хранятся до окончания его индивидуального срока.
Удаление сервера немедленно останавливает приём и удаляет получателей. Ранее принятые запросы сохраняются до запланированной даты удаления.
Здесь описано, что хранит Adal, как обрабатываются отклонённые запросы, как работает срок хранения и что происходит при удалении данных.
Что хранит Adal
Adal хранит данные, необходимые для приёма и доставки вебхуков, истории запросов и доступа к аккаунту.
Запросы вебхуков
Для каждого принятого запроса Adal хранит:
- полный URI с путём и строкой запроса;
- заголовки;
- тело;
- IP-адрес отправителя;
- дату и время получения;
- принявший сервер;
- попытки доставки и их результаты, включая статус или ошибку, например 200 OK or 404 Not Found
Версия HTTP отдельно не хранится. User-Agent сохраняется в составе заголовков запроса.
Adal не хранит заголовки и тела ответов получателей, а также отдельные сведения о TLS и IP прокси.
Серверы
Для каждого сервера Adal хранит:
- выбранный регион;
- название;
- URL приёма;
- разрешённые HTTP-методы;
- примечания пользователя;
- хеш токена Adal CLI.
Исходный токен CLI не хранится. При подключении переданный токен хешируется и сравнивается с хешем.
Получатели
Для каждого получателя Adal хранит:
- связь с сервером;
- регион связанного сервера;
- тип доставки: Direct HTTP или Adal CLI;
- указанный пользователем URL;
- максимальное число попыток;
- интервал доставки;
- примечания.
Данные аккаунта
Для каждого аккаунта Adal хранит:
- дату регистрации;
- адрес электронной почты;
- имя пользователя;
- хеш пароля при аутентификации по почте и паролю.
Для аккаунта через Google или GitHub сохраняются поставщик идентификации и переданные им данные.
Аутентификация и сессии
Для поддержки сессий Adal хранит refresh-токены в зашифрованном виде.
Временные access-токены действуют пять минут, используются для доступа к данным аккаунта и не хранятся как долгосрочные учётные данные сессии.
Что Adal не хранит
Adal не хранит данные, которые не нужны для приёма, доставки и просмотра вебхуков.
Adal не хранит:
- пароли в исходном виде;
- токены Adal CLI в исходном виде;
- версию HTTP как отдельное поле;
- заголовки и тела ответов получателей;
- сведения о TLS-соединении;
- IP прокси как отдельные метаданные;
- User-Agent как отдельное поле, поскольку он входит в сохранённые заголовки
Для отклонённых запросов сохраняются только время, HTTP-метод и причина отказа, без URI, заголовков, тела и IP отправителя.
Adal не получает и не хранит полные данные платёжных карт. Платежи обрабатывает платёжный провайдер.
Отклонённые запросы
Adal отклоняет запрос, если он не соответствует требованиям сервера или аккаунта.
Запрос может быть отклонён, если:
- HTTP-метод не разрешён;
- размер превышает лимит тарифа;
- у аккаунта нет кредитов;
- сервер удалён или недоступен;
- обработке мешает ошибка проверки или сервиса.
Для устранения неполадок сохраняются только:
- дата и время отказа;
- HTTP-метод;
- причина отказа.
URI, заголовки, тело, IP отправителя и данные доставки не сохраняются.
Отклонённые запросы не доставляются, не отправляются повторно и не расходуют кредиты.
Где хранятся данные
Данные запросов хранятся в выбранном для сервера регионе.
Метаданные и сведения о доставке остаются в регионе приёма. Тела находятся в объектном хранилище, ограниченном юрисдикцией этого региона.
Например, метаданные запроса сервера в se1 остаются в Швеции, а тело — в хранилище, ограниченном Западной Европой.
Тела запросов
Тела хранятся в объектном хранилище Cloudflare R2.
Для регионов используются отдельные бакеты R2:
- Швеция и Германия — хранилище в Западной Европе;
- Казахстан — хранилище в Азиатско-Тихоокеанском регионе.
У каждого бакета отдельные учётные данные; сервисы имеют доступ только к бакету своего региона.
Метаданные запросов и доставки
Метаданные хранятся в управляемых Adal базах данных в регионе сервера.
В том числе:
- URI, заголовки, IP отправителя и время получения;
- статус и срок хранения;
- попытки, статусы и ошибки доставки;
- региональные записи получателей и их настройки.
Данные получателя хранятся только в регионе связанного сервера.
Централизованные записи серверов
Ограниченная часть настроек хранится централизованно, а не в региональной базе запросов.
В том числе:
- название сервера;
- URL приёма;
- хеш токена Adal CLI;
- примечания.
Централизованные записи не содержат тела, URI, заголовки, IP отправителя, историю доставки и получателей.
Статистика использования
Adal централизованно собирает ограниченную статистику для расчёта использования и отображения в аккаунте.
Она не содержит тела, URI, заголовки, IP отправителя, идентификаторы и настройки получателей.
Например, может фиксироваться расход одного кредита сервером или общий расход региона за период.
Срок хранения
Принятые запросы хранятся ограниченный срок, определяемый тарифом.
Срок начинается с момента принятия запроса.
У каждого запроса своя дата удаления, указанная на его странице в панели Adal.
После окончания срока Adal безвозвратно удаляет запрос, включая тело, URI, заголовки, IP, историю и записи попыток доставки.
Такие запросы нельзя восстановить, отправить или доставить повторно.
Удаление сервера
Удаление сервера немедленно прекращает приём новых запросов.
Adal использует мягкое удаление: сервер исчезает из панели и больше не работает, но его URL навсегда остаётся зарезервированным и не выдаётся другому аккаунту.
Это не позволяет удалённому URL впоследствии принять вебхуки, предназначенные прежнему владельцу.
При удалении сервера:
- прекращается приём новых запросов;
- все получатели удаляются безвозвратно;
- ожидающие доставки отменяются;
- попытки и связанные данные доставки удаляются;
- сервер исчезает из панели и не используется для новых доставок.
Сохранённые запросы не удаляются сразу и остаются до окончания индивидуального срока хранения.
Пока запросы хранятся, поддержка Adal может восстановить сервер по обращению. Восстановление возможно только до истечения срока и не возвращает получателей, попытки и безвозвратно удалённые данные.
После окончания срока оставшиеся данные удаляются безвозвратно.
Ограничения размера запроса
Максимальный размер зависит от тарифа. Лимиты указаны на странице тарифов.
Adal рассчитывает размер всего входящего запроса:
Ограничение применяется ко всему запросу, а не только к телу.
Если лимит превышен, Adal отклоняет запрос до сохранения содержимого. Он не доставляется и не расходует кредиты.
После повышения тарифа новый лимит действует только для последующих запросов. Ранее отклонённые запросы не сохраняются и не восстанавливаются автоматически.
Безопасность и доступ
Доступ защищён аутентификацией, краткосрочными учётными данными, шифрованием соединений и изоляцией региональных хранилищ.
Доступ к аккаунту
Каждый аккаунт Adal связан с подтверждённым адресом электронной почты.
При регистрации по почте и паролю необходимо подтвердить адрес до входа в панель.
Аккаунты через Google или GitHub используют данные, предоставленные выбранным провайдером.
Данные доступны только аккаунту — владельцу сервера. Аккаунт не может получить доступ к серверам, запросам, получателям и доставкам другого аккаунта.
Учётные данные и сессии
Adal не хранит пароли и токены Adal CLI в исходном виде.
- пароли хранятся как хеши;
- токены Adal CLI хешируются и проверяются сравнением хешей;
- refresh-токены хранятся в зашифрованном виде;
- access-токены действуют пять минут.
Зашифрованные соединения
Все соединения с Adal шифруются при передаче:
- панель и API используют HTTPS;
- Adal CLI — WSS или gRPC с TLS в зависимости от типа;
- внутренние сервисы используют TLS там, где это применимо.
Содержимое запросов и журналы
Операционное журналирование Adal намеренно сведено к минимуму.
Тела, заголовки, URI, IP отправителей и другое содержимое не попадают в обычные журналы. Записываются только операционные и критические ошибки, необходимые для анализа сбоев.
Доступ к региональным хранилищам
Тела хранятся в отдельных региональных бакетах. У каждого региона собственные учётные данные, ограниченные назначенным ему хранилищем.
Региональные сервисы не используют общие учётные данные с доступом ко всем регионам.
Доступ оператора сервиса
В Adal нет внутренней административной панели для просмотра запросов клиентов.
Оператор может иметь прямой доступ к инфраструктуре для обслуживания, защиты и устранения неполадок. Он недоступен другим пользователям и не применяется для рекламы, профилирования или посторонних целей.
Двухфакторная аутентификация для аккаунтов Adal пока недоступна.