Skip to content

About

Governed infrastructure operations control plane for read-only observation, evidence-backed planning, human approvals, agent/MCP policy, and auditable workflows.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agentic_IoT_Command — Agentic Infrastructure Command Center

Overview tour across the synthetic demo sections

CI License: AGPL-3.0-only

A governed command center for infrastructure operations: observe first, plan with evidence, require policy and human authorization, and keep execution explicitly disabled until independently validated.

Status: early-stage source prototype—not production-ready. No worker is deployed on Ubuntu, and no live infrastructure control is enabled.

Architecture

The control plane separates proposals, authorization, worker boundaries, and evidence. The published implementation remains non-executing by default.

flowchart LR
  OP[Operator] --> UI[Command center]
  UI --> API[Loopback API]
  SRC[Authorized sources] --> ADAPTER[Read-only adapters]
  ADAPTER --> API
  API --> DB[(Tenant-scoped PostgreSQL)]
  AG[Agents and MCP clients] --> POLICY[Policy and approval gates]
  POLICY --> HUMAN{Human approval required?}
  HUMAN -->|Approved| PLAN[Typed plans and durable workflows]
  HUMAN -->|Not approved| PROPOSAL[Remain proposal-only]
  PLAN --> API
  API --> EVID[Hash-linked evidence]
  API -. execution disabled .-> DENY[No live infrastructure mutation]
Loading

Explore: architecture handoff · threat model · local integrations · VirtualBox demo boundary

Implementation and security status · reviewed 2026-09-28

The PostgreSQL schema retains the legacy opsatlas namespace for compatibility.

Defensive purple-team lab isolation, telemetry evidence, and read-only connector requirements are documented in docs/PURPLE_TEAM_READINESS.md.

Agentic IoT Command is an open-source design and source prototype for a governed infrastructure control plane. Its target architecture spans macOS and Ubuntu hosts, datacenters, virtualization, Kubernetes/OpenShift, Terraform/OpenTofu, IAM/PAM, agent governance, and public-cloud integrations. Most provider and execution integrations are design targets, not deployed features.

The project has two related areas:

  1. Skill supply-chain security: every third-party agent skill is treated as untrusted input. NVIDIA SkillSpector is used before installation, before upgrades, and in CI. A scan is a gate, not proof of safety; approved skills still run in isolated environments with least privilege.
  2. Infrastructure control plane: a standards-based system that lets agents observe, plan, obtain explicit authorization, execute through scoped credentials, verify outcomes, and emit replayable evidence.

The source prototype includes the fail-closed ingestion gate, runtime isolation policy, signed approval contract, read-only inventory, hash-chained evidence ledger, Ubuntu-hosted goal journal prototype, server-hashed task plan artifacts, task-bound approval queueing, fenced lease state, pinned-SSH goal gateway client, typed schemas, architecture boundaries, and a local deny-by-default policy core with a simulated approval lifecycle. The SSH goal gateway is not yet installed on the user's Ubuntu host. The source tree now has one narrow worker coordinator and a VirtualBox demo adapter, but no installed worker or enabled mutation path. Provider mutation adapters, JIT credential brokers, isolated mutation runners, and production access remain unavailable until their independent controls are implemented and validated.

