設定 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 |
提供給事件的唯一 ID。 您可以使用此 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"
}
}