pub trait Driver: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn get(&self, org: &OrgId, name: &str) -> Result<(Vec<u8>, u64)>;
fn version(&self, org: &OrgId, name: &str) -> Result<u64>;
fn inspect(&self, org: &OrgId, name: &str) -> Result<SecretMeta>;
fn list(&self, org: &OrgId) -> Result<Vec<SecretMeta>>;
// Provided methods
fn versions(&self, org: &OrgId, names: &[&str]) -> Vec<Result<u64>> ⓘ { ... }
fn create(
&self,
org: &OrgId,
name: &str,
_value: &[u8],
_labels: &BTreeMap<String, String>,
) -> Result<SecretMeta> { ... }
fn set(&self, org: &OrgId, name: &str, _value: &[u8]) -> Result<u64> { ... }
fn delete(&self, org: &OrgId, name: &str) -> Result<()> { ... }
fn refresh(&self, org: &OrgId, name: &str) -> Result<SecretMeta> { ... }
fn reencrypt(&self, _org: Option<&OrgId>) -> Result<usize> { ... }
}Expand description
A secret store. Drivers that cannot write (an external vault read through
a read-only token) keep the default create/set/delete, which refuse.
Required Methods§
Sourcefn version(&self, org: &OrgId, name: &str) -> Result<u64>
fn version(&self, org: &OrgId, name: &str) -> Result<u64>
The current version only: cheap, for polling.
fn inspect(&self, org: &OrgId, name: &str) -> Result<SecretMeta>
Provided Methods§
Sourcefn versions(&self, org: &OrgId, names: &[&str]) -> Vec<Result<u64>> ⓘ
fn versions(&self, org: &OrgId, names: &[&str]) -> Vec<Result<u64>> ⓘ
The current version of each name, in order: one polling round. Drivers whose secrets share a version (every field of a 1Password item) answer each group with one lookup.
Sourcefn create(
&self,
org: &OrgId,
name: &str,
_value: &[u8],
_labels: &BTreeMap<String, String>,
) -> Result<SecretMeta>
fn create( &self, org: &OrgId, name: &str, _value: &[u8], _labels: &BTreeMap<String, String>, ) -> Result<SecretMeta>
A new secret at version 1; fails if it exists.
Sourcefn set(&self, org: &OrgId, name: &str, _value: &[u8]) -> Result<u64>
fn set(&self, org: &OrgId, name: &str, _value: &[u8]) -> Result<u64>
A new value; returns the new version. Creates the secret if missing.
fn delete(&self, org: &OrgId, name: &str) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".