Skip to content

rafctl v0.5.0 - Secure Keyring & Switch Command

Choose a tag to compare

@salacoste salacoste released this 07 Jan 22:29
· 5 commits to main since this release

Highlights

Security: Cross-Platform Keyring Storage

API keys are now stored in your platform's secure credential store instead of plaintext YAML:

  • macOS: Keychain
  • Linux: secret-service (libsecret/GNOME Keyring)
  • Windows: Windows Credential Manager

Existing plaintext keys still work during migration. API key input is now hidden when using auth set-key.

New: rafctl switch Command

Quick profile switching with status display:

rafctl switch work  # Set as default + show status

UX Improvements

  • Safety: Confirmation prompt before removing profiles
  • Scripting: --yes / -y flag to skip confirmation
  • Dashboard: Enter/r and l keys now execute actions after TUI exits

All Changes

Security

  • API keys stored in secure platform keyring (not plaintext)
  • Hidden API key input with rpassword crate

Added

  • rafctl switch <profile> — set default and show status
  • core::credentials module for unified credential management
  • core::constants module for centralized constants
  • --yes / -y flag for profile remove
  • ProcessSpawn and NoDefaultProfile error variants
  • Confirmation prompt before profile removal

Changed

  • Replaced macOS-only Keychain code with cross-platform keyring crate
  • Dashboard actions execute after TUI exit
  • Refactored handle_run with extracted helper functions
  • API requests use 30-second timeout
  • Global config uses atomic writes
  • Dynamic User-Agent from Cargo.toml

Install

# From source
cargo install --git https://github.com/salacoste/rafctl

# Or download binaries from Assets below

Full Changelog: v0.4.0...v0.5.0