# 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 ```bash npm install ``` ## Configuracion 1. Copia `.env.example` a `.env`. 2. Ajusta credenciales de BD y variables de auth. ## Ejecutar ```bash 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`.