commit 42f5d5c85648a49230828ae4632866544259a9d3
parent f9f14635b3ab4ddad25fbc83b7b301583c8c9268
Author: triesap <triesap@radroots.dev>
Date: Mon, 19 Jan 2026 17:30:07 +0000
app: add keystore key map placeholder
- add AppKeystoreKeyMap type alias
- include key map in keystore config defaults
- export keystore key map helpers from app crate
- add unit test for empty keystore map
Diffstat:
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/app/src/config.rs b/app/src/config.rs
@@ -12,6 +12,7 @@ pub type AppDatastoreKeyParam = fn(&str) -> String;
pub type AppDatastoreKeyMap = BTreeMap<&'static str, &'static str>;
pub type AppDatastoreKeyParamMap = BTreeMap<&'static str, AppDatastoreKeyParam>;
pub type AppDatastoreKeyObjMap = BTreeMap<&'static str, &'static str>;
+pub type AppKeystoreKeyMap = BTreeMap<&'static str, &'static str>;
pub const APP_DATASTORE_KEY_NOSTR_KEY: &str = "nostr:key";
pub const APP_DATASTORE_KEY_EULA_DATE: &str = "app:eula:date";
@@ -112,19 +113,25 @@ pub fn app_key_maps_validate(config: &AppKeyMapConfig) -> AppConfigResult<()> {
Ok(())
}
-#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+#[derive(Debug, Clone, PartialEq, Eq)]
pub struct AppKeystoreConfig {
pub nostr_store: RadrootsClientIdbConfig,
+ pub key_map: AppKeystoreKeyMap,
}
impl AppKeystoreConfig {
- pub const fn default_config() -> Self {
+ pub fn default_config() -> Self {
Self {
nostr_store: IDB_CONFIG_KEYSTORE_NOSTR,
+ key_map: app_keystore_key_maps_default(),
}
}
}
+pub fn app_keystore_key_maps_default() -> AppKeystoreKeyMap {
+ BTreeMap::new()
+}
+
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct AppDatastoreConfig {
pub idb_config: RadrootsClientIdbConfig,
@@ -178,6 +185,7 @@ mod tests {
app_config_from_env,
app_datastore_param_nostr_profile,
app_key_maps_validate,
+ app_keystore_key_maps_default,
AppConfig,
AppConfigError,
AppDatastoreConfig,
@@ -222,6 +230,12 @@ mod tests {
}
#[test]
+ fn keystore_key_maps_defaults_empty() {
+ let map = app_keystore_key_maps_default();
+ assert!(map.is_empty());
+ }
+
+ #[test]
fn datastore_config_defaults_to_idb_store() {
let key_maps = AppKeyMapConfig::empty();
let config = AppDatastoreConfig::default_config(key_maps);
diff --git a/app/src/lib.rs b/app/src/lib.rs
@@ -13,6 +13,7 @@ pub use config::{
app_config_from_env,
app_datastore_param_nostr_profile,
app_datastore_param_radroots_profile,
+ app_keystore_key_maps_default,
app_key_maps_default,
app_key_maps_validate,
AppConfig,
@@ -24,6 +25,7 @@ pub use config::{
AppDatastoreKeyParam,
AppDatastoreKeyParamMap,
AppKeystoreConfig,
+ AppKeystoreKeyMap,
AppKeyMapConfig,
APP_DATASTORE_KEY_EULA_DATE,
APP_DATASTORE_KEY_NOSTR_KEY,