Todos os produtos
Search
Central de documentação

Data Management:Usar notificações personalizadas de webhook

Última atualização: Jun 27, 2026

Além das notificações por SMS, e-mail, DingTalk, chatbot do DingTalk e Lark, o Data Management DMS oferece suporte a webhooks personalizados.

Configuração

Para configurar seu webhook, acesse a seção Webhook nas configurações pessoais, insira a URL do endpoint e selecione o canal de notificação Webhook.

Configure também um método de assinatura e uma chave de assinatura. Clique em Test para verificar a conectividade da URL do webhook. O painel de configurações de notificação permite selecionar outros canais, como DingTalk (exclusive), DingTalk, DingTalk chatbot, Email, Lark e SMS.

Para mais informações, consulte Configurar suas informações pessoais e métodos de notificação.

Eventos

Quando o DMS aciona uma notificação, o sistema envia uma solicitação HTTP POST para a URL do webhook configurada. A solicitação contém um cabeçalho e um corpo.

Cabeçalho da solicitação

DMS-Event: Message Hook

Corpo da solicitação

Parâmetro

Tipo

Descrição

submitterUid

String

UID do usuário que enviou a solicitação.

submitterName

String

Nome do usuário que enviou a solicitação.

category

String

Módulo de recurso, como ticket, orquestração de tarefas ou desenvolvimento de data warehouse.

module

String

Tipo de negócio, como solicitação de permissão, alteração de dados, design de esquema ou exportação de dados.

event

String

Evento específico. Exemplos: Pending Approval, Succeeded e Failed.

taskId

String

ID do ticket ou fluxo de tarefas.

taskName

String

Nome da tarefa.

eventTime

String

Horário em que o evento ocorreu.

message

String

Texto da mensagem nativa do sistema.

targetUsers

Array of objects

Destinatários pretendidos. Vários destinatários são suportados.

receivers

Array of objects

Array de objetos que representa os destinatários reais. Usuários sem método de notificação configurado não recebem notificações.

uid

String

UID do destinatário.

name

String

Nome do destinatário.

signatureMethod

String

Método de assinatura. Os seguintes métodos têm suporte:

  • None (padrão): Nenhuma assinatura é usada.

  • HMAC_SHA1: Usa o algoritmo HMAC-SHA1.

signatureText

String

Assinatura digital, valor HmacSha1 calculado com base na URL do webhook, na chave de assinatura e no evento de mensagem. Exemplo: 4mOdwflN1CgxxxxxxxuipuCYYWk=.

Exemplo de corpo da solicitação

{
"messageEvent":{
    "submitterName":"xxx",
    "submitterUid":"167382665015xxxx",
    "category":"ticket",
    "event":"Succeeded",
    "eventTime":1625630049930,
    "message":"[Data Management DMS] Webhook test, code: 144619 ",
    "module":"data change",
    "receivers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
    "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
    "taskName":"Webhook test"
    },
"signatureMethod":"HMAC_SHA1",
"signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
 }

Exemplo de resposta

{"root":"","success":true}                   //Success
{"root":"error message","success":false}     //Failure

Verificação de assinatura

Se você configurou uma chave de assinatura, use o código a seguir para verificar a assinatura.

// Verifies the signature of the incoming message
public void callback(String message) {
    JSONObject jsonObject = JSONObject.parseObject(message, Feature.OrderedField);
    String webhookUrl = "Your configured webhook URL";
    String signatureKey = "Your configured signature key";
    String origin = webhookUrl + signatureKey + JSON.toJSONString(jsonObject.getJSONObject("messageEvent"));
    // The signature from the DMS message
    String signatureText = jsonObject.getString("signatureText");
    // The signature calculated on your end
    String expectedSignatureText = signatureByHmacSha1(origin, signatureKey);
    assert Objects.equals(signatureText, expectedSignatureText);
}
public String signatureByHmacSha1(String origin, String key) {
    final String charset = "UTF-8";
    String result = "N/A";
    try {
        SecretKey secretKey = new SecretKeySpec(key.getBytes(charset), "HmacSHA1");
        Mac mac = Mac.getInstance("HmacSHA1");
        mac.init(secretKey);
        result = Base64.getEncoder().encodeToString(mac.doFinal(origin.getBytes(charset)));
    } catch (Exception ex){
    }
    return result;
}

Exemplo de receptor de webhook

Crie um script simples de eco para testar o endpoint de webhook e visualizar o payload do evento.

  1. Salve o script a seguir como print_http_body.rb.

    require 'webrick'
    server = WEBrick::HTTPServer.new(:Port => ARGV.first)
    server.mount_proc '/' do |req, res|
      puts req.body
    end
    trap 'INT' do
      server.shutdown
    end
    server.start
  2. Escolha uma porta não utilizada, como 8000, e execute o script: ruby print_http_body.rb 8000.

  3. No console do DMS, configure a URL do webhook, por exemplo, http://my.host:8000/. Para mais informações, consulte Configurar suas informações pessoais e métodos de notificação.

    Se o servidor exigir Autenticação Básica HTTP, inclua o nome de usuário e a senha na URL. Por exemplo:

    http://userName:password@my.host:8080/project/test-job
  4. Na caixa de diálogo Modify notification method, clique em Test ao lado da URL do webhook. O servidor receberá uma notificação de teste do DMS.

    O servidor recebe uma notificação semelhante ao exemplo a seguir:

    {
    "messageEvent":{
        "submitterName":"xxx",
        "submitterUid":"167382665015xxxx",
        "category":"ticket",
        "event":"Succeeded",
        "eventTime":1625630049930,
        "message":"[Data Management DMS] Webhook test, code: 144619 ",
        "module":"data change",
        "receivers":[{"name":"xxx1","uid":"167382665015xxxx"}],
        "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"}],
        "taskName":"Webhook test"
        },
    "signatureMethod":"HMAC_SHA1",
    "signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
     }
    127.0.0.1 - - [20/Apr/2021:20:07:47 CST] "POST / HTTP/1.1" 200 0