2.8 KiB
2.8 KiB
Componentes backend
flowchart TD
server["server.js<br/>arranque"] --> pool["Pool PostgreSQL<br/>src/db/pool.js"]
server --> ensureAuth["ensureAuthTables<br/>ensureDefaultAdmin<br/>cleanupExpiredSessions"]
server --> ensureInvima["ensureInvimaTables"]
server --> app["Express app<br/>src/app.js"]
app --> cors["cors<br/>CORS_ORIGINS"]
app --> json["express.json<br/>limit 1mb"]
app --> apiRouter["/api<br/>routes/index.js"]
app --> errorMiddleware["errorMiddleware"]
apiRouter --> health["GET /health"]
apiRouter --> authRoutes["/auth<br/>auth.routes.js"]
apiRouter --> invimaRoutes["/invima<br/>invima.routes.js"]
authRoutes --> loginRoute["POST /login"]
authRoutes --> meRoute["GET /me"]
authRoutes --> logoutRoute["POST /logout"]
loginRoute --> authService["auth.service.js<br/>login, createSession"]
meRoute --> requireAuth["requireAuth<br/>auth.middleware.js"]
logoutRoute --> requireAuth
logoutRoute --> logoutService["auth.service.js<br/>logout"]
requireAuth --> authenticate["authenticateToken"]
authenticate --> pool
authService --> pool
logoutService --> pool
invimaRoutes --> requireAuth
invimaRoutes --> datasets["GET /datasets<br/>listInvimaDatasets"]
invimaRoutes --> categorias["GET /categorias<br/>listInvimaCategories"]
invimaRoutes --> filtros["GET /filtros<br/>listInvimaFilterOptions"]
invimaRoutes --> stats["GET /sync/stats<br/>getInvimaSyncStats"]
invimaRoutes --> job["GET /sync/job<br/>getInvimaSyncJob"]
invimaRoutes --> sync["POST /sync<br/>startInvimaSyncJob"]
invimaRoutes --> catalogo["GET /catalogo<br/>getInvimaCatalog"]
invimaRoutes --> exportar["GET /catalogo/export<br/>csv o xlsx"]
categorias --> invimaService["invima/service.js"]
filtros --> invimaService
stats --> invimaService
catalogo --> invimaService
exportar --> invimaService
sync --> syncManager["sync-job-manager.js"]
syncManager --> invimaService
invimaService --> queries["Consultas SQL<br/>invima_api_catalog<br/>invima_api_raw"]
queries --> pool
invimaService --> adapters["adapters.js<br/>normalizacion"]
invimaService --> apiInvima["APIinvima.js<br/>fetchInvimaDataset"]
apiInvima --> config["APIinvima.json<br/>datasets Socrata"]
apiInvima -- "HTTPS fetch" --> socrata["datos.gov.co/resource"]
Archivos analizados
backend/src/server.jsbackend/src/app.jsbackend/src/routes/index.jsbackend/src/routes/auth.routes.jsbackend/src/routes/invima.routes.jsbackend/src/middlewares/auth.middleware.jsbackend/src/middlewares/error.middleware.jsbackend/src/auth/auth.service.jsbackend/src/db/pool.jsbackend/src/config/env.jsbackend/invima/service.jsbackend/invima/sync-job-manager.jsbackend/invima/adapters.jsbackend/APIinvima.jsbackend/APIinvima.jsonbackend/package.json