chore: sync from fn-registry agent
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
---
|
||||
name: data_factory
|
||||
lang: cpp
|
||||
domain: tools
|
||||
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: []
|
||||
framework: "imgui"
|
||||
entry_point: "main.cpp"
|
||||
dir_path: "apps/data_factory"
|
||||
repo_url: "https://gitea.organic-machine.com/dataforge/data_factory"
|
||||
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)
|
||||
Reference in New Issue
Block a user