GetFudo Integration Roadmap (Part 2)¶
Status: In Progress
Target Audience: Backend Developers, Agent Developers, GetFudo UI Team, QA
Goal: Finalize local IPC and backend contracts so the GetFudo User App can integrate with real device agents without direct OS access.
1. Executive Summary¶
This roadmap defines the implementation and contract details for the Part 2 preparation phase:
- Local IPC for desktop UI consumption.
- Device DNA persistence and telemetry ingestion.
- Automated device provisioning for setup wizard flow.
- Frozen mock contracts for frontend stubs.
The outcome is a stable API and payload layer that unblocks GetFudo parallel development.
2. Architecture Strategy¶
2.1 Local IPC Strategy¶
The real device agent provides a lightweight local FastAPI server on localhost:
GET /statusGET /healthGET /last-telemetry
This design allows Electron/React clients to query runtime state without direct hardware or OS calls.
2.2 Backend Strategy¶
Backend captures and serves agent-state data through APIs:
POST /api/v1/agent/registerPOST /api/v1/agent/heartbeatPOST /api/v1/agent/telemetryPOST /api/v1/devices/provisionGET /api/v1/agent/{device_id}/status
Device DNA fields persisted in devices:
os_detailsmac_addresswan_ip
Telemetry metrics persisted in device_metrics.
3. API Contract Summary¶
3.1 Telemetry API¶
Endpoint: POST /api/v1/agent/telemetry
Mode: Single payload and bulk array payload supported.
Single payload:
{
"device_id": "physical-pos-001",
"cpu_usage": 20.5,
"memory_usage": 58.1,
"disk_usage": 49.3,
"timestamp": "2026-04-09T10:10:00+00:00"
}
Bulk payload:
[
{
"device_id": "physical-pos-001",
"cpu_usage": 20.5,
"memory_usage": 58.1,
"disk_usage": 49.3,
"timestamp": "2026-04-09T10:10:00+00:00"
},
{
"device_id": "physical-pos-001",
"cpu_usage": 22.0,
"memory_usage": 60.0,
"disk_usage": 50.0,
"timestamp": "2026-04-09T10:11:00+00:00"
}
]
3.2 Provision API¶
Endpoint: POST /api/v1/devices/provision
Request:
{
"site_id": "site-001",
"user_identity": "setup.user@getfudo.com",
"device_name": "Front Counter POS",
"device_type": "physical_terminal"
}
Response:
{
"status": "success",
"message": "Device provisioned successfully",
"data": {
"device_id": "physical_terminal-a1b2c3d4",
"device_token": "generated-token",
"secret_key": "generated-secret",
"site_id": "site-001",
"created_at": "2026-04-09T10:15:00+00:00"
}
}
3.3 Local IPC Status Example¶
GET /status response:
{
"device_id": "physical-pos-001",
"status": "ONLINE",
"last_heartbeat": "2026-04-09T10:05:00+00:00",
"last_telemetry": {
"device_id": "physical-pos-001",
"cpu_usage": 21.2,
"memory_usage": 54.3,
"disk_usage": 47.8,
"timestamp": "2026-04-09T10:05:00+00:00"
}
}
4. Mock Contract Artifacts¶
Canonical stub files for GetFudo UI implementation:
docs/contracts/mock_dna.jsondocs/contracts/mock_telemetry.json
These files are the frozen payload contract for development and QA mocking.
5. Delivery Checklist¶
- Local IPC endpoints reachable from User App host.
- Swagger/OpenAPI displays telemetry and provision endpoints.
- DNA fields are persisted and queryable in
devices. - Provision flow returns
device_idand one-timesecret_key. - Mock files are versioned and shared with GetFudo.