Platform / Nginx modules

Admin API

Serve read-only inspection, Prometheus output, and governed Enterprise mutations.

Partial; read-only local runtime implemented

ngz_iot_admin is the nginx HTTP control-plane boundary. It serves bounded daemon snapshots and metrics, then adds authenticated, audited command lifecycle endpoints in the Enterprise profile.

Read-only endpoints

location = /admin/v1/broker {
  iot_admin_snapshot /var/lib/nginz-iot/observe/iotd.snapshot;
  iot_admin_view broker;
}

location = /metrics {
  iot_admin_prometheus /var/lib/nginz-iot/observe/iotd.prom;
}

Use iot_admin_operating_profile tracked to require the same runtime profile as the broker and snapshot. Stale or mismatched output fails closed.

Protected operations

Enterprise locations can require iot_admin_require_auth on. Only enable iot_admin_trust_principal_headers on behind a verified identity proxy boundary; otherwise use the module’s verified identity input.

Controlled writes follow a durable lifecycle: admitted, applied or rejected, and audited with actor, target, correlation, generation, and writer term. Release enablement depends on the Enterprise installed two-node evidence gate.

Operator console pairing

Every lane image serves the static console from the same nginx HTTP boundary as these routes. Read-only views consume /live, /ready, dashboard, collection, and metrics endpoints.

Enterprise mutation locations additionally require a verified principal, CSRF, generation, capability, and audit gates. HTTP 2xx means accepted; the console waits for reconciled evidence. Lower lanes keep controlled_writes_requested = false, so drain, preflight, and support-bundle POSTs fail closed.

Do not expose admin listeners to the public device network. See Operator console.

Implementation authority

This page is a customer-oriented guide. The source contract remains authoritative for exact behavior and release evidence.

src/modules/iot-admin-nginx-module/README.md