Inventory that knows ownership
Every credential points back to an owner, tenant, source, expiry, risk, and operational state instead of living as an orphaned blob.
The certificates, SSH keys, secrets, and tokens no human remembers are the ones that take down production, widen a breach, or fail the next audit. trstctl discovers, issues, rotates, revokes, and retires every machine credential from one self-hosted control plane — with private keys sealed in an isolated signer.
The full console in your browser — sample data, no signup, no backend.
Certificates, SSH trust, service tokens, API keys, and workload identities usually sprawl across teams and tools. trstctl treats them as one lifecycle with one inventory and one audit trail.
Every credential points back to an owner, tenant, source, expiry, risk, and operational state instead of living as an orphaned blob.
The control plane orchestrates. The signer process holds keys and signs over a constrained channel. That separation is the product, not a deployment detail.
See where a credential is used, what it can reach, which systems depend on it, and what breaks if it expires or is revoked.
Non-human identity goes wrong at the worst time. trstctl is built so the answer is already in the inventory, the graph, and the audit trail — not in a spreadsheet someone forgot to update.
The lifecycle is explicit: every state change emits an event, every external action goes through an outbox, and every retry is idempotent.
Agents and connectors find certificates, SSH trust, keys, secrets, and workload identities.
Profiles, policies, approvals, and signer-backed CA custody turn requests into credentials.
Connectors write to the target only after intent is recorded durably in the outbox.
Policy-driven renewal keeps expiry from becoming an outage, with retry-safe operations.
Revocation, decommission, and audit close the loop instead of leaving stale trust behind.
Tenant isolation, event-sourced state, signer separation, memory discipline, and backpressure are first-order architecture constraints.
Every tenant-scoped query is backed by PostgreSQL row-level security, not a best-effort application filter.
Read models and audit trails are projections of immutable events, so state can be rebuilt and inspected.
Bounded worker pools keep discovery, connectors, policy, API traffic, and external calls from starving one another.
trstctl is for teams that need automation without losing custody, blast-radius control, or auditability.
Signing, parsing, certificate handling, and secret material stay behind the dedicated internal crypto boundary.
Events are immutable; projections can be rebuilt. The audit trail is not a separate story from product state.
Database policy enforces the tenant line, so a missed condition is a test failure instead of a customer incident.
External calls are durable intents first, worker actions second. Retry semantics are built into the write path.
trstctl is not here to replace a great secrets engine or your in-cluster certificate automation. It is the inventory, lifecycle, and audit layer across every kind of non-human identity — so the credentials no single tool owns stop falling through the cracks.
Vault is an excellent secrets engine. trstctl wraps the full lifecycle around all non-human identity — discover, issue, rotate, revoke, retire, audit — and keeps signing in a separate, isolated process rather than in-app.
Commercial CA managers are strong at X.509 at scale. trstctl treats X.509, SSH, secrets, API keys, tokens, and SPIFFE as one inventory — self-hosted and source-available, with no per-certificate licensing.
Both are great for in-cluster certificate automation. trstctl spans clusters and the hybrid estate beyond Kubernetes, with an event-sourced audit trail you can replay and rebuild.
Run a local evaluation stack, deploy with Docker or Helm, then connect agents and CA/deployment integrations as your environment grows.
Start with discovery. Keep going until issuance, rotation, revocation, and audit are boring.