semillero-INVIMA/backend/README.md

1.3 KiB

INVIMA API (Version Modular)

Backend modular con:

  • autenticacion por usuario/contrasena (/api/auth/*)
  • sincronizacion INVIMA por Socrata
  • catalogo optimizado con filtros y categorias canonicas

Requisitos

  • Node.js 18+
  • PostgreSQL

Instalacion

npm install

Configuracion

  1. Copia .env.example a .env.
  2. Ajusta credenciales de BD y variables de auth.

Ejecutar

npm run dev

Endpoints

Salud

  • GET /api/health

Auth

  • POST /api/auth/login body: { "identifier": "admin", "password": "Admin123*" }
  • GET /api/auth/me (Bearer token)
  • POST /api/auth/logout (Bearer token)

INVIMA (requieren Bearer token)

  • GET /api/invima/datasets
  • GET /api/invima/categorias
  • GET /api/invima/filtros
  • POST /api/invima/sync
  • GET /api/invima/catalogo
  • GET /api/invima/catalogo/export?format=csv|xlsx

Mejoras aplicadas

  • Eliminado flujo legacy de productos y registros.
  • Catalogo unico con categoria canonica (categoria_canonica) y slug (categoria_slug).
  • Indices para busqueda:
    • GIN to_tsvector sobre search_text
    • indices por categoria, dataset, estado, modalidad, grupo y fechas
    • trigram opcional si pg_trgm esta disponible
  • Filtros adicionales: grupos, fechas, onlyVigentes, datasets, categorias.