Evento

7 funções do TermoTracing para evento.

// npm install termo_core --save-exact
import * as tracing from "termo_core/tracing";
// ou: import { tracing } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_eventoGET /eventoLista os eventos paginados
buscar_auto_complete_eventoGET /evento/autocompleteLista básica de eventos para seleção
buscar_pelo_filtro_eventoGET /evento/filtroBusca eventos por filtro
criar_eventoPOST /evento/ingestaoRecebe um lote de eventos de um site (ingestão)
buscar_pelo_id_eventoGET /evento/{id}Busca um evento pelo id
atualizar_pelo_id_eventoPATCH /evento/{id}Atualiza um evento pelo id
deletar_pelo_id_eventoDELETE /evento/{id}Exclui um evento pelo id

buscar_paginador_evento

GET/evento Exige credencial

Lista os eventos paginados

Qualquer colaborador da Termotubos logado no TermoAuth (perfil employee); não há área de permissão própria. Cada conta só enxerga e altera os próprios registros (os do sub do token): registro de outra conta responde como não encontrado. Lista os eventos não excluídos da conta. Com sessao_id, devolve a linha do tempo da sessão do mais antigo para o mais recente; sem ele, do mais recente para o mais antigo. aplicativo_id filtra pelo aplicativo. pagina começa em 1 (padrão 1; menor que 1 vira 1). A página tem sempre 50 itens: o parâmetro tamanho é aceito, mas ignorado. A resposta traz itens, total (quantidade de registros que casam com os filtros), pagina e tamanho (50). Parâmetros de consulta, todos opcionais: pagina: número da página, começando em 1 (padrão 1; menor que 1 vira 1); tamanho: aceito, mas ignorado: a página tem sempre 50 itens; sessao_id: id da sessão: com ele, a lista vem do mais antigo para o mais recente (opcional); aplicativo_id: id do aplicativo (opcional).

