API Lua
Referência do export.
O contrato v1 recebe uma tabela Lua e retorna imediatamente o resultado da validação e da entrada na fila local.Assinatura
local result = exports.traki:log({
event = 'admin.player_banned',
severity = 'warning',
message = 'Jogador banido',
author = source,
target = targetSource,
metadata = {
reason = reason,
duration = duration
}
})Campos de entrada
| Campo | Tipo | Regra |
|---|---|---|
event | string · obrigatório | 3–64 caracteres, iniciando com letra minúscula. |
severity | string | `debug`, `info`, `warning`, `error` ou `critical`. Padrão: `info`. |
message | string | Descrição humana opcional, até 500 caracteres. |
author | number | Source do jogador que originou a ação. |
target | number | Source de outro jogador envolvido. |
metadata | table | Contexto JSON específico do evento. |
Nomeando eventos
Use um identificador estável no formato categoria.acao. Não coloque IDs, nomes de jogadores ou textos variáveis no nome do evento.
economy.purchaseinventory.item_transferredadmin.player_bannedgarage.vehicle_stored
Autor e alvo
`author` e `target` são sources de jogadores conectados. O Traki captura nome e identificadores disponíveis naquele instante. Não copie identificadores para `metadata`. Se ambos forem omitidos, o registro representa uma ação do próprio resource.
Retorno
-- Evento aceito na fila local
{ accepted = true, eventId = 'traki-...' }
-- Evento recusado antes de entrar na fila
{ accepted = false, error = 'INVALID_EVENT' }accepted=true confirma apenas a fila local. A comunicação HTTP ocorre de forma assíncrona e pode usar retentativas.
Limites do contrato
- Evento completo: até 16 KiB serializados.
- Metadata: profundidade máxima de 6 níveis e até 100 chaves.
- Valores: apenas tipos compatíveis com JSON.
- Resource de origem: detectado automaticamente, até 64 caracteres.
- Chaves semelhantes a senha, token, secret, cookie ou autorização são ocultadas.
Erros imediatos
| Código | Significado |
|---|---|
INVALID_INPUT | A entrada não é uma tabela Lua. |
INVALID_EVENT | Nome ausente ou fora do formato permitido. |
INVALID_SEVERITY | Severidade não reconhecida. |
INVALID_MESSAGE | Mensagem inválida ou maior que 500 caracteres. |
EVENT_TOO_LARGE | Evento serializado excedeu 16 KiB. |
QUEUE_PRESSURE | A fila cheia preservou eventos de maior prioridade. |