Files
data_factory/app.md
T
egutierrez 4c49c1dac2 chore: auto-commit (3 archivos)
- app.md
- appicon.ico
- data_factory.db-shm

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 00:31:31 +02:00

88 lines
2.9 KiB
Markdown

---
name: data_factory
lang: cpp
domain: tools
version: 0.1.0
description: "Factorio-style data pipeline factory: extractors, transformers, databases, sinks. Live updates via WS pubsub."
tags: [imgui, dashboard, data-pipeline, factory, http, websocket]
uses_functions:
- empty_state_cpp_core
- badge_cpp_core
uses_types: []
uses_modules: [data_table_cpp]
framework: "imgui"
entry_point: "main.cpp"
dir_path: "apps/data_factory"
repo_url: "https://gitea.organic-machine.com/dataforge/data_factory"
icon:
phosphor: "factory"
accent: "#f97316"
e2e_checks:
- id: build_cmake
cmd: "cmake --build cpp/build -j --target data_factory"
timeout_s: 300
severity: critical
- id: binary_exists
cmd: "test -x cpp/build/linux/apps/data_factory/data_factory || test -x cpp/build/apps/data_factory/data_factory"
timeout_s: 5
severity: critical
- id: self_test
cmd: "(cpp/build/linux/apps/data_factory/data_factory --self-test 2>&1 || cpp/build/apps/data_factory/data_factory --self-test 2>&1) | head -20"
timeout_s: 10
expect_stdout_contains: "self-test"
severity: warning
- id: cpp_apps_conformance
cmd: "./fn doctor cpp-apps 2>&1 | grep -A1 data_factory || echo 'no issues'"
expect_stdout_contains: "no issues"
severity: critical
---
# data_factory
Factorio-style data pipeline factory: extractors, transformers, databases, sinks. Live updates via WS pubsub.
## Build
```bash
cd cpp && cmake --build build --target data_factory -j
```
## Run
```bash
./cpp/build/data_factory
```
## Paneles
| Panel | Que muestra |
|---|---|
| Map | Arbol plano agrupado por kind (extractor/transformer/database/sink/validator). Placeholder de futuro grafo. |
| Extractors | Tabla kind=extractor: Name / Function / Schedule / Last Run / Status / Rows-KB. |
| Transformers | Tabla kind=transformer: Name / Function / Last Run / Status / Rows-KB. |
| Databases | Tabla de DBs registradas: Label / Kind / URI / Tables / Size / Last Seen. |
| Sinks | Tabla kind=sink: Name / Function / Last Run / Status / Rows-KB. |
| Health | KPIs: runs_24h / success_rate / failed_24h+pending / throughput rows-KB 24h. |
| Node Detail | Panel lateral con node seleccionado: metadata + FnInfo card + ultimas 10 runs. |
| Live (WS) | Diag de conexion WS al /api/ws/datafactory de sqlite_api. |
## Backend
Apunta a `http://127.0.0.1:8484` (sqlite_api). Endpoints consumidos:
- `GET /api/datafactory/nodes?kind=...`
- `GET /api/datafactory/runs?node_id=...&limit=N`
- `GET /api/datafactory/databases`
- `GET /api/functions/{id}` (registry metadata para FnInfo)
- `GET /api/ws/datafactory` (snapshot + delta runs cada 250ms)
## Capability growth log
Una linea por bump SemVer. Bump-type segun `.claude/commands/version.md`:
- `major`: breaking observable (CLI args, schema BBDD propia, formato wire).
- `minor`: feature aditiva (nuevo panel, endpoint, opcion).
- `patch`: bugfix sin cambio observable.
- v0.1.0 (2026-05-18) — baseline.