The source prototype also includes a grant-issuance primitive that revalidates either operator approval or a standing-policy profile plus its impact assessment against lease state. Execution-grant v2 binds the authorization mode and evidence digests separately, plus Ed25519 grant and runner-receipt signing/verification code. A confined Unix-socket signer source now keeps the private key in a dedicated non-root service identity and pins the initial signing scope to one tenant, runner, VM target, operation, and short runtime. It protects the key but trusts the local API to perform authorization checks; it is not an independent policy engine and is not installed or Linux-validated. A one-shot worker coordinator now connects a certificate-scoped mTLS client to the fixed adapter and posts signed runner evidence to the journal. Runner evidence is not independent postcondition verification, so it cannot complete a task. A first narrow VirtualBox demo-metadata mutation adapter now exists as a worker boundary: it accepts only a fixed UUID-scoped plan and fixed VBoxManage modifyvm --description operation, performs exact precondition/postcondition checks, and requires fresh grant preflight, a worker kill switch, and an authenticated one-shot permit-consumer interface. A certificate-scoped mTLS server/client API now backs those interfaces in source, but no long-running worker service or worker-identity registry service integration is installed. A signed, audited late-receipt reconciliation route now exists in source but has not been exercised over Linux mTLS. Source-level independent postcondition signing, read-only VirtualBox observation, and journal-side verification are now implemented, along with a verifier-only mTLS API for candidate reads and signed-result submission. They are not deployed as a separate observer service. The verifier API's strict root-managed identity registry is wired into its prepared service entrypoint and Ubuntu installer; that API service is not installed or Linux-verified. The runner identity registry is not yet wired into a worker service. The receipt outbox exists in source but is not configured on Ubuntu. The handoff is therefore a source prototype, not yet the requested live control plane. In particular, it is not installed on Ubuntu, has no deployed runner/API service, cannot currently perform even the demo mutation, and has no cloud/datacenter adapters. The first live milestone remains read-only Ubuntu and VirtualBox inventory over pinned SSH; only after that is observed should the operator enroll a disposable VM for the gated mutation canary.

The local API now exposes /readyz separately from process liveness. It returns ready only when PostgreSQL, the required core schema, and forced tenant RLS are present; in-memory demos intentionally remain not-ready for a persistent pilot. This endpoint does not add user authentication or authorize remote exposure.

Hermes swarm orchestration, an OpenRouter-like model gateway, and Computer Use are architecture extensions only: none is installed, connected, or authorized for live operations. Their trust boundaries, IAM/PAM contract, deployment gates, and declarative agent-profile schema are documented in docs/HERMES_SWARM_GOVERNANCE.md.

Tests use fake transports and an injected VirtualBox command runner without invoking VirtualBox. See docs/VIRTUALBOX_MUTATION_ADAPTER.md. The mTLS transport and endpoint boundaries are documented in docs/WORKER_MTLS_API.md. Grant claims are derived from trusted live lease context by the runner preflight; caller-supplied expected claims are not authority. Grant issuance also requires a root-managed, short-lived execution enablement file; the installer ships it disabled by default. Runner-side kill-switch enforcement is wired into the adapter boundary but has not been exercised on an installed worker. The journal opens a durable target/operation circuit breaker on signed failure/unknown receipts or unexpected credential issuance; a fresh single-use approval bound to an evidence digest is required to reset it. The worker-side breaker gate remains unimplemented.

Run the local core checks with:

./scripts/validate-policies.sh
PYTHONPATH=src python3 -m unittest discover -s tests/unit -v

Documentation

Start with the architecture and implementation handoff, energy-to-compute operations, local integrations, database and analytics, and security threat model.

Full document and source index

Non-goals

This project does not provide a path into classified networks, bypass authorization, collect intelligence, or create hidden access. Any government or classified deployment requires the relevant sponsor, security authority, facility, personnel, export, privacy, and accreditation processes.

Local synthetic walkthrough

