Заголовки для аудита: X-AUDIT-USER-ID и X-META-*
Чтобы связать событие аудита с пользователем, сессией или другими данными из вашего приложения, вы можете передавать в API-запросах на маскирование специальные HTTP-заголовки.
Поддерживаются два типа заголовков (вы можете использовать один из них или оба одновременно):
X-AUDIT-USER-ID— идентификатор пользователя, для которого выполняется запрос.X-META-*— произвольный набор атрибутов.
Данные из этих заголовков Jay Guard сохранит в журнал аудита вместе с событием. На результат запроса они не влияют.
X-AUDIT-USER-ID
Значение заголовка сохраняется в поле userId события аудита и доступно:
- в ответе метода
POST /api/dataguard/public/audit/list; - в столбце ID пользователя в разделе Аудит, см. Аудит запросов к LLM и загруженных файлов.
X-META-*
Заголовки с префиксом X-META- позволяют добавить к событию аудита произвольные атрибуты, специфичные для вашего приложения: идентификатор сессии, источник запроса и т. п.
Значения сохраняются в поле meta события аудита в виде JSON-объекта и доступны:
- в ответе метода
POST /api/dataguard/public/audit/list; - в поле Дополнительная информация в разделе Аудит с помощью кнопки (Показать дополнительные поля), см. Аудит запросов к LLM и загруженных файлов.
Имена заголовков преобразуются в UpperCamelCase, например: X-META-SESSION-ID → SessionId.
Ограничения:
- В одном запросе можно передать не более 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"
}