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:
parent
944b48ff13
commit
7cb5cddc7c
3 changed files with 202 additions and 0 deletions
34
v2/src-tauri/src/commands/secrets.rs
Normal file
34
v2/src-tauri/src/commands/secrets.rs
Normal 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()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue