feat(server::key_holder): ability to remotely get current state

This commit is contained in:
hdbg
2026-02-16 20:38:02 +01:00
parent bbaed3fb97
commit 6c8a67c520
3 changed files with 9 additions and 47 deletions

44
server/Cargo.lock generated
View File

@@ -95,7 +95,6 @@ dependencies = [
"rustls", "rustls",
"secrecy", "secrecy",
"smlang", "smlang",
"statig",
"strum", "strum",
"test-log", "test-log",
"thiserror", "thiserror",
@@ -1726,28 +1725,6 @@ dependencies = [
"version_check", "version_check",
] ]
[[package]]
name = "proc-macro-error-attr2"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
dependencies = [
"proc-macro2",
"quote",
]
[[package]]
name = "proc-macro-error2"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
dependencies = [
"proc-macro-error-attr2",
"proc-macro2",
"quote",
"syn 2.0.115",
]
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.106" version = "1.0.106"
@@ -2231,27 +2208,6 @@ dependencies = [
"wasm-bindgen", "wasm-bindgen",
] ]
[[package]]
name = "statig"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03c04b4a9f2d66294d63bdd8df834caad9f8e181997c3cf766b6b4f6d12d4fbc"
dependencies = [
"statig_macro",
]
[[package]]
name = "statig_macro"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8090ca395ee30c4b38fee68cf4ddf0bcc5f01aa83364cd4c3ec737a1596dab4d"
dependencies = [
"proc-macro-error2",
"proc-macro2",
"quote",
"syn 2.0.115",
]
[[package]] [[package]]
name = "string_morph" name = "string_morph"
version = "0.1.0" version = "0.1.0"

View File

@@ -41,7 +41,6 @@ zeroize = { version = "1.8.2", features = ["std", "simd"] }
kameo.workspace = true kameo.workspace = true
x25519-dalek = { version = "2.0.1", features = ["getrandom"] } x25519-dalek = { version = "2.0.1", features = ["getrandom"] }
chacha20poly1305 = { version = "0.10.1", features = ["std"] } chacha20poly1305 = { version = "0.10.1", features = ["std"] }
statig = { version = "0.4.1", features = ["async"] }
argon2 = { version = "0.5.3", features = ["zeroize"] } argon2 = { version = "0.5.3", features = ["zeroize"] }
restructed = "0.2.2" restructed = "0.2.2"
strum = { version = "0.27.2", features = ["derive"] } strum = { version = "0.27.2", features = ["derive"] }

View File

@@ -3,8 +3,9 @@ use diesel::{
dsl::{insert_into, update}, dsl::{insert_into, update},
}; };
use diesel_async::{AsyncConnection, RunQueryDsl}; use diesel_async::{AsyncConnection, RunQueryDsl};
use kameo::{Actor, messages}; use kameo::{Actor, Reply, messages};
use memsafe::MemSafe; use memsafe::MemSafe;
use strum::{EnumDiscriminants, IntoDiscriminant};
use tracing::{error, info}; use tracing::{error, info};
use crate::{ use crate::{
@@ -18,7 +19,8 @@ use crate::{
pub mod v1; pub mod v1;
#[derive(Default)] #[derive(Default, EnumDiscriminants)]
#[strum_discriminants(derive(Reply), vis(pub))]
enum State { enum State {
#[default] #[default]
Unbootstrapped, Unbootstrapped,
@@ -319,6 +321,11 @@ impl KeyHolder {
Ok(aead_id) Ok(aead_id)
} }
#[message]
pub fn get_state(&self) -> StateDiscriminants {
self.state.discriminant()
}
} }
#[cfg(test)] #[cfg(test)]