SurrealDBBackend was backed by Arc<RwLock<HashMap>> — no connection to
SurrealDB whatsoever. Rewrite to a real Surreal<Any> connection:
- engine::any dispatch: mem:// (embedded, tests) and ws://wss:// (prod)
- All 11 StorageBackend methods: SurrealQL upsert/select/delete/query
- Vec<u8> fields base64-encoded; timestamps as RFC3339 UTC strings
- MVCC write-conflict retry: exponential backoff 5ms→80ms + uniform
jitter, 5 attempts — resolves SurrealDB optimistic-concurrency errors
under concurrent load without external locking
- Mirror ID fields in records to avoid RecordId enum parsing in lists
- 9 unit tests (mem://, no server) + 19 integration tests with UUID
database isolation; concurrent coverage: 16 secret + 8 key writers
Development Documentation
Documentation for developers building and extending SecretumVault.
Contents
- Build Features - Cargo features, compilation options, dependencies
- Features Control - Build features and Justfile recipes
- Post-Quantum Cryptography - PQC algorithms, backend support, configuration