Configuração de Filtro

É possível realizar a filtragem dos dados indexados via Configuração de Indexação no Firehose.

Essa configuração é útil em casos onde uma configuração recupera dados de uma fonte comum e permite que filtros sejam aplicados em cima desses dados garantindo que somente o que for necessário seja enviado para a sindicância de saída.

Parâmetros

Parâmetros aceitos na configuração de filtro:

CampoDescriçãoValor

filter.groups

IDs dos grupos a serem filtrados

Tipo: []string Obrigatório

filter.indexes

IDs dos indexes a serem filtrados

Tipo: []string Obrigatório

filter.description

Descrição do estágio de filtro

Tipo: string

filter.filter

Configurações do filtro

Tipo: object Obrigatório

filter.filter.op

Tipo de operação a ser aplicado no filtro

Tipo: enum[AND GT LT GE LE EQ CONTAINS IN REGEX] Obrigatório

filter.filter.field_name

Nome do campo a ser filtrado

Tipo: enum[type channel bot_id tenant to from content] Obrigatório se o campo op for diferente de OR e AND

filter.filter.value

Valor a ser utilizado na aplicação do filtro

Tipo: string Obrigatório se o campo op for diferente de OR e AND

filter.filter.value_type

Tipo do valor a ser utilizado na aplicação do filtro

Tipo: enum[string number bool] Obrigatório se o campo op for diferente de OR e AND

filter.filter.filters

Filtros a serem realizados

Tipo: []filter Obrigatório se o campo op for OR ou AND

Requisição

Para habilitar essa indexação a seguinte requisição pode ser realizada:

curl --location '<HOST>/v1/configs' \
--header 'Content-Type: application/json' \
--header 'Authorization: <ACCESS-TOKEN>' \
--data '{
    "filter": {
        "groups": [
            "GROUP-ID"
        ],
        "indexes": [
            "123"
        ],
        "description": "FILTER-DESCRIPTION",
        "filter": {
            "op": "AND",
            "filters": [
                {
                    "op": "EQ",
                    "field_name": "type",
                    "value": "command",
                    "value_type": "string"
                },
                {
                    "op": "EQ",
                    "field_name": "bot_id",
                    "value": "123",
                    "value_type": "string"
                }
            ]
        }
    },
    "output": {
        "target": "https://localhost",
        "type": "HTTP",
        "http": {
            "verify_token": "VERIFY-TOKEN",
            "verb": "POST"
        }
    }
}'

No exemplo acima foi gerada uma configuração do Firehose que filtra os dados gerados por Configuração de Indexação no grupo GROUP-ID e que possuem o campo type igual a command e o campo bot_id igual à 123. Os dados filtrados são enviados para um endpoint HTTP configurado na saída.

Limitações

  • O usuário precisa ter permissão para filtrar os dados que pode ser solicitada ao time do Firehose. Além da permissão de filtro o usuário precisa ter permissão em cada campo a ser filtrado.

  • O filtro não pode ser utilizado junto com uma Configuração de Indexação.

  • O usuário tem que pertencer ao grupo passado no filtro ou ter permissão para filtrar dados daquele grupo.

  • O operador REGEX pode ser utilizado apenas quando o field_name for content.

Last updated