Analytics
A read-only view of how your organization uses its fleet over a selectable date range: a fleet summary, Workbench command usage (commands, firmware flashes, and UART sessions), and per-box device utilization. (Beta.)API key
A box-facing credential of the formstout_<64 hex chars>. Boxes use it in the X-API-Key header to authenticate heartbeats and control-plane WebSockets. Stout stores an HMAC-SHA256 hash of the key keyed by a server-side pepper, so a database leak alone can’t yield working keys. Older rows may still be stored as bare SHA-256 and are transparently upgraded on next use. If a key is lost, rotate it with the box’s Rotate API Key action (POST /api/orgs/:orgId/boxes/:boxId/rotate-api-key), or by re-running the install-stout flow — which also rotates the key.
Artifact
A file produced by a run (Factory step output, images, firmware, test reports) and uploaded to object storage via a presigned URL. Each artifact carries a storage key, a checksum, and an upload state.Audit log
An append-only record of user actions: who did what, against which resource, at what time. Visible to admins under Settings → Audit Log with filters for actor, action, resource type, and date range.Box group
A named collection of Stout Boxes for easier fleet management and access control. A member or team can be granted access to a whole group at once instead of box-by-box.Device
A physical instrument (power supply, oscilloscope, debugger, etc.) connected to a box. Devices are populated from the box’s heartbeat payload and unique per(boxId, netName).
Factory suite
A reusable collection of hardware test scripts and fixtures with anentryPoint (typically main.py) and supporting files. Runs produce step-by-step pass/fail results with optional image and video capture.
Maintenance window
A scheduled period during which a box or device cannot accept new work (Workbench control or Factory runs). Useful for firmware updates, bench reorganizations, or holidays.Net
A named logical connection to a physical instrument on a Lager Box — e.g.supply1 mapping to channel 1 of a Rigol DP832 power supply, or uart0 mapping to /dev/ttyUSB0 at 115200 baud. Nets decouple test code from specific hardware addresses, so the same script works as instruments move or change.
Organization
The top-level tenancy boundary. All boxes, suites, runs, and members belong to exactly one organization. Cross-org access is not possible.PR Reviewer
A GitHub-integrated feature that, on each pull request, uses an AI model to author hardware tests for the change, flash firmware onto a real box, run the tests, and report back as a GitHub check. Supports allowed-box lists, a human-approval gate, agentic remediation, and per-hour rate limiting. (Beta.)Reservation
A temporary hold on a box or device that prevents other users from driving it or running work on it. Intended for long-running tests or bench-time scheduling.Role
Owner, Admin, or Member. Determines what a user can do at the org level. Layered with per-box access controls.SSO
Single sign-on via OIDC or SAML. Users sign in with their corporate identity; Stout can map group claims to Stout roles. Secrets are encrypted at rest with AES-256.Stout Box
A Lager Box that is enrolled in a Stout organization. It runs two sibling Docker containers: the Lager container (Flask + SocketIO) for hardware control, plus astout container that handles control-plane communication — heartbeats, run dispatch, and audit reporting. A Lager Box becomes a Stout Box once the install-stout flow completes; if the stout container is removed, it reverts to a plain Lager Box.
Stout Boxes send heartbeats every 30 seconds and are marked offline after 3 minutes of silence.
Team
A named subgroup within an organization, used to manage box access for many members at once.Webhook
Inbound webhooks are how GitHub and GitLab notify Stout of repository events (pull-request updates) to trigger a PR Reviewer run; Stout verifies each request against the provider’s native signature header (x-hub-signature-256 for GitHub, x-gitlab-token for GitLab). Outbound alert webhooks (Stout POSTing JSON when an alert fires) are on the roadmap but not yet configurable in the dashboard.