v0.4.0
⚠ BREAKING CHANGES
No in-place upgrade from v0.3.x — the server must be reinstalled. Your FHE keys and encrypted indexes carry over unchanged; what breaks is the deployment and config format, and there is no automated config migrator.
- Vault rewritten in Go as the single binary
runevault(#61, #68). Python/Docker deployments cannot be upgraded in place — reinstall viainstall.sh. On-disk keys (<keys.path>/<key-id>/{Enc,Sec,Eval}Key.json) are read natively byenvector-go-sdk, so no key migration is needed. - Configuration consolidated into
runevault.conf(YAML) — the env-var fallback (VAULT_TLS_DISABLE,VAULT_TEAM_SECRET,VAULT_AUDIT_LOG, …) is removed with no migration helper. Tokens/roles remain file-based viatokens.roles_file/tokens.tokens_fileindirection. - Admin transport moved from HTTP to a Unix domain socket —
127.0.0.1:8081→/opt/rune-vault/admin.sock(mode 0600). Update any admin tooling.
What's New
Single Go binary runevault (#68)
- Entire vault reimplemented in Go; no Python runtime, no
pyenvectordependency - Built on
github.com/CryptoLabInc/envector-go-sdk - Daemon lifecycle delegated to the OS service manager (systemd / launchd) instead of Docker
Production installer (install.sh)
--target local|aws|gcp|oci, SHA256SUMS checksum verification, systemd/launchd service registration, and an--uninstallflow- Dev installer
scripts/install-dev.shfor local/CSP testing without GitHub releases runevaultgroup lets members run the CLI withoutsudo
Multi-CSP provisioning
- Terraform-based provisioning for AWS, GCP, and OCI: preflight CLI/auth checks, cloud-init bootstrap, CA-cert SCP polling
- CSP uninstall flow wrapping
terraform destroy
New CLI subcommands
runevault status— daemon + admin-socket healthrunevault logs— audit log tailEnsureVaultstartup hook activates keys and ensures the index on first run
Release & distribution
- Multi-platform release pipeline (linux/darwin × amd64/arm64) with a
SHA256SUMSchecksum manifest - Cloud VM images bumped to Ubuntu 24.04 LTS
Removed
- Python sources,
docker-compose.yml,Dockerfile, and the GHCR-published Docker image pyenvectorruntime dependency- Env-var configuration fallback (
VAULT_TLS_DISABLE,VAULT_TEAM_SECRET,VAULT_AUDIT_LOG, …)
Upgrade Guide
- Reinstall via
install.sh --target <local|aws|gcp|oci>— no in-place upgrade from the Python deployment. - Reuse your existing keys: point
keys.pathinrunevault.confat your currentvault-keysdirectory. Keys and encrypted indexes (1024d) are preserved — do not regenerate. - Recreate configuration in
runevault.conf(env vars are gone); reference your token/role files viatokens.roles_file/tokens.tokens_file. - Update admin tooling to use the Unix domain socket instead of the old HTTP admin port.
- Verify with
runevault status.
Full Changelog: v0.3.0...v0.4.0