Multi-tenant by design
PostgreSQL row-level security on every tenant table. Roles, allow and deny bindings, device groups and delegation rules that stop anyone granting more than they hold.
GridWeave is a remote device management platform: a Go server, a Rust agent on each device and a web application. The agent verifies every command itself before it acts, and refuses what does not check out.
Or look at the features, the architecture and the roadmap.
command envelope, signed by the Command CA ok chain and signature ok device and tenant ok two-minute validity window ok replay ok permissions named in the envelope otherwise: refused, nothing runs
What it does
Everything here is on the main branch of the product. Some parts are only partly proven; the status section below says which.
PostgreSQL row-level security on every tenant table. Roles, allow and deny bindings, device groups and delegation rules that stop anyone granting more than they hold.
Run a script on up to 500 devices as a job, or power, notify, wake and more. The agent checks each command before it acts.
A relay joins your client and the agent with signed single-use grants. Consent is asked on the device, and a revoked permission ends the session within two seconds.
Enrolled by token with mutual TLS and installed as a systemd unit, a LaunchDaemon or a Windows service. Proven on Ubuntu; macOS and Windows less so. It updates itself from signed manifests in staged rollouts and rolls back a build that does not come back; proven on Linux only.
Local accounts with TOTP, OpenID Connect, LDAP and SAML 2.0, password reset and invitations by mail, personal access tokens and the gridweave command line.
One Linux host with systemd, container images and Compose, or a Helm chart. S3 object storage and an OpenBao key store are options.
How it is built
The server gridweaved runs one role per service, or all roles in one process for development and small installs. State lives only in PostgreSQL, the bus and object storage, so every role can run as many copies as needed.
amt (Intel AMT, simulator only) and bridge (not built).Security
Authorisation is checked on the device, by the agent, for every command and every session.
A command is a server-signed envelope. The agent checks chain, signature, device, tenant, time, replay and permissions before it acts, and refuses otherwise.
The agent protocol has no message that delivers code to run. An operator's script travels inside a verified command, and updates are signed manifests checked against keys compiled into the agent.
Tenant separation is enforced by PostgreSQL row-level security, not only by application code. Tests prove a cross-tenant read returns nothing.
Every command is recorded before it is sent. The audit log is append-only and hash-chained, and gridweave-admin audit verify checks the chain.
Status
Not released. Nothing is code-signed.
CI is disabled and the local checks are the gate. The Windows parts written most recently have never been run, and the Windows machine has been unreachable since. Do not use GridWeave to manage devices you depend on.
Licence and origin
GridWeave is licensed under the Apache License 2.0. It was built from a behavioural specification, feature by feature, without using code from any earlier product. Dependencies are limited to permissive licences and checked by a build step.