Cloud primary · Watcher (#42)

RC8 Watcher UI

RC8 component that watches files on prem or in the cloud, ingests them with cryptographic provenance, and gives operators explicit control over lifecycle and integrity.

Interactive prototype — control plane and DynamoDB-backed state are not connected yet.

Configuration

Here you define what gets watched, how the tenant treats file churn and deletion, and which on-prem agents may feed this cloud watcher — the governance surface for hybrid ingest.

Policies and watched folders update as you edit; field agents still use explicit actions. All of this is demo-only until the control plane is wired.

Display name (this watcher)

Nickname in the page title and my watcher menu. Stored in a browser cookie for this demo (not DynamoDB).

Clear the field and save to use the built-in default name again for watcher 42.

Delete & update policies

Stored per tenant; applied when sources change or disappear (spec §10). Choosing a value below posts immediately (demo stub). Production uses signed control messages (spec §7).

Watched sources

Analogous to WatchCommand::StartWatching — path, role, location hint, backup to staging. Edits post automatically (debounced while typing).

Field agents (on-prem)

Trusted agents already feeding this cloud watcher. New agents must be accepted before they are treated as providers.

Trusted (connected)

AgentStatusLast uplinkNotes
field-agent-office-1connected2026-04-02T14:02:11ZMQTT control + S3 MPU uplink; systemd on Linux.
field-agent-lab-7connected2026-04-02T13:58:40ZFeeds file:/// paths under lab ingest roots.
field-agent-retail-westdegraded2026-04-01T09:12:00ZHigh latency; uploads gated on Foundry ACK.

Incoming connection requests

Agents on customer networks initiate pairing; you confirm identity, then accept below.

field-agent-manufacturing-east2026-04-02T09:41:00Z

Ed25519 key fingerprint acme-mfg-2026… (mock)

field-agent-dr-datacenter2026-04-01T18:22:11Z

Pairing code ••••9821 expired in 15m (mock)

Connect a new field agent

Submit a pairing request name (mock). In production this would follow MQTT / console handshake.