HTTP
Permite a configuração de um endpoint que receberá uma requisição com as mensagens trafegadas.
Parâmetros
Parâmetros aceitos para esse tipo de sindicância de destino:
http.verify_token
Token de verificação enviado no header de cada mensagem entregue pelo Firehose
DEPRECATED Tipo: string Obrigatório
http.verb
Tipo da requisição
Tipo: enum[POST PUT PATCH] Obrigatório
http.headers
Cabeçalhos da requisição
Tipo: object
Valor padrão: {}
http.timeout_seconds
Tempo de espera pela resposta da requisição
Tipo: int [1-300]
Valor padrão: 1
http.basic_auth
Autenticação básica da requisição
Tipo: object
Valor padrão: {}
http.basic_auth.user_id
Identificador de acesso
Tipo: string
Valor padrão: -
http.basic_auth.password
Senha de acesso
Tipo: string
Valor padrão: -
http.oauth2
Autenticação oauth 2 da requisição
Tipo: object
Valor padrão: {}
http.oauth2.client_key
Chave do cliente da API
Tipo: string Obrigatório
http.oauth2.client_secret
Segredo do cliente da API
Tipo: string Obrigatório
http.oauth2.token_url
Url do serviço de autenticação
Tipo: string Obrigatório
http.oauth2.scopes
Escopos de autenticação
Tipo: []string
Valor padrão: []
http.oauth2.endpoint_params
Parâmetros adicionais do serviço de autenticação
Tipo: map[string][]string
Valor padrão: {}
http.tls
Configuração de TLS
Tipo: object
Valor padrão: {}
http.tls.enabled
Habilitar TLS
Tipo: boolean Obrigatório
http.tls.skip_cert_verify
Ignorar verificação de certificado
Tipo: boolean Obrigatório
http.tls.root_cas
Certificado principal
Tipo: boolean
Valor padrão: ""
http.tls.enable_renegotiation
Se o servidor remoto deve solicitar renegociação
Tipo: boolean
Valor padrão: false
http.tls.client_certs
Lista de certificados do cliente
Tipo: list
Valor padrão: []
http.tls.client_certs.cert
Certificado
Tipo: string Obrigatório
http.tls.client_certs.key
Chave do certificado
Tipo: string Obrigatório
http.tls.client_certs.password
Senha do certificado
Tipo: string
O uso do parâmetro verify_token
está obsoleto e não é recomendado. Sugerimos utilizar o parâmetro verify_token_private_key
.
Requisição
curl --location '<HOST>/v1/configs' \
--header 'Content-Type: application/json' \
--header 'Authorization: <ACCESS-TOKEN>' \
--data '{
"output": {
"target": "http://localhost:4195",
"type": "HTTP",
"http": {
"verify_token": "VERIFY-TOKEN",
"verify_token_private_key": "my-key",
"verb": "POST",
"headers": {
"Authorization": "TOKEN"
},
"timeout_seconds": 1,
"basic_auth": {
"user_id": "USER",
"password": "PASSWORD"
},
"oauth2": {
"client_key": "CLIENT-KEY",
"client_secret": "CLIENT-SECRET",
"token_url": "TOKEN-URL",
"scopes": [
"SCOPE"
],
"endpoint_params": {
"param1": [
"VALUE1"
],
"param2": [
"VALUE2"
]
}
},
"tls": {
"enabled": true,
"skip_cert_verify": true,
"root_cas": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
"enable_renegotiation": false,
"client_certs": [
{
"cert": "CERT",
"key": "KEY",
"password": "PASSWORD"
}
]
}
}
}
}'
Resposta
A resposta desse endpoint será no seguinte formato:
{
"id": "FIREHOSE-ID",
"output": {
"target": "http://localhost:4195",
"type": "HTTP",
"http": {
"verify_token": "VERIFY-TOKEN",
"verb": "POST",
"headers": {
"Authorization": "TOKEN"
},
"timeout_seconds": 1,
"basic_auth": {
"user_id": "USER",
"password": "PASSWORD"
},
"oauth2": {
"client_key": "CLIENT-KEY",
"client_secret": "CLIENT-SECRET",
"token_url": "TOKEN-URL",
"scopes": [
"SCOPE"
],
"endpoint_params": {
"param1": [
"VALUE1"
],
"param2": [
"VALUE2"
]
}
},
"tls": {
"enabled": true,
"skip_cert_verify": true,
"root_cas": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
"enable_renegotiation": false,
"client_certs": [
{
"cert": "CERT",
"key": "KEY",
"password": "PASSWORD"
}
]
}
}
}
}
O campo verify_token
enviado dentro do objeto http
no payload da requisição pode ser utilizado para validar as mensagens recebidas pelo endpoint HTTP garantindo que as mesmas foram entregues pelo Firehose. Ele é um campo obrigatório.
Um token de verificação Firehose-Verify-Token
, passado na configuração do Firehose, será adicionado no header da mensagem para a saída HTTP.
Assinatura de conteúdo
Ao utilizar o parâmetro verify_token_private_key
, o Firehose assinará o conteúdo da mensagem com o algoritmo HMAC-SHA256
e adicionará dois headers na requisição: Firehose-Verify-Signature-Algorithm
e Firehose-Verify-Signature-HMAC-SHA256
. O último cabeçalho conterá a assinatura do conteúdo.
Last updated