Link Analysis Platform is a compact full-stack application for relational investigation, due diligence, compliance analysis, and fraud review.
It lets analysts:
- ingest graph data from tabular CSV and Excel files through a two-path upload model
- explore entities and relationships in an interactive graph
- compute shortest paths and connected communities
- run configurable risk scoring
- export HTML reports
- manage ontology, snapshots, and outbound webhooks
- ask graph-aware questions through a chat assistant
The current implementation includes:
- React 19 frontend with a graph-first investigation workspace
- Express API mounted from
server.ts - SQLite persistence in
data/graph.db - runtime-editable ontology stored in
ontology_config.json - guided ingestion via
/api/ingest/wizard/* - session-based analysis-builder workflows via
/api/analysis/* - JWT authentication with
viewer,analyst, andadminroles - audit logging for key actions
- Anthropic-backed chat assistance for graph Q&A
- Graph exploration with search, type filters, node inspection, edge inspection, and multiple views
- Shortest-path tracing between two entities
- Community detection
- Risk analysis with graph overlay and downloadable HTML report
- Snapshot save, load, delete, and restore workflows
- Ontology editing for entity types, relationship types, and risk rules
- Webhook configuration and delivery testing
- Analysis Builder for profiling, normalization, entity suggestion, relationship proposal, risk proposal, and final publish/import flows
The repository currently has two active tabular ingestion paths.
- Guided Ingestion Wizard under
/api/ingest/wizard/* - Analysis Builder under
/api/analysis/*
The wizard is the shorter mapping flow.
POST /api/ingest/wizard/previewaccepts a multipartfile- supported inputs are
csv,xlsx, andxls - the response returns
file_id,file_type,columns,preview, andtotal_rows POST /api/ingest/wizard/confirmconsumesfile_id,file_type,node_definitions,edge_definitions, and optionaldry_run
The Analysis Builder is the richer session-based flow.
POST /api/analysis/sessioncreates asession_idfrom an uploaded file and returns afile_keyPOST /api/analysis/session/:id/fileadds another file to the same sessionPOST /api/analysis/session/:id/normalizestores normalization rules perfile_keyPOST /api/analysis/session/:id/entities,relationships, andrisk-proposalsprogressively accept the modelPOST /api/analysis/session/:id/confirmfinalizes withmode: model_only | model_and_dataand optionaldry_run
There is no longer a live smart ingest route. Older planning documents that mention it should be read as historical context only.
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS |
| Visualization | react-force-graph-2d |
| Backend | Node.js, Express 4, tsx |
| Database | SQLite with better-sqlite3 |
| Auth | JWT + bcryptjs |
| AI | Anthropic HTTP API |
- Node.js 18+
- npm 9+
npm installCreate .env from .env.example and set at least:
ANTHROPIC_API_KEY=your_anthropic_api_key_here
JWT_SECRET=replace_this_with_a_long_random_secretnpm run devThe application listens on http://localhost:3000.
npm run build
npm run startIf the users table is empty on startup, the backend creates:
- username:
admin - password:
admin123
Change or remove that credential outside disposable local environments.
server.ts: API bootstrap and frontend servingsrc/App.tsx: main application shellserver/routes/: HTTP routes grouped by domainserver/db.ts: SQLite schema bootstrapontology_config.json: active ontology and risk rulesdocs/: implementation-aligned technical and business documentation
docs/README.md: documentation indexdocs/architecture.md: system architecture and runtime modeldocs/api.md: endpoint inventory and contractsdocs/data-model.md: persistence, ontology, graph, and audit modeldocs/operations.md: runtime and deployment notesdocs/templates/: reusable use-case templates and mapping references
- The active AI integration in the backend is Anthropic-based.
package.jsonstill includes@google/genai, but the current documented backend flows use Anthropic endpoints.- The application currently hardcodes port
3000inserver.ts.
Link Analysis Platform es una aplicación full-stack compacta para investigación relacional, due diligence, análisis de compliance y revisión de fraude.
Permite a los analistas:
- ingerir datos de grafo desde ficheros tabulares CSV y Excel mediante un modelo de carga con dos rutas activas
- explorar entidades y relaciones en un grafo interactivo
- calcular caminos más cortos y comunidades conectadas
- ejecutar scoring de riesgo configurable
- exportar informes HTML
- gestionar ontología, snapshots y webhooks salientes
- hacer preguntas sobre el grafo mediante un asistente conversacional
La implementación actual incluye:
- frontend en React 19 con un workspace de investigación centrado en grafo
- API Express montada desde
server.ts - persistencia SQLite en
data/graph.db - ontología editable en runtime guardada en
ontology_config.json - ingesta guiada mediante
/api/ingest/wizard/* - flujos basados en sesión de Analysis Builder mediante
/api/analysis/* - autenticación JWT con roles
viewer,analystyadmin - auditoría de acciones clave
- asistencia conversacional basada en Anthropic para preguntas sobre el grafo
- Exploración de grafo con búsqueda, filtros por tipo, inspección de nodos, inspección de relaciones y varias vistas
- Trazado de camino más corto entre dos entidades
- Detección de comunidades
- Análisis de riesgo con overlay en el grafo e informe HTML descargable
- Flujos de guardar, cargar, borrar y restaurar snapshots
- Edición de ontología para tipos de entidad, tipos de relación y reglas de riesgo
- Configuración y prueba de entrega de webhooks
- Analysis Builder para perfilado, normalización, sugerencia de entidades, propuesta de relaciones, propuesta de riesgos y publicación/importación final
El repositorio tiene hoy dos rutas activas de ingesta tabular.
- Guided Ingestion Wizard bajo
/api/ingest/wizard/* - Analysis Builder bajo
/api/analysis/*
El wizard es el flujo corto de mapeo.
POST /api/ingest/wizard/previewacepta unfilemultipart- los formatos soportados son
csv,xlsxyxls - la respuesta devuelve
file_id,file_type,columns,previewytotal_rows POST /api/ingest/wizard/confirmconsumefile_id,file_type,node_definitions,edge_definitionsydry_runopcional
El Analysis Builder es el flujo rico basado en sesión.
POST /api/analysis/sessioncrea unsession_iddesde un fichero subido y devuelve unfile_keyPOST /api/analysis/session/:id/fileañade otro fichero a la misma sesiónPOST /api/analysis/session/:id/normalizeguarda reglas de normalización porfile_keyPOST /api/analysis/session/:id/entities,relationshipsyrisk-proposalsaceptan progresivamente el modeloPOST /api/analysis/session/:id/confirmfinaliza conmode: model_only | model_and_dataydry_runopcional
Ya no existe una ruta viva de smart ingest. Los documentos antiguos que la mencionen deben leerse solo como contexto histórico.
| Capa | Tecnología |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS |
| Visualización | react-force-graph-2d |
| Backend | Node.js, Express 4, tsx |
| Base de datos | SQLite con better-sqlite3 |
| Autenticación | JWT + bcryptjs |
| IA | API HTTP de Anthropic |
- Node.js 18 o superior
- npm 9 o superior
npm installCrea .env a partir de .env.example y define al menos:
ANTHROPIC_API_KEY=your_anthropic_api_key_here
JWT_SECRET=replace_this_with_a_long_random_secretnpm run devLa aplicación escucha en http://localhost:3000.
npm run build
npm run startSi la tabla users está vacía al arrancar, el backend crea:
- usuario:
admin - contraseña:
admin123
Conviene cambiar o eliminar esa credencial fuera de entornos locales desechables.
server.ts: arranque de API y servido del frontendsrc/App.tsx: shell principal de la aplicaciónserver/routes/: rutas HTTP agrupadas por dominioserver/db.ts: bootstrap del esquema SQLiteontology_config.json: ontología activa y reglas de riesgodocs/: documentación técnica y de negocio alineada con la implementación
docs/README.md: índice de documentacióndocs/architecture.md: arquitectura del sistema y modelo de ejecucióndocs/api.md: inventario de endpoints y contratosdocs/data-model.md: persistencia, ontología, grafo y modelo de auditoríadocs/operations.md: notas de ejecución y desplieguedocs/templates/: plantillas reutilizables por caso de uso y referencias de mapeo
- La integración de IA activa en backend está basada en Anthropic.
package.jsontodavía incluye@google/genai, pero los flujos backend documentados hoy usan endpoints de Anthropic.- La aplicación actualmente fija el puerto
3000directamente enserver.ts.