Self-Hosted Signer

Both modes ship from a single container image. Pick the one that fits your trust model.

Cloud mode (default)

Full SaaS. Sign, verify, and report through api.asqav.com. Zero infrastructure on your side. Best for self-serve AI shops and teams that want zero ops.

Self-hosted signer (Enterprise)

Split-trust deployment. The Asqav signer runs on your infrastructure. ML-DSA-65 signing and hash-chaining happen locally. Keys stay in your KMS backend (LOCAL, AWS KMS, GCP KMS (Enterprise tier)). Only signed digests and timestamps flow to Asqav SaaS for compliance reports. A fully air-gapped install with no outbound HTTP is also available. See the operator guide in Offline and Air-Gapped Verification.

What flows where

Customer infrastructure

Signer container, private keys (LOCAL, AWS KMS, GCP KMS (Enterprise tier)), raw prompts, raw model outputs, tool call payloads.

Asqav SaaS

Signed digests, RFC 3161 timestamps, hash-chain metadata. No raw prompts, no raw outputs, no private keys.

Upstream relay

Set ASQAV_UPSTREAM_RELAY_URL on the signer container to forward signed digests to Asqav SaaS over a single outbound HTTPS hop. The relay sends only signed digests and timestamps, never raw prompts, outputs, or private keys. Leave it unset to run the signer inside your VPC. A fully air-gapped install is documented in Offline and Air-Gapped Verification.

Getting started

Maintenance migrations

Self-hosted deployments run schema migrations through authenticated maintenance routes. All migrations are idempotent (IF NOT EXISTS), so re-running them on a fresh container is a safe no-op.

bash
curl -X POST https://signer.your-org.example/maintenance/run-migration-v3-15 \
  -H "X-Maintenance-Key: $ASQAV_MAINTENANCE_KEY"
MigrationAdds
run-migration-v3-15rejected_attempts table for the forensic log.
run-migration-v3-16nonce and valid_until columns on SignatureRecord: the sign path rejects a re-used (agent_id, nonce) pair with HTTP 409, and valid_until bounds the receipt window.
run-migration-v3-17signature_status column on Action for the orphan and integrity sweeper.
run-migration-v3-18applied_attestation column and expected_executor_pubkey column for post-apply attestation and counterparty pinning.
run-migration-v3-19action_type_policies table for per-action save policy.
run-migration-v3-20IETF Compliance Receipts schema additions.
run-migration-v3-21TSA cert chain persistence on receipt.
run-migration-v3-22Retention floor enforcement at insert time.

Send the X-Maintenance-Key header on every request. The key is set via the ASQAV_MAINTENANCE_KEY environment variable on the signer container at deploy time.