Process topology for each deployment topology (the retired mode name is noted per section — see Overview § Technical topologies). All ports verified from source (see Network & Ports for the full table).
Single on-premise machine. No AI layer. The clarity Tauri binary is the only managed process.
graph TD
subgraph MACHINE["On-Premise Machine (Windows / macOS)"]
subgraph CLARITY["Clarity Binary (Tauri)"]
WARP["Warp HTTPS Server\n0.0.0.0:3030 · TLS"]
PM["Process Manager"]
MONITOR["Monitor Agent"]
BACKUP["Backup Scheduler"]
MQTT_CLIENT["MQTT Client"]
end
subgraph PYTHON_PROCS["Python Services (managed by Process Manager)"]
PY_SVC["FastAPI/Flask services\n(ports from python_services.json)"]
end
subgraph STORAGE["Storage (on disk)"]
BIN[".bin day files\n(data/ directory)"]
DB["pulse-db.sqlite"]
BACKUP_DIR["backup/\n(tar.gz archives)"]
CERTS["certs/cert.pem\ncerts/key.pem\n(self-signed TLS)"]
end
subgraph MQTT_SERVICE["MQTT (Windows only)"]
MOSQUITTO["Mosquitto Windows Service\n127.0.0.1:1883"]
end
subgraph WINDOWS_ONLY["Windows-only (autostart)"]
SCHTASK["Task Scheduler Watchdog\n(ClarityEngineWatchdog)"]
end
end
subgraph EXTERNAL_HIST["External"]
BROWSER["Browser\nhttps://clarity.local:3030"]
PI_SERVER["OSI PI Server\n(HTTPS, customer network)"]
IOT["IoT / MQTT Devices\n(publish to :1883)"]
end
BROWSER -->|HTTPS| WARP
WARP -->|reads/writes| BIN
WARP -->|reads/writes| DB
PM -->|spawns| PY_SVC
WARP -->|proxies| PY_SVC
BACKUP -->|archives| BACKUP_DIR
BACKUP -->|archives| DB
MQTT_CLIENT -->|pub/sub| MOSQUITTO
IOT -->|MQTT| MOSQUITTO
WARP -->|PI Web API calls| PI_SERVER
SCHTASK -.->|watchdog restart| CLARITY
Startup sequence:
- License verified (
clarity:backend/src-tauri/src/main.rs:1702)
- Self-signed TLS cert generated on first run (SANs: localhost, clarity.local)
- SQLite initialized; auth tables created
- Process Manager initialized; orphaned processes cleaned up
- MQTT client initialized (Windows: Mosquitto service started)
- Warp server starts on
0.0.0.0:3030 (TLS)
- Python services started after Warp confirms ready
- mDNS registered:
clarity.local advertised on LAN
Windows autostart: Windows Task Scheduler task ClarityEngineWatchdog is registered at startup and removed on clean exit. Source: clarity:backend/src-tauri/src/main.rs:3514-3517
¶ AI bundled — edge (was: standalone mode)
Same as Historian-only plus the bundled AI agent process (papa_agent_app).
graph TD
subgraph MACHINE_SA["On-Premise Machine"]
subgraph CLARITY_SA["Clarity Binary (Tauri)"]
WARP_SA["Warp HTTPS Server\n0.0.0.0:3030 · TLS"]
ADK_PROXY["Google ADK Proxy\n(forwards to :8000)"]
PM_SA["Process Manager"]
end
subgraph AGENT["Bundled AI Agent"]
PAPA["papa_agent_app\n127.0.0.1:8000 · HTTPS\n(Google ADK / FastAPI)"]
end
subgraph STORAGE_SA["Storage (on disk)"]
BIN_SA[".bin day files"]
DB_SA["pulse-db.sqlite"]
QDRANT["qdrant_data/\n(vector store)"]
end
end
subgraph EXT_SA["External"]
BROWSER_SA["Browser\nhttps://clarity.local:3030"]
PI_SA["OSI PI Server"]
end
BROWSER_SA -->|HTTPS| WARP_SA
WARP_SA --> ADK_PROXY
ADK_PROXY -->|POST /apps/* · POST /run_sse| PAPA
PM_SA -->|spawns + monitors| PAPA
WARP_SA -->|reads/writes| BIN_SA
WARP_SA -->|reads/writes| DB_SA
PAPA -->|reads| QDRANT
WARP_SA -->|PI Web API| PI_SA
ADK proxy routes (no auth — proxied transparently):
POST /apps/{path} → https://localhost:8000/apps/{path} (session creation)
POST /run_sse → https://localhost:8000/run_sse (SSE streaming)
Source: clarity:backend/src-tauri/src/api/google_adk.rs:44-113
Containerized. pulse_multi_agents runs as a Docker container. The historian instance is separate (deployed independently, connected via HTTP).
graph TD
subgraph CLOUD["Cloud / K8s Cluster"]
subgraph DOCKER_CONTAINER["Docker Container\n(python3.11-base-es-new2:r1)"]
PULSE_AGENTS["pulse_multi_agents\nuvicorn 0.0.0.0:8001\n(FastAPI + Google ADK)"]
SESSION_STORE["Session Storage\n(SQLite or PostgreSQL\ncontrolled by USE_POST_GRESQL_DB)"]
end
subgraph K8S["Kubernetes (inferred from Jenkinsfile)"]
K8S_SVC["K8s Service\n(routes to container :8001)"]
end
end
subgraph ONPREM["On-Premise"]
CLARITY_HIST["Historian\n(clarity binary, on-prem\nhttps://host:3030)"]
end
subgraph USERS["Users"]
BROWSER_CC["Browser / Client"]
end
BROWSER_CC -->|HTTPS| K8S_SVC
K8S_SVC --> PULSE_AGENTS
PULSE_AGENTS -->|HTTP API calls| CLARITY_HIST
PULSE_AGENTS --> SESSION_STORE
Two CI/CD pipeline variants (source: pulse_multi_agents/Jenkinsfile, pulse_multi_agents/Jenkinsfile-thermax):
| Pipeline |
File |
Use |
| Standard |
Jenkinsfile |
Default cloud deployment |
| Thermax variant |
Jenkinsfile-thermax |
Customer-specific Thermax deployment |
Docker image details:
- Base:
dev.exactspace.co/python3.11-base-es-new2:r1
- Exposes: port
8001
- Entry:
./main (compiled binary entry)
- Session DB: SQLite by default; PostgreSQL enabled via
USE_POST_GRESQL_DB=1 env var
Source: pulse_multi_agents/Dockerfile:1-62, pulse_multi_agents/index.py:48-69,281-282
Last updated: 2026-07-11 — headings migrated to topology names (retired [mode:] tags); content verified 2026-05-23 from clarity source code + Dockerfile