Управляет только своими Приложения
Связь с аккаунтом Workspace проверяется при каждом запросе управления.
Pulse Media проверяет доступ на сервере, связывает файл с приложением и средой, контролирует жизненный цикл и отдельно проверяет безопасную выдачу.
Пространство имён, приложение, права и среда определяются на сервере по ключу доступа.
Чтобы сделать файл публичным, нужны отдельные права; закрытые файлы выдаются только через контролируемый механизм.
Перед физическим удалением проверяются основание для хранения, привязки и состояние жизненного цикла.
Обработка опирается на проверенную структуру файла; имя и MIME-тип используются только как дополнительные сигналы.
API сохраняет серверный признак принадлежности файла конкретному приложению и среде. Клиентские сведения о владельце участвуют в управлении файлом, а серверная принадлежность остаётся границей доступа.
Связь с аккаунтом Workspace проверяется при каждом запросе управления.
Чтение или удаление чужого объекта возвращает «не найдено», даже если переданы совпадающие сведения о владельце.
Область среды определяется ключом доступа и сохраняется вместе с файлом.
Для этого существует короткоживущее разрешение на прямую загрузку: с ограничением размера, необязательным разрешённым сайтом, сроком действия и созданным сервером ключом идемпотентности.
pulse_sk хранится только в серверном окружении.
Браузер получает только pulse_ug, ограниченный конкретной операцией.
Разрешение на загрузку не может читать другие файлы, менять видимость, управлять ключами доступа или расширять
выданные сервером права.
Выдача добавляет nosniff, безопасный Content-Disposition и предсказуемый ETag. Для потенциально опасных установочных пакетов и обновлений существует отдельное состояние проверки до публичной выдачи.
Для подписи вебхука используются время события, исходное тело запроса и HMAC-SHA256. SDK проверяет допустимый возраст события, подпись и сравнивает её безопасным способом; JSON разбирается только после успешной проверки.
timestamp parse → tolerance check → HMAC(timestamp + "." + raw_body) → constant-time compare → JSON decode