Informes empresariales + IA

Deja de programar informes.
Describelos.

ReportIA reemplaza a Crystal Reports y herramientas legacy. Describe lo que necesitas en lenguaje natural, la IA lo disena y tu organizacion lo explota desde una web que ya no necesita IA.

Descubre como funciona ↓

Los informes empresariales estan rotos

Cada nuevo informe pasa por el mismo ciclo: reunion, especificacion, desarrollo, pruebas, despliegue. Y cuando llega al usuario, ya quiere cambios.

El cuello de botella es el programador

Cada informe requiere un desarrollador que entienda la base de datos, escriba SQL, diseñe el layout y lo conecte todo. El equipo de negocio espera semanas por un reporte que a veces no es lo que pidieron.

🔒

Herramientas legacy que encadenan

Crystal Reports, SSRS, Jasper... Tecnologias de otra epoca con licencias caras, curva de aprendizaje enorme y dependencia total del proveedor. Migrar es practicamente empezar de cero.

💥

Cada cliente, cada base de datos, otro mundo

SQL Server aqui, PostgreSQL alla, Oracle en produccion, MySQL en la filial. Cada proyecto arranca de cero porque la herramienta no abstrae la complejidad del origen de datos.

👀

Sin trazabilidad ni control

Quien ejecuto que informe, con que parametros, contra que version del schema. Si hay un error en los datos, reconstruir lo que paso es arqueologia. Y si alguien edita datos desde el informe, no hay registro.

🎨

La imagen corporativa no existe

Cada informe tiene su propio estilo. Colores distintos, fuentes distintas, layouts que no se parecen entre si. La marca se diluye en un mar de PDFs inconsistentes.

🚧

Escalar es duplicar

Nuevo cliente o nueva base de datos significa copiar, pegar y adaptar. No hay reutilizacion real. Cada variante es un informe nuevo que mantener.

De la descripcion al informe, sin programar

ReportIA invierte el flujo. En vez de que un programador codifique cada informe, una IA lo disena a partir de la conversacion con el experto de negocio.

1

Absorbe el schema

ReportIA introspecta las bases de datos del cliente — tablas, columnas, relaciones, vistas, procedimientos — y guarda un snapshot versionado. La IA trabaja sobre ese snapshot, nunca contra la base de datos en vivo.

2

Conversa y disena

A traves de un asistente IA llamado Ria, el usuario describe lo que necesita. Ria genera la SQL, los parametros, el layout y aplica el estilo visual del cliente. Todo validado contra el schema real.

3

Congela y explota

Cuando el informe esta aprobado, se guarda como plantilla inmutable. A partir de ahi se ejecuta desde una web que no necesita IA — es rapida, predecible y funciona sin conexion a internet.

No es otro generador de informes. Es una forma distinta de pensar.

Construido desde cero para resolver los problemas reales que las herramientas legacy ignoran.

🤖

IA para disenar, no para ejecutar

La IA participa en el diseno del informe. En la ejecucion diaria no interviene. Sin costes de tokens recurrentes, sin latencia, sin dependencia de terceros.

📚

Multi-motor nativo

SQL Server, PostgreSQL, MySQL y Oracle desde el primer dia. Misma plantilla, distintos origenes. Sin adaptadores ni plugins de terceros.

🎨

Marca corporativa automatica

Perfiles de estilo con logos, paleta, tipografias, margenes, formato de tablas y locale. Se aplica a todos los informes del cliente sin tocar nada.

📋

Plantillas editables (CRUD)

No solo lectura. Las plantillas pueden permitir editar, insertar y eliminar datos directamente desde el informe, con validacion, permisos y auditoria completa por celda.

🛡

Trazabilidad total

Cada accion queda registrada: quien, cuando, que, con que resultado. Hash chaining SHA-256 en el log de auditoria para garantizar la integridad. Diff visual de cada cambio.

🌐

Zero-internet en explotacion

Todos los assets son locales — fuentes, iconos, librerias JS. La web de explotacion funciona en redes aisladas, sin llamadas externas, sin CDNs.

Construido para durar

Clean Architecture, .NET 8, zero dependencias externas en runtime. Cada decision tecnica existe por una razon.

Dos ejecutables, siete librerias, un metastore

Separacion estricta de responsabilidades. Cada capa depende solo de la anterior. Sin referencias circulares, sin acoplamientos ocultos.

Ejecutables
ReportIA.Web
ASP.NET Core MVC
ReportIA.Mcp
Servidor MCP (stdio)
↓ depende de ↓
Librerias
Execution
Rendering
Styles
Introspection
↓ depende de ↓
Cimiento
Core
Tipos, contratos
Metastore
EF Core, 16 entidades
Security
Secretos, perfiles
↓ persiste en ↓
Infra
SQLite
SQL Server
PostgreSQL
↓ conecta a origenes ↓
Origenes datos
SQL Server
PostgreSQL
MySQL / MariaDB
Oracle

Decisiones deliberadas, no accidentes

Cada pieza del stack existe porque resuelve un problema concreto. Sin frameworks de moda, sin dependencias innecesarias.

Runtime y lenguaje

Runtime .NET 8 LTS
Lenguaje C# 12
Arquitectura Clean Architecture
DI Microsoft.Extensions nativo

Persistencia

ORM EF Core 8 (Code First)
Queries dinamicas Dapper
Metastore SQLite / SqlServer / PG
Migraciones 3 proveedores paralelos

