ROOSTby Axowl

Product

One console. Every key, every approval, every record.

The Axowl console manages your Roost boxes. Each product has a tile with live counts, every sensitive action waits for passkey seals, and every refusal says why.

Approvals

One inbox for everything that needs a person.

Releases, certificate issuance, key retirement, adding a backup box: each waits here until the right people seal it with their passkeys. The seal is bound to the exact content, so an approval cannot be reused for something else.

axowl.com/dashboard/acme/roost/approvals
AxowlacmeRoostM

Approvals

3pending
14approved this week
1refused
RequestDetailSeals
Release 1.4.2 · code signingApprove to sign build 8421 of 2Approve with passkey
Issue certificate · api.acme.exampleCA key · 2 of 3 security officers2 of 3Approve with passkey
Share key piece with backup boxROOST-26-0003 joins the domain0 of 3Approve with passkey
Retire key version v1data-key · 0 records still on v1DoneApproved
Approvals inbox: every sensitive action waits for passkey seals.

Keys

Purpose templates, not attribute checklists.

A key is created with one word, its purpose. The template sets what the key may do and fixes what it may never do: a signing key cannot decrypt, a private key cannot be exported, and there is no switch to change that. Each key shows its versions, its birth record and its policy.

axowl.com/dashboard/acme/roost/keys
AxowlacmeRoostM

Keys

27keys
3rotating
0exportable
NamePurposeVersionQuorumLast used
release-signingcode-signingv3 active2 of 32 min ago
StatusArmed
PolicyApproval required
Born inROOST-26-0001
ExportNever
data-key-eudata-keyv2 active · v1 decrypt-only2 of 310 s ago
tls-wwwtlsv1 active2 of 31 s ago
ca-intermediatecav1 active2 of 33 days ago
Keys: purpose templates, versions and a status card for each key.

Partitions

Dev and prod never mix.

A partition is a separate key space with its own wrap key. A prod key cannot be copied into dev. A partition for a test run has a lifetime and disappears with its keys when the run ends.

axowl.com/dashboard/acme/roost/partitions
AxowlacmeRoostM

Partitions

6partitions
2temporary (CI)
27keys
NameEnvKeysLifetimeApprovers
prodprod14—security-officers 2 of 3
paymentsprod5—security-officers 2 of 3
devdev6—owner 1
ci-build-842dev1expires in 21 min—
ci-build-843dev1expires in 29 min—
Partitions: dev and prod never mix, and CI partitions expire on their own.

Policies

Who may do what, and when a person must approve.

Rules are read in order and name the keys, the caller, the action and the effect: permit, deny, audit, a limit, or approval required. A new rule set runs in record-only mode first, so nothing breaks while you check the records.

axowl.com/dashboard/acme/roost/policies
AxowlacmeRoostM

Policy rules Record only

#KeysWhoActionEffect
1release-signingci-runnersignRequire approval
2data-key-*orders-apiunwrapPermit · audit
3data-key-*agent: ledger-botunwrapPermit · limit 200/h
4ca-*anyone except Security officersanyDeny · audit
5**exportDeny
Policy rules: who may do what, with approval, limits and exclusions. Record-only mode tries a rule before enforcing it.

Access

People, applications and AI agents, each with their own identity.

Applications authenticate with a workload identity or mutual TLS and receive short-lived credentials. An AI agent has its own identity, limits and an approval threshold, and can be cut off with one switch.

axowl.com/dashboard/acme/roost/access
AxowlacmeRoostM

Access Identities · Agents

IdentityKindPartitionAuthenticates withCredentialLast used
orders-apiApplicationprodWorkload identity15 min, renews3 s ago
ci-runnerApplicationdevMutual TLS15 min, renews2 min ago
ledger-botAI agent · for team:financeprodOwn identity10 min, renews40 s ago
Keysdata-key-eu
Actionsunwrap
Limit200 / h · 173 used
Approve above1,000
J. ParkSecurity officerprod · paymentsPasskey + site key—09:12
M. LeeAuditorall (read)Passkey—yesterday
Access: people, applications and AI agents, each with its own identity and limits.

Devices

A signed status report every minute.

Each box reports its voters, tamper state, temperatures, power, mesh, time and firmware, signed with its own key. Pairs, enrollment, identity, firmware rollouts, maintenance and air-gapped sites live here.

axowl.com/dashboard/acme/roost/devices
AxowlacmeRoostM

Devices

2boxes
1pair
0alerts
SerialSiteVotersTamperFirmwareStatus
ROOST-26-0001Seoul HQ, vault floor3/3Armed1.1.0 (B)Green
ROOST-26-0002Busan DR site3/3Armed1.1.0 (B)Green
Chip temp46–50 °C
Mesh100.1 %
TimeNTS · 8 ms
AttestationMatch
Devices: a signed status report every minute, with the pair and the tamper state.

Diagnostics

One command, from the network to the box.

roost check walks six steps and stops at the first problem with what to fix. It produces an evidence bundle for support, never containing a secret, and measures signing and unwrap throughput against the real quorum.

