Files
data_factory/app.md
T
2026-05-16 16:34:49 +02:00

2.5 KiB

name, lang, domain, description, tags, uses_functions, uses_types, framework, entry_point, dir_path, repo_url, e2e_checks
name lang domain description tags uses_functions uses_types framework entry_point dir_path repo_url e2e_checks
data_factory cpp tools Factorio-style data pipeline factory: extractors, transformers, databases, sinks. Live updates via WS pubsub.
imgui
dashboard
data-pipeline
factory
http
websocket
empty_state_cpp_core
badge_cpp_core
imgui main.cpp apps/data_factory https://gitea.organic-machine.com/dataforge/data_factory
id cmd timeout_s severity
build_cmake cmake --build cpp/build -j --target data_factory 300 critical
id cmd timeout_s severity
binary_exists test -x cpp/build/linux/apps/data_factory/data_factory || test -x cpp/build/apps/data_factory/data_factory 5 critical
id cmd timeout_s expect_stdout_contains severity
self_test (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 10 self-test warning
id cmd expect_stdout_contains severity
cpp_apps_conformance ./fn doctor cpp-apps 2>&1 | grep -A1 data_factory || echo 'no issues' no issues critical

data_factory

Factorio-style data pipeline factory: extractors, transformers, databases, sinks. Live updates via WS pubsub.

Build

cd cpp && cmake --build build --target data_factory -j

Run

./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)