How barretopalacios/sistema-de-consulta-ruc-sunat works
Sistema de consulta del padrón reducido de contribuyentes SUNAT: la API y la Web UI reciben consultas por RUC, que se validan y resuelven mediante caché o SQLite. En paralelo, el CLI actualiza el padrón con detección de cambios, descarga, extracción, parseo, carga, indexación y publicación atómica; la API lee la base publicada y la Web UI también muestra estadísticas y estado de actualización. Las rutas principales y los servicios centrales están respaldados por código muestreado; capacidades de API documentadas sin flujo muestreado se representan con conexiones conservadoras.
Main entry points: update_service.py Coordinador actualización · service.py Servicio RUC · router.py Rutas RUC · routes.py Rutas web
Components 24
API y acceso
- Aplicación FastAPI
apps/api/main.py - Rutas RUC
apps/api/app/api/ruc/router.py - Autenticación
apps/api/app/core/security.py - Servicio RUC
apps/api/app/api/ruc/service.py - Caché TTL
apps/api/app/api/ruc/service.py - Exportación
apps/api/app/api/ruc/service.py - Estadísticas y estado
apps/api/app/api/ruc/service.py
Interfaz web
- Rutas web
apps/api/app/web/routes.py - Plantillas UI
apps/api/app/web
Actualizador padrón
- CLI actualizador
apps/updater/main.py - Coordinador actualización
apps/updater/services/update_service.py - Descarga y cambios
apps/updater/services/download_service.py - Extracción TXT
apps/updater/services/extract_service.py - Carga padrón
apps/updater/services/load_service.py - Parseo de líneas
apps/updater/services/parse_service.py - Creación índices
apps/updater/services/index_service.py - Publicación atómica
apps/updater/services/publish_service.py
Servicios compartidos
- Base contribuyentes
data - Conexión SQLite
packages/database/connection.py - Metadatos actualización
data - Detección codificación
packages/utils/encodings.py - Operaciones SQLite
packages/database/sqlite.py
Other components
- Usuario
- Fuente ZIP SUNAT
Connections 29
- Usuario → Aplicación FastAPI: solicita API
- Aplicación FastAPI → Rutas RUC: dirige rutas
- Rutas RUC → Autenticación: verifica token
- Rutas RUC → Servicio RUC: consulta y exporta
- Servicio RUC → Caché TTL: lee y escribe
- Servicio RUC → Conexión SQLite: abre conexión
- Conexión SQLite → Base contribuyentes: lee SQLite
- Usuario → Rutas web: busca en web
- Rutas web → Servicio RUC: consulta RUC
- Rutas web → Plantillas UI: renderiza páginas
- Rutas web → Metadatos actualización: lee estado
- Servicio RUC → Estadísticas y estado: calcula métricas
- Rutas RUC → Estadísticas y estado: solicita métricas
- Rutas RUC → Exportación: solicita exportación
- Usuario → CLI actualizador: ejecuta CLI
- CLI actualizador → Coordinador actualización: inicia actualización
- CLI actualizador → Descarga y cambios: comprueba cambios
- Coordinador actualización → Descarga y cambios: comprueba y descarga
- Descarga y cambios → Fuente ZIP SUNAT: consulta y descarga
- Descarga y cambios → Metadatos actualización: lee y guarda
- Coordinador actualización → Extracción TXT: extrae TXT
- Coordinador actualización → Carga padrón: carga registros
- Carga padrón → Parseo de líneas: parsea líneas
- Carga padrón → Detección codificación: detecta codificación
- Carga padrón → Operaciones SQLite: inserta lotes
- Coordinador actualización → Creación índices: crea índices
- Coordinador actualización → Publicación atómica: valida y publica
- Publicación atómica → Base contribuyentes: reemplaza base activa
- Rutas web → Servicio RUC: consulta estadísticas