axowl.com/dashboard/acme/roost/diagnostics
AxowlacmeRoostM

Diagnostics · roost check from orders-api host

#StepResult
1Networkroost-a.example:443 reachableok
2Trustbox identity ROOST-26-0001 verified · attestation matchok
3Partitionprod visibleok
4Loginacme/orders-api · credential renews in 12 minok
5Box3/3 voters · armed · NTS 8 msok
6Signtest seal on prodok
Evidence bundle   Measure (bench)
Diagnostics: one command walks from the network to the box and stops at the first problem.

Alerts

Thresholds per item, per box.

Temperature, voltage, batteries, mesh resistance, quorum, fans, power, time sync and signing rate each have a yellow and a red band. Red pages at once, yellow after five minutes, and a return to normal sends one recovery notice.

axowl.com/dashboard/acme/roost/alerts
AxowlacmeRoostM

Alerts

0red
1yellow
2boxes green
ItemYellowRedROOST-26-0001ROOST-26-0002
Chip temperature≥ 80 °C≥ 90 °C46–50 °C45–49 °C
Mesh resistance± 1 %± 1.5 %100.1 %99.9 %
Voter quorum2 of 3< 23 of 33 of 3
Time sync> 100 ms> 500 ms8 ms11 ms
Battery 2< 2.7 V< 2.5 V3.61 V2.68 V
Signs per minute> 3× baseline> 10× baseline4138
Recipients: owner · roost admins · soc@acme.example · SNMPv3 nms.acme.example
Alerts: thresholds per item and box; red pages at once, yellow after five minutes.

Records

A sealed chain the auditor verifies.

Every signature, refusal, approval and tamper event is a sealed record with who, what, when and a correlation id. Refusals carry their reason. Records are exported over syslog and SNMPv3 with the audit record id on every line.

axowl.com/dashboard/acme/roost/records
AxowlacmeRoostM

Records

TimeEventDetailChain
09:12:41roost.sign.completedrelease-signing · build 842 · approved by J. ParkSealed · verified
09:12:40roost.approval.sealedRelease 1.4.2 · passkey seal 2 of 2Sealed · verified
08:55:03roost.sign.refusedrelease-signing · no approval for build 841Sealed · verified
08:00:00roost.attestation.recordedROOST-26-0001 · measurements matchSealed · verified
Export: syslog TLS to siem.acme.example · SNMPv3 traps · Evidence report (signed)
Records: a sealed chain the auditor verifies, with a reason on every refusal.

Evidence reports

Produced and signed by the appliance.

Event exports, key attribute reports and access review matrices come out of the box signed with its identity key, so an auditor verifies the report itself instead of trusting a screenshot.

axowl.com/dashboard/acme/roost/records/reports
AxowlacmeRoostM

Evidence reports

ReportScopePeriodSigned by
Event exportall partitions2026 Q3ROOST-26-0001 identity keyDownload
Key attribute reportprod · paymentsas of todayROOST-26-0001 identity keyDownload
Access review matrixallas of todayROOST-26-0001 identity keyDownload
Chain verificationalllast 90 daysverified by M. Lee (auditor)0 gaps
Each report is produced by the appliance and signed; auditors verify the signature with the published identity key.
Evidence reports: produced and signed by the appliance, ready for an audit.

Cloud keys

The cloud asks Roost every time.

Roost is an external key store for cloud key services and the source for keys you bring to a cloud. One list shows every cloud key and the Roost key behind it. Cut the connection and the data stays locked.

axowl.com/dashboard/acme/roost/cloud-keys
AxowlacmeRoostM

Cloud keys

3clouds connected
11keys
2rotating this month
CloudKeyStatusPurposeProtectionNext rotationRoost key
AWS ap-northeast-2orders-dbAvailableEncrypt · DecryptExternal key store12 Decdata-key-eu v2
Google asia-northeast3bq-cmekAvailableEncrypt · DecryptExternal key manager12 Decdata-key-eu v2
Azure koreacentralvault-byokAvailableWrap · UnwrapBring your own key1 Markek-azure v1
Add key   1 Select origin → 2 Source key → 3 Cloud key → 4 Review · passkey approval
Cloud keys: the cloud asks Roost every time; cut the connection and the data stays locked.

CI/CD

Every run gets a partition that expires.

The simulator runs in your pipeline with the same policy code as the appliance. Test keys are named after the run and vanish with it, and a release without approval is refused and recorded.

axowl.com/dashboard/acme/roost/ci
AxowlacmeRoostM

CI/CD

2runs active
184runs this week
0keys left behind
RunPartitionKeysStartedExpiresResult
build-843ci-build-843ci-build-843-sign09:3110:01Running
build-842ci-build-842ci-build-842-sign09:1209:42Passed · released
build-841ci-build-841ci-build-841-sign08:50expiredRefused · no approval
Simulator: ghcr.io/axowl/roost-sim:1 · same policy code as ROOST-26-0001 (1.1.0)
CI/CD: every run gets a partition that expires, and a release without approval is refused.

See Roost refuse an unapproved signature.

A 30-minute live demo with our engineers.

Request a demo