Frontend web

Vistas Razor (.cshtml)
CSS Bootstrap 5.3.3 local
Graficos Chart.js 4.4.7 local
Tablas Simple-DataTables 9.2.1

IA y MCP

Protocolo Model Context Protocol
Tools MCP ~28 herramientas
Proveedores IA OpenAI / Anthropic / Ollama
Asistente Ria (personalidad propia)

Render

HTML StringBuilder + CSS vars
PDF QuestPDF (.NET nativo)
CSV Export Nativo
Estilos CssGenerator + StyleProfile

Observabilidad y resiliencia

Trazas / Metricas OpenTelemetry 1.15
Exportador OTLP (Grafana, Jaeger...)
Resiliencia Polly v8 (retry + breaker)
Rate Limiting FixedWindow nativo

Metastore: la fuente de verdad

El metastore almacena todo: clientes, fuentes de datos, schemas, plantillas, estilos, auditoria, dashboards y menus.

EntidadDescripcionRol
ClientEntityClientes del sistemaOrganizacion
DataSourceEntityFuentes de datos (BBDD externas)Conexion
ConnectionProfileEntityPerfiles de conexion (Read / Write / Introspect)Seguridad
SchemaSnapshotEntitySnapshots versionados del schemaIntrospection
SchemaObjectEntityObjetos desnormalizados (tablas, columnas, FKs)Exploracion
TemplateEntityPlantillas de informe (JSON autocontenido)Diseno
TemplateSchemaReferenceEntityReferencias de schema usadas por plantillasValidacion
StyleProfileEntityPerfiles de estilo visual completosMarca
StyleAssetEntityAssets binarios (logos, fuentes custom)Marca
ExecutionRunEntityEjecuciones de plantillasHistorial
AuditLogEntityLog de auditoria con hash chaining SHA-256Compliance
DataChangeLogEntityCambios de datos por celda (Before / After)Trazabilidad
SessionEntitySesiones MCP (Ria)IA
SessionEventEntityEventos dentro de cada sesionIA
DashboardEntityDashboards personalizables con widgetsPresentacion
MenuConfigurationEntityMenus de navegacion dinamicos por clienteUX

~28 herramientas para que Ria diseñe

El servidor MCP expone herramientas que Claude (Ria) usa para registrar clientes, ingestar schemas, diseñar plantillas, validar SQL y mas.

👥 Gestion de clientes y fuentes
register_client list_clients get_client register_datasource list_datasources add_connection_profile test_connection
🔎 Schema e introspection
ingest_schema list_snapshots get_schema_diff list_tables describe_table find_columns list_views list_procedures
📄 Diseno de plantillas
preview_template save_template list_templates get_template create_editable_template validate_sql validate_template_sql
🎨 Estilos y presentacion
list_style_presets create_style_profile clone_style_profile list_style_profiles upload_asset create_dashboard update_dashboard get_menu update_menu

Seguridad como requisito, no como extra

Cada capa del sistema aplica el principio de minimo privilegio. Cada accion queda registrada.

🔒 SQL parametrizada siempre

Ninguna SQL se construye por concatenacion. Toda variable va como parametro con nombre. Un analizador Roslyn (RSQL001) lo verifica en tiempo de compilacion.

🔐 Perfiles de conexion minimos

Cada operacion usa el perfil minimo: introspect para ingestar, read para informes, write solo cuando la plantilla lo permite explicitamente.

📜 Auditoria con hash chaining

El log de auditoria usa encadenamiento SHA-256. Cada entrada referencia el hash de la anterior. Un job en background verifica la integridad periodicamente.

🛡 Cabeceras de seguridad

CSP, X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy. Cookies HttpOnly, Secure, SameSite. Rate limiting por endpoint.

🔑 Secretos fuera del codigo

Credenciales en UserSecrets (dev) o Azure Key Vault / AWS Secrets Manager (prod). Ningun string de conexion real en el repositorio. Gitleaks en CI.

🛠 Guardian SQL contra schema

Toda SQL de una plantilla se valida contra el schema snapshot antes de guardarse. Si una tabla o columna no existe, se rechaza y se sugiere la correccion mas cercana.

Cobertura real, no decorativa

Tests unitarios, de integracion y e2e. Cada feature se entrega con sus tests. xUnit + FluentAssertions + Moq.

275
Tests pasando — 0 fallos 9 proyectos de test, cobertura en todas las capas
Core.Tests 39
Security.Tests 12
Introspection.Tests 24
Metastore.Tests 21
Execution.Tests 52
Styles.Tests 43
Rendering.Tests 24
Mcp.Tests 24
Web.Tests 36

La interfaz que usa el usuario final

ASP.NET Core MVC con Razor. Sin SPA, sin npm, sin bundlers. Todo local, todo rapido.

Paginas principales

Dashboard/Dashboard
Plantillas/Templates
Ejecutar informe/Reports/Run/{id}
Informe IA/AiReport

Administracion

Auditoria/Audit
Configuracion IA/Settings
Ayuda/Help
Health checks/health/live

APIs

Update datosPOST /api/data/update
Insert datosPOST /api/data/insert
Delete datosDELETE /api/data/delete
Assets estilo/assets/{id}/{kind}

Formatos de salida

HTML interactivoTablas + graficos
PDF corporativoQuestPDF nativo
CSV exportDescarga directa
Inline editingCRUD en el informe