设置 Webhook 通知

您可以使用 Webhook 将通知从 Decision Center 共享到您选择的应用程序。
Webhook 是用于向外部应用程序发送通知的 HTTP 定制回调。 Webhook 由以下三个属性定义:
  • 必需: 用于指定要在其中发送事件的端点的 URL。
  • 可选: 数据源。 如果未指定一个数据源,那么将使用缺省数据源。
  • 可选: 用于向远程安全服务器认证的认证令牌。
可以实时通知您以下类型的事件:
  • 当与决策监管框架相关的操作在 Decision Center中发生时,例如当用户创建发布或核准活动时。
  • 当部署结束时,将通知您其状态: 已完成,失败或异常中止。
  • 当用户创建或更新规则或决策表时。

您可以向 Decision Center REST API 注册 Webhook。 事件将以 JSON 格式发送到已注册的端点。 必须设置能够处理事件并将其转换为与目标应用程序兼容的格式的服务器。 例如,如果要向 Slack 发送通知,那么服务器必须将从 Decision Center 发送的事件转换为与 Slack 兼容的格式。

通知是异步的,这意味着它们是在后台完成的。 在长时间操作 (例如,导入或删除项目,同步或合并分支) 期间,也会禁用这些功能。 它们被禁用以避免发送一大批单独的通知。

图 1。 Decision Center 中的 Webhook 机制
显示 Decision Center 中 Webhook 机制的图

配置 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 有效内容包含有关事件的各种信息。 将发送以下数据:
表 1. 事件发送的信息
数据 描述
id 提供给事件的唯一标识。 您可以使用此标识在日志文件中查找事件。
version 事件的版本号。 这允许您标识事件的版本。 版本始终从 1开始。
author 触发通知的用户。
date 发出事件的日期,表示 Java™ 日期 (长整型值)。
sourcename 发送事件的应用程序的名称。 此值始终为 Decision Center
sourcelink 发送事件的 Decision Center 实例的 URL。
type 触发 Webhook 的事件类型,允许您过滤事件。
可以使用以下类型:
规则工件
  • RuleCreated,创建规则时。
  • RuleUpdated,更新规则时。
  • RuleDeleted,删除规则时。
决策管理框架
  • ReleaseCreated,创建发布时。
  • ReleaseUpdated,更新发布时。
  • ReleaseDeleted,删除发布时。
  • ActivityCreated,创建活动时。
  • ActivityUpdated,更新活动时。
  • ActivityDeleted,删除活动时。
部署
部署 RuleApp 时的 RuleAppDeployment
VariableSet
  • VariablesetCreated,创建变量集时
  • VariablesetUpdated,更新变量集时
  • VariablesetDeleted,删除变量集时
TestSuite
  • TestsuiteCreated,创建测试套件时
  • TestsuiteUpdated,更新测试套件时
  • TestsuiteDeleted,删除测试套件时
操作
  • OperationCreated,创建操作时
  • OperationUpdated,更新操作时
  • OperationDeleted,删除操作时
规则流
  • RuleflowCreated,创建规则流时
  • RuleflowUpdated,更新规则流时
  • RuleflowDeleted,删除规则流时
分支
  • BranchCreated,创建非受管分支时
  • BranchUpdated,当非受管分支更新时
  • BranchDeleted,删除非受管分支时
快照
  • SnapshotCreated,创建快照时
  • SnapshotUpdated,更新快照时
  • SnapshotDeleted,删除快照时
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"
    }
}