Skip to main content

VaultOp

Enum VaultOp 

Source
pub enum VaultOp {
Show 45 variants VaultCreate { master_password: Zeroizing<String>, }, VaultStatus, EntryAdd { entry: ServiceEntry, }, EntryGet { entry_id: i64, }, EntryList, EntryUpdate { entry_id: i64, entry: ServiceEntry, }, EntryDelete { entry_id: i64, }, TotpAdd { entry_id: i64, secret: Zeroizing<String>, algorithm: Option<String>, digits: Option<u8>, period: Option<u32>, issuer: Option<String>, account_name: Option<String>, }, TotpCode { entry_id: i64, }, TotpMetadata { entry_id: i64, }, TotpRemove { entry_id: i64, }, SshKeyAdd { name: String, comment: Option<String>, key_type: String, public_key: String, private_key: Zeroizing<String>, fingerprint: String, }, SshKeyList, SshKeyGet { key_id: i64, include_private: bool, }, SshKeyDelete { key_id: i64, }, RegistryOverview { include_strength: bool, }, RegistrySweep, EntityList, EntityAdd { name: String, kind: String, criticality: String, notes: Option<String>, rotation_interval_days: Option<i64>, }, EntityDelete { name: String, }, EntryAssign { entry_id: i64, entity: String, label: Option<String>, }, EntryUnassign { entry_id: i64, }, EntryMarkRotated { entry_id: i64, }, EntrySetExpiresAt { entry_id: i64, expires_at: Option<i64>, }, HealthReport, AuditVerify, BiometricStatusGet, BiometricEnable { master_password: Zeroizing<String>, }, BiometricDisable, ExportAll, ImportEntries { entries: Vec<ServiceEntry>, }, SyncInit { relay_url: String, device_name: Option<String>, }, SyncDisable, SyncDeviceList, SyncDeviceRevoke { device_id: String, }, SyncStatus, SyncNow, SyncDeadLetterList, SyncMigrateClaim, SyncMigrateAuthoritative { new_relay_vault: String, }, SyncConflictList, SyncConflictResolve { object_id: String, take_remote: bool, }, SyncDeadLetterPurge { server_sequence: Option<i64>, }, SyncPairStart, SyncPairJoin { relay_url: String, code: String, salt: String, },
}
Expand description

One application-service request.

This is the single call shape for vault operations. Most ops execute against the live vault on the blocking pool via sentinelpass_core::daemon::service::LiveVaultService; the daemon’s async dispatcher owns SyncNow (relay HTTP). SyncPairStart / SyncPairJoin are NOT served by the daemon in this release: pairing is an exclusive OFFLINE maintenance flow run by the CLI under the maintenance lock (pair-join creates local vaults — creation the daemon’s live surface must not perform); over IPC they fail with the typed op_not_served code.

Debug is hand-written and redacts every field: this enum carries master passwords, TOTP seeds, and private keys, and derived Debug would print them into logs or panic payloads (core sets the same redaction convention).

Variants§

§

VaultCreate

Create a vault. Valid only while the daemon is in maintenance mode (no vault exists); the daemon holds the exclusive maintenance lock (WBS-501/503).

Fields

§master_password: Zeroizing<String>
§

VaultStatus

§

EntryAdd

Fields

§

EntryGet

Fields

§entry_id: i64
§

EntryList

§

EntryUpdate

Fields

§entry_id: i64
§

EntryDelete

Fields

§entry_id: i64
§

TotpAdd

The secret is RAW BASE32 only: otpauth:// URI parsing stays client-side (both the CLI and the UI parse the URI themselves and send the derived fields).

Fields

§entry_id: i64
§algorithm: Option<String>
§digits: Option<u8>
§period: Option<u32>
§issuer: Option<String>
§account_name: Option<String>
§

TotpCode

Fields

§entry_id: i64
§

TotpMetadata

Fields

§entry_id: i64
§

TotpRemove

Fields

§entry_id: i64
§

SshKeyAdd

Fields

§name: String
§comment: Option<String>
§key_type: String
§public_key: String
§private_key: Zeroizing<String>
§fingerprint: String
§

