sb-vault 0.1.0

S&B Vault // Zero-Trust Desktop Suite & Secret Engine
pub mod vault;
pub mod servers;
pub mod sftp;
pub mod pipelines;
pub mod audits;
pub mod ssh_keys;
pub mod terminal;
pub mod ports;
pub mod tunnels;
pub mod logs;
pub mod profiles;
pub mod tray;

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .setup(|app| {
            if let Err(e) = tray::setup_tray(app.handle()) {
                eprintln!("[WARN] System-Tray konnte nicht initialisiert werden: {}", e);
            }
            Ok(())
        })
        .manage(vault::VaultState::default())
        .manage(terminal::TerminalState::default())
        .manage(tunnels::TunnelState::default())
        .manage(logs::LogStreamState::default())
        .invoke_handler(tauri::generate_handler![
            // 1. Vault Commands
            vault::check_vault_status,
            vault::unlock_vault,
            vault::lock_vault,
            vault::get_unlocked_secrets,
            vault::save_secret,
            vault::delete_secret,
            vault::get_all_environments_matrix,
            vault::generate_secure_token,
            vault::get_device_key_info,
            vault::get_full_master_key,
            vault::change_master_password,

            // 2. NetGate Server Commands
            servers::get_servers,
            servers::save_server,
            servers::delete_server,
            servers::ping_server,
            servers::open_ssh_terminal,

            // 3. SFTP File Browser Commands
            sftp::list_remote_directory,
            sftp::sftp_upload_file,
            sftp::sftp_download_file,

            // 4. Forge Pipeline & DAG Commands
            pipelines::list_forge_projects,
            pipelines::load_forge_project,
            pipelines::execute_forge_target,

            // 5. BSI Audit & Asciinema Replay Commands
            audits::get_audit_records,
            audits::load_session_recording,
            ssh_keys::get_ssh_key_status,
            ssh_keys::generate_ed25519_keypair,
            ssh_keys::deploy_ssh_key_to_server,

            // 6. Integrated In-App PTY Terminal Commands
            terminal::start_terminal_session,
            terminal::write_terminal_data,
            terminal::resize_terminal,
            terminal::close_terminal_session,

            // 7. Local Port Guard & Process Killer Commands
            ports::scan_ports,
            ports::kill_process_by_pid,

            // 8. SSH DB-Tunneling Commands
            tunnels::get_tunnels,
            tunnels::save_tunnel,
            tunnels::delete_tunnel,
            tunnels::start_tunnel,
            tunnels::stop_tunnel,

            // 9. Remote Live-Log Streamer Commands
            logs::start_log_stream,
            logs::stop_log_stream,

            // 10. Multi-Vault Workspace Profile Commands
            profiles::get_profiles,
            profiles::save_profile,
            profiles::delete_profile,
            profiles::switch_profile,

            // 11. System Tray & Window Controls
            tray::minimize_to_tray,
            tray::show_main_window,
        ])
        .run(tauri::generate_context!())
        .expect("Fehler beim Starten der S&B Vault Desktop Applikation");
}