Skip to content

[openaudit-search-api] Implementar CatalogClient (SQLite read-only + FTS5): consulta por texto e filtros #7

Description

@4lessandrodev

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

  • CatalogClient implementado com queries FTS5 e paginação
  • Config via env (CATALOG_DB_PATH e CATALOG_META_PATH se aplicável)
  • Testes de unidade para queries (com DB de teste pequeno)
  • Sem dependência de internet/serviços externos

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Task.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions