vcon-server
A server that stores vCons, the IETF conversation-record format, encrypted at rest, and returns them to authorized readers. It serves an HTTP API over TLS and keeps each tenant's vCons under that tenant's own keys. A deleted or replaced version is kept, hidden, until its tenant's retention period has passed since it was stored, and then erased, unless a legal hold keeps it. Every request is recorded in an audit log.
Status: 0.4.0 released, not yet for production. What works today is on what is built.
This crate is the vcon-server program. Its library exists so the tests can
drive the same code the binary runs; it is not a stable API.
Install
From crates.io, with Rust 1.99 or later:
The build compiles SQLCipher, the OpenSSL it uses, and AWS-LC, so the host
needs a C compiler with the C library headers, make and perl. On Debian or
Ubuntu:
Release archives for Linux on x86_64 and aarch64, with checksums, an SBOM and signed build provenance, are on the releases page.
Run it
The server needs a master key (a file of 32 random bytes), a TLS certificate and its key, and one TOML configuration file:
= "0.0.0.0:8443"
= "/var/lib/vcon-server"
= "/etc/vcon-server/master.key"
[]
= "/etc/vcon-server/cert.pem"
= "/etc/vcon-server/key.pem"
It locks all its memory at start and refuses to start if it cannot. The getting started guide covers each step, the systemd unit, and making the first tenant and its keys.
For AI agents
The server serves MCP at /mcp on its TLS listener, and through
vcon-server mcp for an agent that starts its servers as commands. Each
tool does the work of one HTTP route, with the same API keys, scopes and
audit records. The MCP page lists every
tool with its parameters and an example.
Objects in an S3 bucket
The server can keep each version's sealed object in an S3-compatible bucket
(RustFS, MinIO or AWS S3) instead of the data directory, and can pack those
objects into Parquet files in the same bucket.
Keep vCons in an S3 bucket sets
up the bucket, and
keep vCons as Parquet files in a bucket
turns on Parquet storage. vcon-server export parquet writes a copy of a
tenant's vCons as Parquet files; see
export to Parquet.
Links
- Documentation
- HTTP API
- Source
- The vcon library, which checks every vCon the server receives
License
Licensed under either of the Apache License, Version 2.0 or the MIT License, at your option.