| Platforms | Windows (Windows Update Agent), Linux (apt, dnf, yum, zypper), macOS (softwareupdate) |
| Upstreams | Microsoft Update client web service, Debian/Ubuntu APT, RHEL/Fedora/SUSE YUM/DNF with errata, Apple Software Update catalogue |
| Content integrity | SHA-256 minimum; OpenPGP verification of APT InRelease and RPM repomd; digest-derived storage paths; quarantine on mismatch; second verification on the endpoint |
| Change control | Per-update, per-ring approvals; configurable quorum; separation of duties; time-boxed emergency override; ordered deployment rings with soak, reporting-coverage and failure-rate gates |
| Scheduling | Maintenance windows in tenant-local time with cron expressions, change blackouts, no-start cut-offs, and reboot permission per window |
| Frameworks | 5: CIS Controls v8.1, NIST SP 800-53 r5, EU NIS2 (2022/2555), SOC 2 (2017 TSC), NCSC CAF v3.2 — 70 controls, 63 bound to 14 automated checks |
| Audit & evidence | Per-tenant hash-linked audit chain with on-demand verification; dated compliance snapshots; exportable evidence bundles stating scope and coverage |
| Agent | Single Go binary, 6 build targets (Windows, Linux, macOS × amd64/arm64); reports facts only — applicability is decided server-side |
| Agent packaging | MSI (WiX), DEB, RPM, PKG and tar.gz, with a hardened systemd unit |
| Topology | Upstream/downstream replication sites, deferred content, per-site bandwidth limits, replica-mode approval inheritance |
| Databases | PostgreSQL 16, Redis 7 |
| API | 9 route modules, 47 paths, 55 endpoints |
| Multi-tenancy | Tenant-scoped throughout; agent tenancy resolved from the stored credential, never from the request |
| Backend stack | Python 3.11+, FastAPI, SQLAlchemy 2 async, asyncpg, OpenTelemetry; separate scheduler and sweeper workers |
| Frontend stack | React 18 with TypeScript, Vite, Redux Toolkit, Tailwind CSS |
| Deployment | Bare metal (systemd), Docker Compose, Kubernetes (Helm), fully air-gapped; every installer supports upgrade and uninstall |