feat: add secrets management via system keyring

SecretsManager using keyring crate (linux-native/libsecret). Store/get/
delete/list with __bterminal_keys__ metadata tracking. SettingsTab
Secrets section. No plaintext fallback.
This commit is contained in:
Hibryda 2026-03-12 04:57:29 +01:00
parent 944b48ff13
commit 7cb5cddc7c
3 changed files with 202 additions and 0 deletions

View file

@ -0,0 +1,34 @@
use crate::secrets::SecretsManager;
#[tauri::command]
pub fn secrets_store(key: String, value: String) -> Result<(), String> {
SecretsManager::store_secret(&key, &value)
}
#[tauri::command]
pub fn secrets_get(key: String) -> Result<Option<String>, String> {
SecretsManager::get_secret(&key)
}
#[tauri::command]
pub fn secrets_delete(key: String) -> Result<(), String> {
SecretsManager::delete_secret(&key)
}
#[tauri::command]
pub fn secrets_list() -> Result<Vec<String>, String> {
SecretsManager::list_keys()
}
#[tauri::command]
pub fn secrets_has_keyring() -> bool {
SecretsManager::has_keyring()
}
#[tauri::command]
pub fn secrets_known_keys() -> Vec<String> {
crate::secrets::KNOWN_KEYS
.iter()
.map(|s| s.to_string())
.collect()
}