Вебхуки
Вебхуки — это способ интеграции, который позволяет при запуске какого-либо события в TeamStorm автоматически оправлять данные об этом событии во внешнюю систему.
Вебхуки настраиваются на уровне пространства.
Механизмом выполнения вебхука является HTTP-запрос по методу POST.
Пример
В TeamStorm создается вебхук, который при событиях Добавление списания времени и Изменение списания времени отправляет данные об этих событиях во внешнюю систему. Пользователь внешней системы может в реальном времени видеть и учитывать списания пользователей TeamStorm, сделанные в том пространстве, для которого создан вебхук.
Доступ к разделу Вебхуки в настройках пространства выдается пользователям с разрешением Управление вебхуками.
По умолчанию разрешение Управление вебхуками включено для роли Администратор и отключено для ролей Пользователь и Гость.
Добавление вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, для которого вы хотите добавить вебхук.
- Перейдите в настройки пространства и нажмите Вебхуки на панели слева.
- Нажмите Добавить.
- На открывшемся экране добавления вебхука заполните поля:
- Название вебхука;
- Описание вебхука;
- URL (обязательное) — адрес во внешней системе, куда будет отправлен запрос с данными;
- Токен (обязательное) — токен для работы с вебхуками, сформированный во внешней системе. Если внешняя система не предполагает использования токенов, введите в поле любое значение;
- Выберите из списка одно или несколько событий, при наступлении которых будет срабатывать вебхук.
- Добавьте пользовательский заголовок, который будет передаваться во внешнюю систему (опционально):
- Нажмите Добавить заголовок.
- Введите ключ и значение заголовка. Длина каждого параметра не может быть больше 2048 символов. Пара ключ-значение может использоваться для передачи во внешнюю систему какого-либо специфического параметра.
- Настройте SSL-верификацию с помощью переключателя. По умолчанию SSL-верификация разрешена. Если необходимо отключить верификацию, переведите переключатель в неактивное положение.
- Опционально. Нажмите Проверить в правом верхнем углу, а затем в раскрывшемся списке нажмите на название события,
отправку данных которого вы хотите проверить.
Результат проверки выводится в открывшемся окне, где указаны:
- код ответа (
200
для успешного завершения запроса); - тело основного запроса с параметрами и переменными;
- тело запроса с передачей заголовков и метаданных.
- код ответа (
- Нажмите Добавить в правом верхнем углу.
Вебхук будет добавлен в систему и на экране Вебхуки будет отображена новая строка, включающая:
- название вебхука;
- тип события, запускающего выполнение вебхука;
- дату создания вебхука;
- переключатель, показывающий состояние вебхука (активное / неактивное) и позволяющее управлять этим состоянием;
- кнопку удаления вебхука.
Активация и деактивация вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, вебхуками которого вы хотите управлять.
- Перейдите в настройки пространства.
- На открывшемся экране найдите в таблице нужный вебхук и переведите переключатель в столбце Активен в нужное положение.
Активное положение переключателя выделяется синим цветом.
Неактивные вебхуки не отправляют во внешнюю систему запрос при наступлении события.
Редактирование вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, вебхуками которого вы хотите управлять.
- Перейдите в настройки пространства и нажмите Вебхуки на панели слева.
- На открывшемся экране найдите в таблице нужный вебхук и нажмите на его название.
- На открывшемся экране отредактируйте данные как указано в подразделе Добавление вебхука.
- Нажмите Сохранить в правом верхнем углу.
Просмотр результатов выполнения вебхука
В нижней части экрана редактирования вебхука содержится журнал событий, в который записываются результаты выполнения вебхука.
Журнал представлен в виде таблицы, которая содержит:
- статус выполнения;
- тип события, запустившего выполнение вебхука;
- время запуска.
При нажатии на строку с событием открывается окно, в котором содержится:
- код ответа (
200
для успешного завершения запроса); - статус ответа — ОК при успешном завершении или название ошибки при неудачном;
- тело основного запроса с параметрами и переменными;
- тело запроса с передачей заголовков, токенов и других специфических данных.
Пример
Событие: добавление списания Запрос
{
"workitemId": "66030789-d986-4cbe-b2bc-a373d352ff10",
"entryId": "35f98d2e-de65-4467-864d-dcce0e7ca2e6",
"creationDate": "2024-11-04T14:52:49.8289869Z",
"startDate": "2024-11-04T14:52:46.023Z",
"duration": 28800,
"description": null,
"tenantId": "00000000-0000-0000-0000-000000000000",
"eventId": "aaaaaaaa-0004-4001-aaaa-aaaaaaaaaaaa",
"eventName": "TimeTrackingCreated",
"eventType": "TimeTrackingCreated",
"userId": "57edd357-b3b1-496f-b2c5-1d1bbbf7175e",
"workspaceId": "01c7722d-a7ea-4bd9-aaf8-799fb6c7cd6f",
"workspaceKey": "PIS"
}
В правой верхней части журнала находится поле, в котором указаны дата и время, до наступления которого выводятся данные журнала.
Чтобы изменить дату и время:
- Нажмите на поле.
- Выберите новую дату и время из раскрывшегося календаря с часами или нажмите Сейчас, чтобы установить текущие дату и время.
- Нажмите ОК.
Удаление вебхука
- Войдите в систему, используя учетную запись, для которой подключено разрешение Управление вебхуками.
- Перейдите в пространство, вебхуками которого вы хотите управлять.
- Перейдите в настройки пространства и нажмите Вебхуки на панели слева.
- На открывшемся экране найдите в таблице нужный вебхук и нажмите кнопку удаления в правой части строки.
- Нажмите **Да, я хочу удалить вебхук.
Вебхук будет безвозвратно удален вместе со всеми данными о его выполнении.
Список событий вебхуков
Событие | Описание события |
---|---|
WorkitemCreated | Создание задачи |
WorkitemStatusChanged | Изменение статуса |
WorkitemDescriptionChanged | Изменение описания |
WorkitemNameChanged | Изменение имени |
WorkitemUserAssigned | Изменение ответственного |
WorkitemParentChanged | Изменение родительской задачи или папки |
WorkitemStartDateChanged | Изменение даты начала |
WorkitemDueDateChanged | Изменение даты выполнения |
WorkitemAddedToPortfolioElement | Добавление задачи в элемент портфеля |
WorkitemDeletedFromPortfolioElement | Удаление задачи из элемента портфеля |
TimeTrackingCreated | Добавление списания времени |
TimeTrackingUpdated | Редактирование списания времени |
WorkitemWorkflowIdChanged | Изменение процесса |
WorkitemTypeChanged | Изменение типа задачи |
SprintCreated | Создание спринта |
WorkitemQueueIdChanged | Изменение спринта |
SprintStatusChanged | Изменение статуса спринта |
WorkitemEstimatedTimeChanged | Изменение оценки в часах |
WorkitemEstimatedStoryPointsChanged | Изменение оценки в сторипоинтах |
WorkitemProgressValueChanged | Изменение значения прогресса |
WorkitemAttributeChanged | Изменение значения пользовательского атрибута |
Поля контекста события создания задачи
Поле | Описание |
---|---|
workitemId | Идентификатор созданной задачи |
workitemKey | Ключ созданной задачи |
workitemName | Название созданной задачи |
workitemDescription | Описание созданной задачи |
workitemAssigneeId | Идентификатор ответственного на задаче |
workitemTypeId | Идентификатор типа задачи |
workitemCreationDate | Дата создания задачи |
workitemWorkflowId | Идентификатор рабочего процесса задачи |
workitemQueueId | Идентификатор спринта |
mentionedUserIds | Список идентификаторов упоминаемых пользователей |
tenantId | Идентификатор тенанта |
eventId | Идентификатор события |
eventName | Название события |
eventType | Тип события |
userId | Идентификатор пользователя, инициировавшего событие |
workspaceId | Идентификатор пространства, в котором произошло событие |
workspaceKey | Ключ пространства, в котором произошло событие |
Поля контекста события изменения задачи
Поле | Описание |
---|---|
oldValue | Старое значение измененного атрибута |
newValue | Новое значение измененного атрибута |
workitemParentId | Идентификатор родительской задачи или папки |
workitemStatusId | Идентификатор статуса задачи |
workitemCreatedBy | Идентификатор пользователя, создавшего задачу |
workitemUpdatedBy | Идентификатор пользователя, изменившего задачу |
workitemUpdateDate | Дата изменения задачи |
workitemDueDate | Дата выполнения |
workitemEndDate | Дата закрытия задачи |
workitemStartDate | Дата начала |
workitemAttributesValues | Значение атрибутов задачи |
workitemProgressType | Тип расчета прогресса |
workitemProgressName | Название метрики прогресса |
workitemProgressValue | Значение прогресса |
workitemEstimatedTime | Оценка во времени (в секундах) |
workitemSpentTime | Затраченное время (в секундах) |
workitemLeftTime | Оставшееся от оценки время (в секундах) |
workitemEstimatedStoryPoints | Оценка в сторипоинтах |
workitemTicketTypeId | Идентификатор типа заявки по которой создана задача. |
workitemId | Идентификатор созданной задачи |
workitemKey | Ключ созданной задачи |
workitemName | Название созданной задачи |
workitemDescription | Описание созданной задачи |
workitemAssigneeId | Идентификатор ответственного на задаче |
workitemTypeId | Идентификатор типа задачи |
workitemCreationDate | Дата создания задачи |
workitemWorkflowId | Идентификатор рабочего процесса задачи |
workitemQueueId | Идентификатор спринта |
mentionedUserIds | Список идентификаторов упоминаемых пользователей |
tenantId | Идентификатор тенанта |
eventId | Идентификатор события |
eventName | Название события |
eventType | Тип события |
userId | Идентификатор пользователя, инициировавшего событие |
workspaceId | Идентификатор пространства, в котором произошло событие |
workspaceKey | Ключ пространства, в котором произошло событие |
Поля контекста события создания или изменения спринта
Поле | Описание |
---|---|
extensionId | Идентификатор расширения Agile |
sprintId | Идентификатор спринта |
sprintName | Название спринта |
sprintStatus | Статус спринта |
sprintStatus | Статус спринта |
tenantId | Идентификатор тенанта |
eventId | Идентификатор события |
eventName | Название события |
eventType | Тип события |
userId | Идентификатор пользователя, инициировавшего событие |
workspaceId | Идентификатор пространства, в котором произошло событие |
workspaceKey | Ключ пространства, в котором произошло событие |
Поля контекста события добавления или изменения списания
Поле | Описание |
---|---|
workitemId | Идентификатор задачи, с которой связано списание |
entryId | Идентификатор списания |
creationDate | Дата добавления списания |
startDate | Дата списания |
duration | Время списания в секундах |
description | Описание списания |
tenantId | Идентификатор тенанта |
eventId | Идентификатор события |
eventName | Название события |
eventType | Тип события |
userId | Идентификатор пользователя, инициировавшего событие |
workspaceId | Идентификатор пространства, в котором произошло событие |
workspaceKey | Ключ пространства, в котором произошло событие |
Поля контекста события добавления и удаления связи с элементом портфеля
Поле | Описание |
---|---|
workitemId | Идентификатор задачи |
portfolioElementId | Идентификатор элемента портфеля |
portfolioElementName | Название элемента портфеля |
portfolioElementStatusId | Идентификатор статуса элемента портфеля |
tenantId | Идентификатор тенанта |
eventId | Идентификатор события |
eventName | Название события |
eventType | Тип события |
userId | Идентификатор пользователя, инициировавшего событие |
workspaceId | Идентификатор пространства, в котором произошло событие |
workspaceKey | Ключ пространства, в котором произошло событие |