设置 Webhook 通知
您可以使用 Webhook 将通知从 Decision Center 共享到您选择的应用程序。
Webhook 是用于向外部应用程序发送通知的 HTTP 定制回调。 Webhook 由以下三个属性定义:
- 必需: 用于指定要在其中发送事件的端点的 URL。
- 可选: 数据源。 如果未指定一个数据源,那么将使用缺省数据源。
- 可选: 用于向远程安全服务器认证的认证令牌。
可以实时通知您以下类型的事件:
- 当与决策监管框架相关的操作在 Decision Center中发生时,例如当用户创建发布或核准活动时。
- 当部署结束时,将通知您其状态: 已完成,失败或异常中止。
- 当用户创建或更新规则或决策表时。
您可以向 Decision Center REST API 注册 Webhook。 事件将以 JSON 格式发送到已注册的端点。 必须设置能够处理事件并将其转换为与目标应用程序兼容的格式的服务器。 例如,如果要向 Slack 发送通知,那么服务器必须将从 Decision Center 发送的事件转换为与 Slack 兼容的格式。
通知是异步的,这意味着它们是在后台完成的。 在长时间操作 (例如,导入或删除项目,同步或合并分支) 期间,也会禁用这些功能。 它们被禁用以避免发送一大批单独的通知。

