OpsNexus
Security

Built for the people who hold the keys

OpsNexus touches your pipelines, clouds and servers, so it is built to protect them. It runs on your network, keeps secrets in Vault and records every change.

Layers of protection

Six layers between an attacker and your production

01

Sign-in

Passwords hashed with bcrypt and checked against your policy: length, reuse history, expiry and common-password block. TOTP MFA you can require for everyone, Google and Microsoft SSO for invited users, and a temporary lock after repeated failures.

02

Sessions and keys

15-minute access tokens with rotating refresh tokens. Signing out or deactivating a user ends their sessions at once. API keys show the secret only once, store it hashed, and can expire or be revoked.

03

Roles and projects

Permissions per module at none, read, modify or full, on every request. Projects keep teams apart: one project's agents, secrets and alerts never reach another unless you share them.

04

Secrets

Values live in HashiCorp Vault with a least-privilege policy. They never appear in database rows, API responses, logs or the audit log. Pipelines receive them once over HTTPS and mask them in the output.

05

Remote access

OpsNexus signs in to servers itself, so passwords and keys never reach the browser. Sessions open with single-use 60-second tickets, host keys are pinned, and idle or long sessions end on their own.

06

Audit

Every sign-in, change, secret reveal, deployment and remote session is written to an append-only log. Each entry includes the hash of the one before, so any edit breaks the chain. Export it as CSV for your SIEM.

How a secret travels

Your token is read once, used once, and never shown

HashiCorp Vault
kv/npm-token
OpsNexus API
resolves ${{ secrets }}
Build agent
HTTPS, once
Build log
NPM_TOKEN=••••••

never stored with the run · never in the database · never in the browser

Tamper-evident audit log

Every entry is chained to the one before it

If anyone edits or deletes an old entry, every hash after it stops matching. You can prove what happened, who did it, and in which project.

secret.revealuser: a.rao · project: payments
prev 9c1e…4b02hash 3f7a…e91c
pipeline.approveuser: platform-leads · run: #482
prev 3f7a…e91chash b84d…07fa
terminal.session.endserver: prod-web-01 · length: 14m
prev b84d…07fahash 5e20…c3d8
Built in, switched on

Controls you don't have to configure

Every query is scoped to your organization and project
Rate limits on sign-in, MFA and agent registration
Security headers, CSP and HSTS in production
Input validated on every request, parameterized queries only
Integrations are read-only until you allow write actions
Agent install tokens are single-use and expire in 24 hours
MFA seeds encrypted at rest
Encrypted platform backups with retention and tested restore
Remote Desktop proxy has no public port. Only the API reaches it
Error messages never include stack traces or user enumeration

Need a security review first?

We will walk your security team through the architecture and answer your questionnaire.

Request a review