function buscar_paginador_evento(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorEvento = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaEvento>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_evento } from "termo_core/tracing";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_evento(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaEvento> · Rust: Result<tipos::PaginaEvento, ErroAoChamarServico> · veja PaginaEvento.

buscar_auto_complete_evento

GET/evento/autocomplete Exige credencial

Lista básica de eventos para seleção

Qualquer colaborador da Termotubos logado no TermoAuth (perfil employee); não há área de permissão própria. Cada conta só enxerga e altera os próprios registros (os do sub do token): registro de outra conta responde como não encontrado. Devolve só id e rótulo (o nome do evento ou, sem nome, a mensagem ou o tipo), em ordem alfabética do rótulo. busca procura o trecho no rótulo, sem diferenciar maiúsculas. pagina começa em 1 (padrão 1) e tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1. A resposta traz itens, total, pagina e tamanho. Parâmetros de consulta, todos opcionais: busca: trecho do rótulo (nome, mensagem ou tipo), sem diferenciar maiúsculas (opcional); pagina: número da página, começando em 1 (padrão 1; menor que 1 vira 1); tamanho: itens por página (padrão 10, sem máximo; menor que 1 vira 1).

function buscar_auto_complete_evento(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteEvento = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaEventoAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_evento } from "termo_core/tracing";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_evento(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaEventoAutoComplete> · Rust: Result<tipos::PaginaEventoAutoComplete, ErroAoChamarServico> · veja PaginaEventoAutoComplete.

buscar_pelo_filtro_evento

GET/evento/filtro Exige credencial

Busca eventos por filtro

Qualquer colaborador da Termotubos logado no TermoAuth (perfil employee); não há área de permissão própria. Cada conta só enxerga e altera os próprios registros (os do sub do token): registro de outra conta responde como não encontrado. Devolve todos os eventos não excluídos da conta que casam com o filtro, sem paginação, do mais antigo para o mais recente (ocorrido_em). aplicativo_id e sessao_id filtram pelo id; tipo compara o valor exato, sem diferenciar maiúsculas (ERRO_JS, PROMISE_REJEITADA, CONSOLE, REQUISICAO, NAVEGACAO, SAIDA, PULSO, CLIQUE, DESEMPENHO, IDENTIFICACAO ou PERSONALIZADO); nome procura o trecho no nome; inicio e fim (data e hora ISO 8601) limitam o ocorrido_em. Sem filtro, devolve todos. Os eventos ficam guardados por 30 dias. Parâmetros de consulta, todos opcionais: aplicativo_id: id do aplicativo; sessao_id: id da sessão; tipo: tipo do evento (sem diferenciar maiúsculas): ERRO_JS, PROMISE_REJEITADA, CONSOLE, REQUISICAO, NAVEGACAO, SAIDA, PULSO, CLIQUE, DESEMPENHO, IDENTIFICACAO ou PERSONALIZADO; nome: trecho do nome, sem diferenciar maiúsculas; inicio: eventos ocorridos a partir desta data e hora ISO 8601, por exemplo 2026-10-07T00:00:00Z; fim: eventos ocorridos até esta data e hora ISO 8601.

function buscar_pelo_filtro_evento(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroEvento = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Evento>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_evento } from "termo_core/tracing";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_evento(credencial_de_acesso, { aplicativo_id: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.Evento>> · Rust: Result<Vec<tipos::Evento>, ErroAoChamarServico>

criar_evento

POST/evento/ingestao Pública

Recebe um lote de eventos de um site (ingestão)

Rota pública, sem token: é a que o script instalado no site do cliente chama. O corpo é JSON, opcionalmente comprimido em gzip (Content-Encoding: gzip), com a chave pública do aplicativo, os dados da sessao e a lista de eventos. O cabeçalho Origin (ou, na falta dele, Referer) precisa ser de um dos domínios cadastrados no aplicativo. Cada lote aceita até 500 eventos (o excedente é recusado) e eventos de tipo desconhecido são recusados; cada chave aceita até 6000 eventos por minuto. Tipos aceitos: ERRO_JS, PROMISE_REJEITADA, CONSOLE, REQUISICAO, NAVEGACAO, SAIDA, PULSO, CLIQUE, DESEMPENHO, IDENTIFICACAO e PERSONALIZADO. Com o comportamento PARAR_INGESTAO e a franquia do mês esgotada, o lote é recusado. Os eventos aceitos são gravados em segundo plano; a resposta diz quantos foram aceitos e recusados. Campos do corpo: chave: chave pública do aplicativo (prefixo pk_live_), obrigatória; sessao: dados da sessão de navegação que enviou o lote; eventos: eventos do lote; até 500 por lote, o excedente é recusado. Campos de sessao: sessao.sessao_externa: identificador da sessão gerado pelo script (obrigatório); sessao.anonimo_id: identificador anônimo do visitante (obrigatório); sessao.usuario_id: id do usuário logado no site (opcional); sessao.navegador: navegador (padrão vazio); sessao.sistema_operacional: sistema operacional (padrão vazio); sessao.dispositivo: tipo de dispositivo (padrão vazio); sessao.resolucao: resolução da tela (padrão vazio); sessao.pagina_inicial: endereço da primeira página (padrão vazio). Campos de cada item de eventos: evento_id: identificador do evento no navegador, usado para não gravar o mesmo evento duas vezes (até 120 caracteres); tipo: tipo do evento (obrigatório): ERRO_JS, PROMISE_REJEITADA, CONSOLE, REQUISICAO, NAVEGACAO, SAIDA, PULSO, CLIQUE, DESEMPENHO, IDENTIFICACAO ou PERSONALIZADO; outro valor é recusado; nome: nome do evento (padrão vazio; cortado em 120 caracteres); mensagem: mensagem (cortada em 2000 caracteres); pilha: pilha de chamadas (cortada em 8000 caracteres); arquivo: arquivo do erro (cortado em 2000 caracteres); linha: linha do erro; coluna: coluna do erro; url: endereço da página ou da requisição (cortado em 2000 caracteres); metodo: método HTTP da requisição; status: status HTTP da requisição; duracao_ms: duração em milissegundos; nivel: nível do console; seletor: seletor CSS do elemento clicado (cortado em 500 caracteres); texto: texto do elemento clicado (cortado em 200 caracteres); metrica: nome da métrica de desempenho; valor: valor da métrica de desempenho; usuario_id: id do usuário logado no site; payload: dados livres (JSON); ocorrido_em: data e hora ISO 8601 em que o evento ocorreu (padrão: a hora do recebimento).

function criar_evento(
  corpo_da_requisicao: tipos.EventoCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ResultadoIngestao>
Exemplo
import { criar_evento } from "termo_core/tracing";

const resposta = await criar_evento(corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.ResultadoIngestao> · Rust: Result<tipos::ResultadoIngestao, ErroAoChamarServico> · veja ResultadoIngestao.

buscar_pelo_id_evento

GET/evento/{id} Exige credencial

Busca um evento pelo id

Qualquer colaborador da Termotubos logado no TermoAuth (perfil employee); não há área de permissão própria. Cada conta só enxerga e altera os próprios registros (os do sub do token): registro de outra conta responde como não encontrado. Devolve o evento pelo id; registro excluído não é encontrado.

function buscar_pelo_id_evento(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Evento>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_evento } from "termo_core/tracing";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_evento(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Evento> · Rust: Result<tipos::Evento, ErroAoChamarServico> · veja Evento.

atualizar_pelo_id_evento

PATCH/evento/{id} Exige credencial

Atualiza um evento pelo id

Qualquer colaborador da Termotubos logado no TermoAuth (perfil employee); não há área de permissão própria. Cada conta só enxerga e altera os próprios registros (os do sub do token): registro de outra conta responde como não encontrado. Atualização parcial: só os campos enviados mudam. Muda o nome (cortado em 120 caracteres) e o payload (JSON livre) do evento. Campos do corpo, todos opcionais: nome: novo nome do evento (cortado em 120 caracteres); payload: novos dados livres do evento (JSON), que substituem os atuais.

function atualizar_pelo_id_evento(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.EventoAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Evento>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_evento } from "termo_core/tracing";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_evento(credencial_de_acesso, id, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Evento> · Rust: Result<tipos::Evento, ErroAoChamarServico> · veja Evento.

deletar_pelo_id_evento

DELETE/evento/{id} Exige credencial

Exclui um evento pelo id

Qualquer colaborador da Termotubos logado no TermoAuth (perfil employee); não há área de permissão própria. Cada conta só enxerga e altera os próprios registros (os do sub do token): registro de outra conta responde como não encontrado. Exclusão lógica: o registro some das leituras, mas não é apagado na hora.

function deletar_pelo_id_evento(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_evento } from "termo_core/tracing";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_evento(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

Evento

import type { Evento } from "termo_core/tracing";

export interface Evento {
  aplicativo_id: string;
  arquivo?: string | null;
  coluna?: number | null;
  conta_id: string;
  criado_em: string;
  duracao_ms?: number | null;
  id: string;
  linha?: number | null;
  mensagem?: string | null;
  metodo?: string | null;
  metrica?: string | null;
  navegador: string;
  nivel?: string | null;
  nome: string;
  ocorrido_em: string;
  payload?: unknown;
  pilha?: string | null;
  seletor?: string | null;
  sessao_id: string;
  status?: number | null;
  texto?: string | null;
  tipo: string;
  url?: string | null;
  valor?: number | null;
}

EventoAtualizar

import type { EventoAtualizar } from "termo_core/tracing";

export interface EventoAtualizar {
  nome?: string | null;
  payload?: unknown;
}

EventoCriar

import type { EventoCriar } from "termo_core/tracing";

export interface EventoCriar {
  chave: string;
  eventos: Array<EventoRecebido>;
  sessao: SessaoRecebida;
}

EventoRecebido

import type { EventoRecebido } from "termo_core/tracing";

export interface EventoRecebido {
  arquivo?: string | null;
  coluna?: number | null;
  duracao_ms?: number | null;
  evento_id?: string | null;
  linha?: number | null;
  mensagem?: string | null;
  metodo?: string | null;
  metrica?: string | null;
  nivel?: string | null;
  nome?: string;
  ocorrido_em?: string | null;
  payload?: unknown;
  pilha?: string | null;
  seletor?: string | null;
  status?: number | null;
  texto?: string | null;
  tipo: string;
  url?: string | null;
  usuario_id?: string | null;
  valor?: number | null;
}

PaginaEvento

import type { PaginaEvento } from "termo_core/tracing";

export interface PaginaEvento {
  itens: Array<PaginaEventoItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaEventoAutoComplete

import type { PaginaEventoAutoComplete } from "termo_core/tracing";

export interface PaginaEventoAutoComplete {
  itens: Array<PaginaEventoAutoCompleteItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaEventoAutoCompleteItensItem

import type { PaginaEventoAutoCompleteItensItem } from "termo_core/tracing";

export interface PaginaEventoAutoCompleteItensItem {
  id: string;
  rotulo: string;
}

PaginaEventoItensItem

import type { PaginaEventoItensItem } from "termo_core/tracing";

export interface PaginaEventoItensItem {
  aplicativo_id: string;
  arquivo?: string | null;
  coluna?: number | null;
  conta_id: string;
  criado_em: string;
  duracao_ms?: number | null;
  id: string;
  linha?: number | null;
  mensagem?: string | null;
  metodo?: string | null;
  metrica?: string | null;
  navegador: string;
  nivel?: string | null;
  nome: string;
  ocorrido_em: string;
  payload?: unknown;
  pilha?: string | null;
  seletor?: string | null;
  sessao_id: string;
  status?: number | null;
  texto?: string | null;
  tipo: string;
  url?: string | null;
  valor?: number | null;
}

ResultadoIngestao

import type { ResultadoIngestao } from "termo_core/tracing";

export interface ResultadoIngestao {
  aceitos: number;
  recusados: number;
}

SessaoRecebida

import type { SessaoRecebida } from "termo_core/tracing";

export interface SessaoRecebida {
  anonimo_id: string;
  dispositivo?: string;
  navegador?: string;
  pagina_inicial?: string;
  resolucao?: string;
  sessao_externa: string;
  sistema_operacional?: string;
  usuario_id?: string | null;
}

Nesta página