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

Заголовки для аудита: X-AUDIT-USER-ID и X-META-*

Чтобы связать событие аудита с пользователем, сессией или другими данными из вашего приложения, вы можете передавать в API-запросах на маскирование специальные HTTP-заголовки.

Поддерживаются два типа заголовков (вы можете использовать один из них или оба одновременно):

  • X-AUDIT-USER-ID — идентификатор пользователя, для которого выполняется запрос.
  • X-META-* — произвольный набор атрибутов.

Данные из этих заголовков Jay Guard сохранит в журнал аудита вместе с событием. На результат запроса они не влияют.

X-AUDIT-USER-ID

Значение заголовка сохраняется в поле userId события аудита и доступно:

X-META-*

Заголовки с префиксом X-META- позволяют добавить к событию аудита произвольные атрибуты, специфичные для вашего приложения: идентификатор сессии, источник запроса и т. п.

Значения сохраняются в поле meta события аудита в виде JSON-объекта и доступны:

Имена заголовков преобразуются в UpperCamelCase, например: X-META-SESSION-IDSessionId.

Ограничения:

  • В одном запросе можно передать не более 5 заголовков с этим префиксом.
  • Длина имени заголовка (вместе с префиксом) — не более 100 символов.
  • Длина значения — не более 500 символов.

В каких методах работает

Заголовки X-AUDIT-USER-ID и X-META-* обрабатываются следующими методами:

МетодНазначение
POST /api/dataguard/public/user-masking/maskМаскирование сущностей в тексте.
POST /api/dataguard/public/user-masking/{service}/maskМаскирование запроса к LLM.
POST /api/dataguard/public/user-masking/files/maskЗагрузка файла и маскирование сущностей в нем.
PUT /api/dataguard/public/user-masking/storage/maskМаскирование файла, ранее загруженного в хранилище. Подробнее
POST /api/dataguard/public/{serviceName}/{proxyPath}Проксирование запросов к LLM. Подробнее
примечание

Для метода проксирования переданные заголовки X-META-* возвращаются в ответе без изменений — это удобно, если вы хотите соотнести ответ с исходным запросом на стороне клиента.

Пример запроса

curl -X POST 'https://app.jayguard.com/api/dataguard/public/user-masking/mlp/mask' \
-H 'X-DATA-GUARD-API-KEY: <your_api_key>' \
-H 'X-AUDIT-USER-ID: user-42' \
-H 'X-META-Session-Id: 6f1c0d6e-7b9c-4f4a-9b3c-9a8e3a2d1c4e' \
-H 'X-META-Client-Version: 2.4.1' \
-H 'X-META-Source: web-chat' \
-H 'Content-Type: application/json' \
-d '{
"model": "gpt-4",
"messages": [
{
"role": "user",
"content": "Меня зовут Иван Петров. Помоги составить письмо."
}
]
}'

В событии аудита, созданном по этому запросу, поле userId будет содержать user-42, а поле meta — объект:

{
"SessionId": "6f1c0d6e-7b9c-4f4a-9b3c-9a8e3a2d1c4e",
"ClientVersion": "2.4.1",
"Source": "web-chat"
}