semillero-INVIMA/backend/README.md

51 lines
1.3 KiB
Markdown

# 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`.