- Use Webhook to subscribe events
- Webhook usage process
- The first step: Configure Webhook related information in EventMesh and start
- The second step: Add Webhook configuration information
- The third step: Check if the configuration is successful
- The fourth step: Configure the consumer of cloudevent
- The fifth step: Configure Webhook related information in the manufacturer
- Manufacturer’s Webhook operation instructions
- Webhook usage process
Use Webhook to subscribe events
Webhook usage process
The first step: Configure Webhook related information in EventMesh and start
Configuration:
# Webhook HTTP payload listening porteventMesh.server.http.port=10105# Webhook config admin porteventMesh.server.admin.http.port=10106# Whether to start the Webhook admin serviceeventMesh.webHook.admin.start=true# Webhook event configuration storage mode. But currently only supports file and nacoseventMesh.webHook.operationMode=file# The file path of fileMode. If you write #{eventMeshHome}, in the eventMesh root directoryeventMesh.webHook.fileMode.filePath= #{eventMeshHome}/webhook# The nacos storage mode. The configuration naming rule is eventMesh.webHook.nacosMode.{nacos native configuration key} For the specific configuration, please see [nacos github api](https://github.com/alibaba/nacos/blob/develop/api/src/main/java /com/alibaba/nacos/api/SystemPropertyKeyConst.java)## address of nacoseventMesh.webHook.nacosMode.serverAddr=127.0.0.1:8848# Webhook CloudEvent sending mode. This property is the same as the eventMesh.storage.plugin.type configuration.eventMesh.webHook.producer.connector=standalone
The second step: Add Webhook configuration information
Configuration information description:
/*** The path called by the manufacturer. Manufacturer event call address, [http or https]://[domain or IP]:[port]/webhook/[callbackPath]* for example: http://127.0.0.1:10105/webhook/test/event , The full url needs to be filled in the manufacturer call input* callbackPath is the only*/private String callbackPath;/*** manufacturer name, like github*/private String manufacturerName;/*** manufacturer domain name, like www.github.com*/private String manufacturerDomain;/*** Webhook event name, like rep-push*/private String manufacturerEventName;/*** http header content type*/private String contentType = "application/json";/*** description of this WebHookConfig*/private String description;/*** secret key, for authentication*/private String secret;/*** userName, for HTTP authentication*/private String userName;/*** password, for HTTP authentication*/private String password;/*** roll out event name, like topic to mq*/private String cloudEventName;/*** roll out data format -> CloudEvent serialization mode* If HTTP protocol is used, the request header contentType needs to be marked*/private String dataContentType = "application/json";/*** id of cloudEvent, like uuid/manufacturerEventId*/private String cloudEventIdGenerateMode;
Add WebHook config
path: /webhook/insertWebHookConfig
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null |
| manufacturerName | manufacturer name | string | Y | null |
| manufacturerDomain | manufacturer domain name | string | Y | null |
| manufacturerEventName | manufacturer event name | string | Y | null |
| contentType | http connettype | string | N | application/json |
| description | configuration instructions | string | N | null |
| secret | signature string | string | N | null |
| userName | username | string | N | null |
| password | password | string | N | null |
| cloudEventName | cloudEvent name | string | Y | null |
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId |
E.g:
{"callbackPath":"/webhook/github/eventmesh/all","manufacturerName":"github","manufacturerDomain":"www.github.com","manufacturerEventName":"all","cloudEventName":"github-eventmesh"}
Output params: 1 for success, 0 for failure
Query WebHook config by callback path
path: /webhook/queryWebHookConfigById
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null |
| manufacturerName | the caller of this callbackPath belongs to | string | Y | null |
E.g:
{"callbackPath":"/webhook/github/eventmesh/all","manufacturerName":"github"}
Output params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null |
| manufacturerName | manufacturer name | string | Y | null |
| manufacturerDomain | manufacturer domain name | string | Y | null |
| manufacturerEventName | manufacturer event name | string | Y | null |
| contentType | http connettype | string | N | application/json |
| description | configuration instructions | string | N | null |
| secret | signature key | string | N | null |
| userName | user name | string | N | null |
| password | password | string | N | null |
| cloudEventName | cloudEvent name | string | Y | null |
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId |
Query WebHook config by manufacturer
path: /webhook/queryWebHookConfigByManufacturer
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| manufacturerName | manufacturer name | string | Y | null |
| pageNum | page number of paging query | string | Y | null |
| pageSize | page size of each page | string | Y | null |
E.g:
{"manufacturerName":"github","pageNum":1,"pageSize":2}
Output params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null |
| manufacturerName | manufacturer name | string | Y | null |
| manufacturerDomain | manufacturer domain name | string | Y | null |
| manufacturerEventName | manufacturer event name | string | Y | null |
| contentType | http connettype | string | N | application/json |
| description | configuration instructions | string | N | null |
| secret | signature key | string | N | null |
| userName | user name | string | N | null |
| password | password | string | N | null |
| cloudEventName | cloudEvent name | string | Y | null |
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId |
Update WebHook config
path: /webhook/updateWebHookConfig
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null |
| manufacturerName | manufacturer name | string | Y | null |
| manufacturerDomain | manufacturer domain name | string | Y | null |
| manufacturerEventName | manufacturer event name | string | Y | null |
| contentType | http connettype | string | N | application/json |
| description | configuration instructions | string | N | null |
| secret | signature string | string | N | null |
| userName | username | string | N | null |
| password | password | string | N | null |
| cloudEventName | cloudEvent name | string | Y | null |
| cloudEventIdGenerateMode | cloudEvent event object identification method, uuid or event id | string | N | manufacturerEventId |
E.g:
{"callbackPath":"/webhook/github/eventmesh/all","manufacturerName":"github","manufacturerDomain":"www.github.com","manufacturerEventName":"all","cloudEventName":"github-eventmesh"}
Output params: 1 for success, 0 for failure
Delete WebHook config
path: /webhook/deleteWebHookConfig
method: POST
contentType: application/json
input params:
| field | desc | type | necessary | default |
|---|---|---|---|---|
| callbackPath | call address, unique address | string | Y | null |
| manufacturerName | the caller of this callbackPath belongs to | string | Y | null |
E.g:
{"callbackPath":"/webhook/github/eventmesh/all","manufacturerName":"github"}
Output params: 1 for success, 0 for failure
The third step: Check if the configuration is successful
- file storage mode. Please go to the eventMesh.webHook.fileMode.filePath directory to view. The Filename is callbackPath.
- nacos storage mode. Please go to the nacos service configured by eventMesh.webHook.nacosMode.serverAddr to see this.
The fourth step: Configure the consumer of cloudevent
The fifth step: Configure Webhook related information in the manufacturer
For manufacturer’s operation, please refer to Manufacturer’s Webhook operation instructions.
Manufacturer’s Webhook operation instructions
GitHub sign up
The first step: Enter the corresponding project
The second step: click setting

The third step: click Webhooks

The fourth step: Click on Add Webhook

The fifth step: Fill in the Webhook information

Payload URL: EventMesh service address and callbackPath, which must include the protocol header. For example, when the callback address callbackPath is /webhook/github/eventmesh/all, the Payload URL is http://www.example.com:10105/webhook/github/eventmesh/all.
[http or https]://[domain or IP]:[port]/webhook/[callbackPath]
Content type: http header content type
Secret: signature string