For an explicitly labeled walkthrough of the seeded PostgreSQL tenant, append ?tenant_id=00000000-0000-4000-8000-000000000001&demo=synthetic to the local URL (for example http://127.0.0.1:8794/?tenant_id=00000000-0000-4000-8000-000000000001&demo=synthetic). Without demo=synthetic, synthetic KPI and price results remain quarantined. The demo switch is presentation-only; it does not create live source status, make connector probes, authorize tools, create genuine approvals, or enable execution. Every fixture is an illustrative scenario, not real telemetry, market pricing, an audit artifact, or operational evidence.

The repository's canonical seed is database/demo_seed.sql; database/demo_recent_history.sql adds a rolling 24-hour fixture series when a recently populated demo view is needed; cost fixtures are separately gated by database/demo_cost_seed.sql. Apply the history extension only to the local demo database with psql "$A2Z_DATABASE_URL" -v ON_ERROR_STOP=1 -f database/demo_recent_history.sql. Use only the specifically named local demo database described in docs/DATABASE_AND_ANALYTICS.md. Never point seed/reset scripts at a production or shared database.

Detailed request and data flows

flowchart LR
  OP[Human operator] --> UI[Command center UI]
  UI --> API[Loopback read-model API]
  API --> PG[(PostgreSQL tenant-scoped data)]
  PG --> INV[Inventory and topology]
  PG --> TEL[Sensor and energy observations]
  PG --> IAM[IAM / PAM / approvals]
  PG --> OPS[Plans and workflow evidence]
  PG --> ECON[Price lineage and lifecycle economics]
  PG --> AUD[Hash-linked evidence]
  SRC[Authorized read-only source adapters] --> ING[Validate identity, scope, schema, quality, freshness]
  ING --> PG
  AG[Agent and MCP proposals] --> POL[Policy evaluation / least privilege]
  POL --> HUMAN{Required human decision?}
  HUMAN -->|review / approve| AUD
  POL -->|proposal only| OPS
  API -. hard boundary .-> DENY[No production execution in this local slice]
Loading
sequenceDiagram
  participant O as Operator
  participant UI as UI
  participant API as Read API
  participant DB as Tenant-scoped PostgreSQL
  participant S as Source adapter
  O->>UI: Select verified tenant or explicit demo tenant
  UI->>API: Read tenant-scoped view
  API->>DB: Apply tenant context and fetch bounded rows
  DB-->>API: Records with provenance and quality
  API-->>UI: Read model (execution disabled)
  Note over UI,DB: Demo fixtures are synthetic and visibly watermarked
  O->>UI: Register connector draft
  UI->>API: Narrow read-only contract
  API-->>UI: Draft metadata, with probing as a separate explicit action
Loading

Roadmap

Stage Scope Exit evidence
0 · Local demonstrator Tenant-scoped schema, source-unverified UI, explicit synthetic walkthrough, read-only API Seed/reset boundary tests, schema and policy tests pass; synthetic screenshot gallery and GIF committed
1 · Trustworthy source onboarding Connector contract, secret-reference boundary, read-only probe, schema/unit/quality/freshness validation Adapter contract tests, redacted diagnostic evidence, operator-reviewed tenant mapping
2 · Decision-quality analytics Lineage-complete KPIs, data-quality SLOs, robust baselines, failure labels, reproducible model evaluations Backtests, calibration/error reports, drift controls, human review; no forecast on insufficient/non-authoritative data
3 · Operational integrations Versioned vendor/cloud/facility read adapters and durable workflow references Vendor-specific sandbox tests, least privilege, rate-limit and stale-data behavior, rollback/runbook
4 · Multi-tenant production AuthN/AuthZ, managed secrets, tenant isolation tests, migrations, backups, observability, incident response Independent security review, recovery exercise, SLOs, privacy and data-retention approvals
5 · Optional commercial services Hosted control plane, enterprise identity, connector certification, fleet analytics and support OSS/commercial boundary documented; customer-controlled credentials, export and exit tested

Stages are sequencing, not a claim that production readiness or live adapters are already achieved. Detailed implementation status and gaps are described in the architecture, integration, security, and local-development documents.

Screenshots and GIF

The local walkthrough is available at http://127.0.0.1:8794/?tenant_id=00000000-0000-4000-8000-000000000001&demo=synthetic. These captures show that explicit synthetic tenant only. The visible watermark is preserved in every frame; the fixtures are illustrative, not live telemetry, inventory, prices, approvals, or operational evidence. Integrations are not connected, and infrastructure execution remains disabled.

Synthetic demo walkthrough

Browse focused screens
Area Screenshot
Command picture command-picture.png
Fleet & inventory fleet-inventory.png
Goals & plans goals-plans.png
Approvals approvals.png
Agents & models agents-models.png
Integrations integrations.png
IAM & PAM iam-pam.png
Topology & drift topology-drift.png
Evidence & audit evidence-audit.png
Energy & facilities energy-facilities.png
Sizing & economics sizing-economics.png
Placement tradeoffs placement-tradeoffs.png
Governance & MasterKeys governance-masterkeys.png
Suggested workloads suggested-workloads.png
Critical & GRC critical-grc.png

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only); see LICENSE.

About

Governed infrastructure operations control plane for read-only observation, evidence-backed planning, human approvals, agent/MCP policy, and auditable workflows.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages