Repo: openaudit-search-api
Tags: priority:high type:feature area:catalog
Visão geral
Criar o módulo de acesso ao catálogo canônico (artefato gerado pelo openaudit-entity-catalog) para retornar candidatos de forma eficiente.
Contexto
O search-api não constrói o catálogo; ele consome um catalog.sqlite com FTS5. Precisamos de queries eficientes, read-only, com paginação, e retornando dados mínimos para desambiguação.
Descrição
Implementar src/modules/catalog/ com:
- Leitura de
CATALOG_DB_PATH (SQLite) em modo read-only.
- Query FTS5 pelo termo normalizado:
- buscar por
display_name, normalized_name e aliases.
- Filtros (se disponíveis no schema):
context_uf, context_year, context_role.
- Paginação:
limit (max 25), offset.
- Retornar campos necessários ao schema
Candidate.
Regras:
- Não logar queries brutas.
- Manter conexão e preparar statements (performance).
- Respeitar limites de paginação e rate limit (anti-enumeração).
Impacto
Habilita o core do MVP: busca rápida e consistente. Sem isso o /search vira um stub e a UI não evolui.
Referências
Definição de pronto
Repo:
openaudit-search-apiTags:
priority:hightype:featurearea:catalogVisão geral
Criar o módulo de acesso ao catálogo canônico (artefato gerado pelo openaudit-entity-catalog) para retornar candidatos de forma eficiente.
Contexto
O search-api não constrói o catálogo; ele consome um
catalog.sqlitecom FTS5. Precisamos de queries eficientes, read-only, com paginação, e retornando dados mínimos para desambiguação.Descrição
Implementar
src/modules/catalog/com:CATALOG_DB_PATH(SQLite) em modo read-only.display_name,normalized_namee aliases.context_uf,context_year,context_role.limit(max 25),offset.Candidate.Regras:
Impacto
Habilita o core do MVP: busca rápida e consistente. Sem isso o /search vira um stub e a UI não evolui.
Referências
Definição de pronto
CATALOG_DB_PATHeCATALOG_META_PATHse aplicável)