配置 Webhook
Decision Center REST API 为您提供了四个用于处理 Webhook 的端点:
PUT /webhook/notify,用于定义在其中发送通知的一个或多个 URL ,并 (可选) 提供认证令牌。GET /webhooks/notify以查看从 Decision Center的此实例获取通知的 URL 列表。DELETE /webhooks/{webhookId}/notify以删除 Webhook。POST /webhooks/{webhookId}/notify以更新现有 Webhook。
有关更多信息,请参阅 Decision Center REST API
接收 Webhook 通知
服务器接收到的 JSON 有效内容包含有关事件的各种信息。 将发送以下数据:
| 数据 | 描述 |
|---|---|
id |
提供给事件的唯一标识。 您可以使用此标识在日志文件中查找事件。 |
version |
事件的版本号。 这允许您标识事件的版本。 版本始终从 1开始。 |
author |
触发通知的用户。 |
date |
发出事件的日期,表示 Java™ 日期 (长整型值)。 |
sourcename |
发送事件的应用程序的名称。 此值始终为 Decision Center。 |
sourcelink |
发送事件的 Decision Center 实例的 URL。 |
type |
触发 Webhook 的事件类型,允许您过滤事件。 可以使用以下类型:
|
content |
一个数组,其中包含与事件关联的工件的相关信息。 例如,如果创建了发布,那么您具有发布详细信息,例如核准人的名称,到期日期等。 |
可选: details |
包含有关事件的其他信息的数组。 |
project |
一个数组,其中包含与事件关联的项目的相关信息。 |
decisionService |
一个数组,其中包含有关与事件关联的决策服务的信息。 |
示例
以下示例显示创建发布时发送的事件:
{
"version": "1.0",
"id": "f3577511-c33b-4275-a5ef-de177598305b",
"author": "rtsAdmin",
"date": 1532519296400,
"type": "ReleaseCreated",
"content": [{
"id": "faa9b2af-e2fe-42a4-9834-bb9cdd607334",
"internalId": "brm.Release:866:866",
"name": "New Release",
"parentId": "7b360d2b-46ca-44c1-a945-fb91b9a0103e",
"documentation": "",
"buildMode": null,
"status": "InProgress",
"owner": "rtsAdmin",
"targetDate": "2018-08-07T22:00:00.000Z",
"approvers": [],
"initial": false,
"kind": "Release"
}],
"sourceName": "Decision Center",
"sourceLink": "http://9.145.66.219:8081/decisioncenter?datasource=jdbc%2FilogDataSource",
"project": {
"id": "4d9b5dc7-8a7e-404d-a05d-59023707c7d9",
"internalId": "brm.RuleProject:229:229",
"name": "AutoQuote",
"buildMode": "ClassicEngine"
},
"decisionService": {
"id": "4d9b5dc7-8a7e-404d-a05d-59023707c7d9",
"internalId": "brm.RuleProject:229:229",
"name": "AutoQuote",
"buildMode": "ClassicEngine"
}
}以下示例显示更新更改活动时发送的事件。 在此处,已更改到期日期。 更改的详细信息存储在
detail 字段中。{
"version": "1.0",
"id": "4eef8f4d-7c87-4022-b0aa-28bf88ffdb7f",
"author": "rtsAdmin",
"date": 1532519323387,
"type": "ActivityUpdated",
"content": [{
"id": "0eade79c-14e5-4155-8a08-23c7d52a168b",
"internalId": "brm.ChangeAct:881:881",
"name": "Spring Activity",
"parentId": "faa9b2af-e2fe-42a4-9834-bb9cdd607334",
"documentation": "",
"buildMode": "ClassicEngine",
"status": "InProgress",
"owner": "rtsAdmin",
"targetDate": "2018-08-06T22:00:00.000Z",
"approvers": [],
"authors": [],
"kind": "ChangeActivity"
}],
"details": [{
"targetURL": "http://9.145.66.219:8081/decisioncenter/t/library#overviewactivity?datasource=jdbc%2FilogDataSource&baselineId=brm.ChangeAct%3A881%3A881",
"updateType": "UPDATE_DUE_DATE",
"oldValue": 1533679200000,
"newValue": 1533592800000
}],
"sourceName": "Decision Center",
"sourceLink": "http://9.145.66.219:8081/decisioncenter?datasource=jdbc%2FilogDataSource",
"project": {
"id": "4d9b5dc7-8a7e-404d-a05d-59023707c7d9",
"internalId": "brm.RuleProject:229:229",
"name": "AutoQuote",
"buildMode": "ClassicEngine"
},
"decisionService": {
"id": "4d9b5dc7-8a7e-404d-a05d-59023707c7d9",
"internalId": "brm.RuleProject:229:229",
"name": "AutoQuote",
"buildMode": "ClassicEngine"
}
}以下示例显示了部署 RuleApp 时发送的事件:
{
"version": "1.0",
"id": "e424a030-4aea-4452-bb5f-7450893a9803",
"author": "rtsAdmin",
"date": 1532519935332,
"type": "RuleAppDeployment",
"content": [{
"id": null,
"internalId": null,
"name": "Report 2018-07-25_01-58-41-821",
"status": "COMPLETED",
"ruleAppName": "autoQuoteRuleApp",
"messages": {
"elements": [],
"totalCount": 0,
"number": -1,
"size": 0
},
"snapshot": {
"id": "4758d793-e953-4f11-824f-9e9445cfa02a",
"internalId": "dsm.DsDeploymentBsln:888:888",
"name": "Deployment_to_QA_env_2018-07-25T11_58_39Z",
"parentId": "0eade79c-14e5-4155-8a08-23c7d52a168b",
"documentation": null,
"buildMode": "ClassicEngine",
"kind": "DeploymentSnapshot"
},
"servers": [],
"archive": null
}],
"details": [{
"targetURL": "http://9.145.66.219:8081/decisioncenter/t/library#deploymentreport?id=dsm.DSDeploymentReport%3A1%3A1&datasource=jdbc%2FilogDataSource&baselineId=brm.ChangeAct%3A881%3A881"
}],
"sourceName": "Decision Center",
"sourceLink": "http://9.145.66.219:8081/decisioncenter?datasource=jdbc%2FilogDataSource",
"project": {
"id": "4d9b5dc7-8a7e-404d-a05d-59023707c7d9",
"internalId": "brm.RuleProject:229:229",
"name": "AutoQuote",
"buildMode": "ClassicEngine"
},
"decisionService": {
"id": "4d9b5dc7-8a7e-404d-a05d-59023707c7d9",
"internalId": "brm.RuleProject:229:229",
"name": "AutoQuote",
"buildMode": "ClassicEngine"
}
}