Pular para o conteúdo principal

Queries e filtros

O parâmetro query seleciona a tabela. Os demais parâmetros da query string são filtros opcionais, validados contra uma whitelist de colunas. Qualquer parâmetro fora da whitelist (e diferente de inicio/fim) devolve 400.

Regras de filtro

Tipo de colunaComo filtra
InteiroIgualdade exata: coluna = valor. Valor não-inteiro → 400.
StringBusca parcial case-insensitive: LOWER(coluna) LIKE '%valor%'.
inicio / fimIntervalo de created_at. Veja Filtro de datas.

Toda query retorna SELECT * com ORDER BY created_at DESC, id DESC e até 1000 linhas por página (max_rows). Havendo mais, a resposta traz next_cursor — veja Paginação. Os valores voltam como string.

:::info inicio/fim são opcionais Diferente do que versões antigas do README diziam, nenhuma data é obrigatória — o único parâmetro obrigatório é query. Mas sem intervalo a query escaneia a tabela inteira (custo alto). Sempre que possível, informe inicio e fim. :::


csps

ColunaTipoFiltro
idinteiroigualdade
datastringLIKE
GET /?query=csps&id=34788013
GET /?query=csps&data=font-src&inicio=2026-05-14
GET /?query=csps&inicio=2026-05-01&fim=2026-05-15

audits

Trilha de auditoria (audited gem).

ColunaTipoFiltro
idinteiroigualdade
auditable_idinteiroigualdade
user_idinteiroigualdade
versioninteiroigualdade
associated_idinteiroigualdade
auditable_typestringLIKE
user_typestringLIKE
usernamestringLIKE
actionstringLIKE
audited_changesstringLIKE
commentstringLIKE
remote_addressstringLIKE
associated_typestringLIKE
GET /?query=audits&auditable_type=User&inicio=2026-05-14
GET /?query=audits&user_id=42&inicio=2026-05-01&fim=2026-05-15
GET /?query=audits&action=update&inicio=2026-05-14 08:00:00&fim=2026-05-14 09:00:00

access_logs

Logs de acesso/requisições.

ColunaTipoFiltro
idinteiroigualdade
user_idinteiroigualdade
customer_idinteiroigualdade
school_idinteiroigualdade
school_year_idinteiroigualdade
statusinteiroigualdade
pathstringLIKE
methodstringLIKE
controllerstringLIKE
actionstringLIKE
ipstringLIKE
GET /?query=access_logs&status=200&method=GET&inicio=2026-05-14
GET /?query=access_logs&path=sign_in&inicio=2026-05-14
GET /?query=access_logs&inicio=2026-05-01&fim=2026-05-15

:::note Segurança contra injection Strings livres (username, action, path…) vão como bind parameters (? / ExecutionParameters do Athena) — nunca interpoladas no SQL. Inteiros e datas são validados (int() / date.fromisoformat()) e inlinados como literais. Nomes de coluna são whitelisted no código. :::