SshKeyList

§

SshKeyGet

Fields

§key_id: i64
§include_private: bool
§

SshKeyDelete

Fields

§key_id: i64
§

RegistryOverview

include_strength: true decrypts and scores every eligible secret — bounded by the 30s session deadline on very large vaults (stage-6 review F5: documented cap).

Fields

§include_strength: bool
§

RegistrySweep

§

EntityList

§

EntityAdd

Fields

§name: String
§kind: String
§criticality: String
§rotation_interval_days: Option<i64>
§

EntityDelete

Fields

§name: String
§

EntryAssign

Fields

§entry_id: i64
§entity: String
§

EntryUnassign

Fields

§entry_id: i64
§

EntryMarkRotated

Fields

§entry_id: i64
§

EntrySetExpiresAt

Fields

§entry_id: i64
§expires_at: Option<i64>
§

HealthReport

Vault password health report (summary + per-entry findings), as JSON. DECRYPTS EVERY ENTRY server-side — the 30s session deadline bounds the response on very large vaults (stage-6 review F5: documented cap).

§

AuditVerify

Verify the audit hash chain (WBS-415), as JSON.

§

BiometricStatusGet

§

BiometricEnable

Fields

§master_password: Zeroizing<String>
§

BiometricDisable

§

ExportAll

Decrypted dump of every EXPORTABLE entry (generic passwords and API keys — passkey_reference entries are excluded, matching every built-in export path). The client renders JSON/CSV/KeePass locally.

§

ImportEntries

Bulk insert from an import file parse. Returns created ids.

Fields

§

SyncInit

Fields

§relay_url: String
§device_name: Option<String>
§

SyncDisable

§

SyncDeviceList

§

SyncDeviceRevoke

Fields

§device_id: String
§

SyncStatus

Sync status (local metadata read).

§

SyncNow

Run a full push+pull cycle. Daemon-async: the sync engine awaits relay HTTP, so the daemon’s async dispatcher executes this op.

§

SyncDeadLetterList

List dead-lettered sync mutations (metadata only; WBS-607).

§

SyncMigrateClaim

Claim the AUTHORITATIVE migration for the configured origin vault (WBS-624): the relay mints a fresh vault and records the claim. A second claim for the same origin is refused. Requires the relay network (daemon-async like SyncNow).

§

SyncMigrateAuthoritative

Re-baseline THIS device as the migration authority for the given fresh relay vault: resets every object’s sync bookkeeping so the full local baseline re-uploads as fresh creates. Local vault write.

Fields

§new_relay_vault: String
§

SyncConflictList

List stored concurrent-edit conflicts (metadata only; WBS-611 / SR-SYNC-005): the payload VALUES require an unlocked vault and are not part of this listing.

§

SyncConflictResolve

Resolve a stored concurrent-edit conflict: take_remote = false keeps the local content (re-versioned above the peer so the next push lands); true applies the stored alternative. Requires the vault unlocked (take-remote decrypts and re-seals).

Fields

§object_id: String
§take_remote: bool
§

SyncDeadLetterPurge

Purge dead-lettered sync mutations: one by server sequence, or all when server_sequence is None. The fail-closed dead-letter bound requires a supported purge path (raw SQL against the daemon-owned vault is not one).

Fields

§server_sequence: Option<i64>
§

SyncPairStart

Upload this vault’s bootstrap under a fresh pairing code. Not served over IPC in this release — the CLI runs pairing as exclusive offline maintenance under the vault lock.

§

SyncPairJoin

Fetch a bootstrap with a pairing code and adopt it (creating the local vault when none exists). Not served over IPC in this release — the CLI runs pairing as exclusive offline maintenance under the vault lock.

Fields

§relay_url: String
§code: String
§salt: String

Trait Implementations§

Source§

impl Clone for VaultOp

Source§

fn clone(&self) -> VaultOp

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for VaultOp

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Redacts every field: VaultOp carries master passwords, TOTP seeds, and SSH private keys, and derived Debug would print them into any future tracing call or panic payload.

Source§

impl<'de> Deserialize<'de> for VaultOp

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for VaultOp

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more