MainsKeeper Product & System Guide Edition 0.2.3

Chapter 3 · logical ownership

System responsibilities

Logical components own clear inputs, outputs, and ends-here lines. An MVP may combine deployables; credentials still stay on the collector.

Logical components and responsibility boundaries

Figure 5. Logical components and responsibility boundaries

Takeaway: Telemetry does not pass through enrollment. Storage feeds queries, evaluation, Assurance, and notification. Scrape reads current gauges only.

Component cards

UPS / protocol adapters

Accepted behavior · Proposed packaging
Owns
USB-HID / NUT / SNMP read paths; normalized readings; source identity fields
Runs
Inside the host collector process (ESP32: constrained USB-HID firmware path)
In / out
Hardware protocol in → structured observations out
Ends
Does not store fleet history, evaluate incidents, or write UPS controls

Host collector and constrained probe

Accepted
Owns
Sampling cadence, heartbeat, local buffer, upload attempts, role application, source tests
Runs
macOS / Windows / Linux / Pi host agent, or ESP32 firmware
In / out
Adapter readings + connectivity checks in → buffered telemetry + heartbeats out
Deps
Local secret store; platform service manager
Ends
Does not own fleet UI policy; does not accept dashboard-delivered secrets

Local persistence and upload

Owns
On-disk/flash queue, retention pressure signals, retry/backoff, ack cursor
Ends
When batches are acknowledged or explicitly dropped under overflow policy

Host disk caps and ~30-day targets are Proposed. ESP32 flash figures remain illustrative.

Enrollment, identity, configuration

Owns
Enrollment codes, collector credentials, site assignment, desired config records
Split
Dashboard-managed keys vs local secrets vs local host settings vs capabilities (not settings)

Telemetry ingestion

Accept batches, authenticate the collector, advance the acknowledgement cursor, and deduplicate. Proposed wire protocol.

Current-state & history queries

Latest + observation-timed history with gaps. Storage engine Open.

Incident evaluation & notify

Rules, grace, declare, deliver. Channels Proposed.

Battery Assurance

Evidence, installations, findings — monitoring-only. Accepted product rules.

Web dashboard & CLI

Operator surfaces. CLI grammar Proposed as shipped binary.

External monitoring

Prometheus scrape path Proposed. Does not replace durable replay.

MVP combine vs boundary. Ingestion + query + incident evaluation may ship as one service early. Keep ownership documents and interfaces distinct so storage, auth, and notify can split later. Never move UPS/SNMP secrets off the collector into the dashboard.