# Вебхуки

[Вебхук](https://stggw.ixcellerate.ru/docs#/Webhooks) особая сущность платформы, которая позволяет управлять выполнением HTTP(S)-запросами на внешние эндпоинты при CRUD-действиях над [OrmarCRUD-сущностью](restapi.md) платформы.

## Структура вебхука

```json
{
  "uid": "string",
  "entity": "string",
  "target": "string",
  "callback_url": "string",
  "callback_http_method": "string",
  "description": "string",
  "exclude_reference": true,
  "ttl": 0,
  "retry_period": 0,
  "active": true,
  "auth_type": "string",
  "auth_user": "string",
  "auth_password": "string",
  "auth_bearer_http_method": "string",
  "auth_bearer_token_url": "string",
  "auth_bearer_headers": "string",
  "auth_bearer_raw_data": "string",
  "auth_bearer_json_data": "string",
  "auth_bearer_token_json_path": "string",
  "auth_bearer_ttl_json_path": "string"
}
```

## Описание полей вебхука

**uid**: строка, UID сущности;  
**entity**: строка, название модели на CRUD которой навешивается вебхук, актуальный спискок доступен по API [entity_choices](https://intgw.ixcellerate.ru/docs#/Webhooks/entity_choices_webhooks_ref_entity_choices_get);  
**target**: строка, тэг вебхука;  
**callback_url**: строка, адрес эндпоинта для HTTP(S) для обратного запроса;  
**callback_http_method**: строка, метод обратного запроса (POST, GET);  
**description**: строка, описание вебхука;  
**exclude_reference**: булево значение (true, false), если true, то к ключевой модели в соответствующие поля будут подключены полные рефренсные модели вместо их ID;  
**ttl**: целое число, время в секундах, отведенное на совершение попыток повторного запроса на **callback_url** в случае его неуспеха (отсутствия в ответе статуса HTTP 200);  
**retry_period**: целое число, время в секундах периода повторных запросов на **callback_url**;  
**active**: булево значение, если true, то вебхук активен, иначе false;  
"auth_type": строка, тип авторизации, 'none' - без авторизации, 'basic' - HTTP Basic Authorization, 'bearer' - Bearer Token Authentication, 'ntlm' - проверки подлинности пользователя NTLM;  
**auth_user**: строка, имя пользователя для авторизации;  
**auth_password**: строка, пароль пользователя для авторизации;  
**auth_bearer_http_method**: строка,  для авторизации;  
**auth_bearer_token_url**: строка, для получения токена для Bearer Token авторизации;  
**auth_bearer_headers**: JSON-строка вида [{"key": "value"}], дополнительные заголовки для Bearer Token авторизации, если это необходимо;  
**auth_bearer_raw_data**: строка, сохраненные raw-данные для Bearer Token авторизации;  
**auth_bearer_json_data**: строка, сохраненные JSON-данные для Bearer Token авторизации;  
**auth_bearer_token_json_path**: строка, точечная нотация, путь до ключа с токеном в JWT-данных, для Bearer Token авторизации;  
**auth_bearer_ttl_json_path**: строка, точечная нотация, путь до значения TTL в JWT-данных, для Bearer Token авторизации;  
