# `mod vault_tui` :::::::{rust:module} paranoid_cli::vault_tui :index: 0 :vis: pub ::: ::: :::{rust:use} paranoid_cli::vault_tui :used_name: self ::: :::{rust:use} paranoid_cli :used_name: crate ::: :::{rust:use} anyhow::Context :used_name: Context ::: :::{rust:use} arboard::Clipboard :used_name: Clipboard ::: :::{rust:use} crossterm::terminal::EnterAlternateScreen :used_name: EnterAlternateScreen ::: :::{rust:use} crossterm::event::Event :used_name: Event ::: :::{rust:use} crossterm::event::KeyCode :used_name: KeyCode ::: :::{rust:use} crossterm::event::KeyEvent :used_name: KeyEvent ::: :::{rust:use} crossterm::event::KeyModifiers :used_name: KeyModifiers ::: :::{rust:use} crossterm::terminal::LeaveAlternateScreen :used_name: LeaveAlternateScreen ::: :::{rust:use} crossterm::terminal::disable_raw_mode :used_name: disable_raw_mode ::: :::{rust:use} crossterm::terminal::enable_raw_mode :used_name: enable_raw_mode ::: :::{rust:use} crossterm::event :used_name: event ::: :::{rust:use} crossterm::execute :used_name: execute ::: :::{rust:use} paranoid_core::FrameworkId :used_name: FrameworkId ::: :::{rust:use} paranoid_core::ParanoidRequest :used_name: ParanoidRequest ::: :::{rust:use} paranoid_ops::VaultOperationAccess :used_name: VaultOperationAccess ::: :::{rust:use} paranoid_vault::GenerateStoreLoginRecord :used_name: GenerateStoreLoginRecord ::: :::{rust:use} paranoid_vault::SecretString :used_name: SecretString ::: :::{rust:use} paranoid_vault::UpdateCardRecord :used_name: UpdateCardRecord ::: :::{rust:use} paranoid_vault::UpdateIdentityRecord :used_name: UpdateIdentityRecord ::: :::{rust:use} paranoid_vault::UpdateSecureNoteRecord :used_name: UpdateSecureNoteRecord ::: :::{rust:use} paranoid_vault::VaultAuth :used_name: VaultAuth ::: :::{rust:use} paranoid_vault::VaultItemPayload :used_name: VaultItemPayload ::: :::{rust:use} paranoid_vault::inspect_certificate_pem :used_name: inspect_certificate_pem ::: :::{rust:use} paranoid_vault::inspect_vault_backup :used_name: inspect_vault_backup ::: :::{rust:use} paranoid_vault::inspect_vault_transfer :used_name: inspect_vault_transfer ::: :::{rust:use} paranoid_vault::restore_vault_backup :used_name: restore_vault_backup ::: :::{rust:use} ratatui::backend::TestBackend :used_name: TestBackend ::: :::{rust:use} ratatui::backend::Backend :used_name: Backend ::: :::{rust:use} ratatui::style::Color :used_name: Color ::: :::{rust:use} ratatui::backend::CrosstermBackend :used_name: CrosstermBackend ::: :::{rust:use} ratatui::text::Line :used_name: Line ::: :::{rust:use} ratatui::style::Modifier :used_name: Modifier ::: :::{rust:use} ratatui::text::Span :used_name: Span ::: :::{rust:use} ratatui::style::Style :used_name: Style ::: :::{rust:use} ratatui::Terminal :used_name: Terminal ::: :::{rust:use} std::fs :used_name: fs ::: :::{rust:use} std::io :used_name: io ::: :::{rust:use} paranoid_cli::vault_tui::VaultTuiConfig :used_name: VaultTuiConfig ::: :::{rubric} Functions ::: ::::::{rust:function} paranoid_cli::vault_tui::run :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"run"},{"type":"punctuation","value":"("},{"type":"name","value":"config"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultTuiConfig","target":"VaultTuiConfig"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"anyhow","target":"anyhow"},{"type":"punctuation","value":"::"},{"type":"name","value":"Result"},{"type":"punctuation","value":"<"},{"type":"punctuation","value":"("},{"type":"punctuation","value":")"},{"type":"punctuation","value":">"}] ::: ::: :::::: ::::::{rust:function} paranoid_cli::vault_tui::run_scripted :index: 0 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"run_scripted"},{"type":"punctuation","value":"("},{"type":"name","value":"terminal"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"keyword","value":"mut"},{"type":"space"},{"type":"link","value":"Terminal","target":"Terminal"},{"type":"punctuation","value":"<"},{"type":"link","value":"ratatui","target":"ratatui"},{"type":"punctuation","value":"::"},{"type":"name","value":"backend"},{"type":"punctuation","value":"::"},{"type":"name","value":"TestBackend"},{"type":"punctuation","value":">"},{"type":"punctuation","value":", "},{"type":"name","value":"config"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultTuiConfig","target":"VaultTuiConfig"},{"type":"punctuation","value":", "},{"type":"name","value":"tokens"},{"type":"punctuation","value":": "},{"type":"punctuation","value":"&"},{"type":"punctuation","value":"["},{"type":"link","value":"crate","target":"crate"},{"type":"punctuation","value":"::"},{"type":"name","value":"scripted"},{"type":"punctuation","value":"::"},{"type":"name","value":"ScriptToken"},{"type":"punctuation","value":"]"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"anyhow","target":"anyhow"},{"type":"punctuation","value":"::"},{"type":"name","value":"Result"},{"type":"punctuation","value":"<"},{"type":"link","value":"String","target":"String"},{"type":"punctuation","value":">"}] ::: Drives the vault manager `App` through a pre-parsed key script against an in-memory `TestBackend`, returning the final rendered frame as text. The vault TUI has no background worker thread (all vault operations are synchronous), so `` is a no-op single poll here; it is supported for script portability with the generator wizard's scripts. ::: :::::: :::{rubric} Structs and Unions ::: ::::::{rust:struct} paranoid_cli::vault_tui::VaultTuiConfig :index: 1 :vis: pub :toc: struct VaultTuiConfig :layout: [{"type":"keyword","value":"struct"},{"type":"space"},{"type":"name","value":"VaultTuiConfig"}] ::: ::: :::::{rust:variable} paranoid_cli::vault_tui::VaultTuiConfig::open_options :index: 2 :vis: pub :toc: open_options :layout: [{"type":"name","value":"open_options"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultOpenOptions","target":"VaultOpenOptions"}] ::: ::: ::::: :::::{rust:variable} paranoid_cli::vault_tui::VaultTuiConfig::profile :index: 2 :vis: pub :toc: profile :layout: [{"type":"name","value":"profile"},{"type":"punctuation","value":": "},{"type":"link","value":"OpsProfile","target":"OpsProfile"}] ::: ::: ::::: :::::{rust:variable} paranoid_cli::vault_tui::VaultTuiConfig::audit_jsonl :index: 2 :vis: pub :toc: audit_jsonl :layout: [{"type":"name","value":"audit_jsonl"},{"type":"punctuation","value":": "},{"type":"link","value":"Option","target":"Option"},{"type":"punctuation","value":"<"},{"type":"link","value":"PathBuf","target":"PathBuf"},{"type":"punctuation","value":">"}] ::: ::: ::::: :::::{rust:variable} paranoid_cli::vault_tui::VaultTuiConfig::require_audit_sink :index: 2 :vis: pub :toc: require_audit_sink :layout: [{"type":"name","value":"require_audit_sink"},{"type":"punctuation","value":": "},{"type":"link","value":"bool","target":"bool"}] ::: ::: ::::: :::{rubric} Implementations ::: :::::{rust:impl} paranoid_cli::vault_tui::VaultTuiConfig :index: -1 :vis: pub :layout: [{"type":"keyword","value":"impl"},{"type":"space"},{"type":"link","value":"VaultTuiConfig","target":"VaultTuiConfig"}] :toc: impl VaultTuiConfig ::: ::: :::{rubric} Functions ::: ::::{rust:function} paranoid_cli::vault_tui::VaultTuiConfig::new :index: -1 :vis: pub :layout: [{"type":"keyword","value":"fn"},{"type":"space"},{"type":"name","value":"new"},{"type":"punctuation","value":"("},{"type":"name","value":"open_options"},{"type":"punctuation","value":": "},{"type":"link","value":"VaultOpenOptions","target":"VaultOpenOptions"},{"type":"punctuation","value":")"},{"type":"space"},{"type":"returns"},{"type":"space"},{"type":"link","value":"Self","target":"Self"}] ::: ::: :::: ::::: :::::: :::::::