Skip to content

Releases: revelaction/privage

v0.31.1

09 Jan 15:39

Choose a tag to compare

Release v0.31.0 — Atomic Writes and Terminology Alignment

This release introduces significant improvements to data integrity through atomic file operations, enforces stricter naming conventions, and aligns terminology across the codebase and documentation.

🚀 New Features

  • Atomic File Writes: Implemented atomic write operations for encrypted files. Data is now written to a temporary file and moved to its final destination only upon success, preventing data corruption during interruptions.
  • Naming Convention Enforcement: The CLI now strictly enforces the .privage file naming convention for improved security and repository consistency.

🛠 Improvements & Refactoring

  • Terminology Migration: Transitioned from "repository" to "directory" and finalized the move from the .age extension to the native .privage extension.
  • Modular Architecture: Moved header hashing logic into the header package to improve separation of concerns.
  • Robust Error Handling: Enhanced error propagation in the headerGenerator and improved failure handling within the list command.
  • Optimized Validation: Simplified internal hex character validation logic.

📝 Documentation

  • Installation Guides: Updated installation instructions to cover multiple platforms and updated terminology to match the new standards.
  • Terminology Refresh: All help text and README sections now consistently use "directory" and .privage.

🧪 Testing

  • Added comprehensive unit tests for isPrivageFile to ensure naming conventions are correctly validated.
  • Introduced new error handling tests for the list command.
  • Cleaned up integration test data and resolved underlying test suite merge conflicts.

🐛 Bug Fixes

  • Ensured proper cleanup of temporary files during encryption failures.
  • Corrected mismatched error message expectations in integration tests to align with actual CLI output.

Full Changelog: v0.30.0...v0.31.1

v0.30.0

08 Jan 00:44

Choose a tag to compare

Release v0.30.0

Refactoring & CLI Improvements:

  • Centralized command parsing logic into parse.go for better maintainability.
  • Improved CLI flag parsing and error handling consistency.
  • Centralized error printing using FprintErr.
  • Improved error handling and cleanup in the encryptSave process.

Test Coverage & Quality:

  • Significantly increased unit test coverage.
  • Added comprehensive unit tests for add, delete, bash, and setup commands.
  • Added error path coverage for encryption and file operations.
  • Refactored existing tests to use subtests for better clarity.

CI/CD:

  • Excluded integration tests from the default test suite.

Documentation:

  • Fixed badge labels and updated documentation.

Full Changelog: v0.29.0...v0.30.0

v0.29.0

06 Jan 18:36

Choose a tag to compare

Release v0.29.0

This release features a significant overhaul of the CLI architecture, improved error handling, and enhanced testability and coverage.

Major Highlights:

  • CLI Architecture: Centralized flag parsing and command dispatching in the main package.
  • Testability: Unified command signatures and injected UI (Stdout/Stderr) dependencies.
  • Error Handling: Implemented sentinel errors and improved error reporting across all subcommands.
  • UX Improvements: Correctly separated diagnostic messages (stderr) from data output (stdout).
  • Validation: Added checks to prevent duplicate labels in the 'add' command.
  • Quality: Resolved numerous linting issues (errcheck, staticcheck, typecheck).
  • Coverage: Added comprehensive unit and integration tests for core logic and setup.

Refactorings:

  • Moved pre-flight checks to the 'init' command.
  • Consolidated test helpers and removed unused types.
  • Simplified setup logic and improved auto-discovery tests.

Full Changelog: v0.28.0...v0.29.0

v0.28.0

05 Jan 15:45

Choose a tag to compare

Release v0.28.0

Features:

  • New version command: Added a dedicated command to display version, commit hash, and Yubikey support status.
  • Bash Completion: Added autocomplete support for the version command.
  • Improved Version Output: privage version (and help) now clearly indicates if the binary was built with Yubikey support enabled or disabled.
  • Status UX: init and status commands now display full paths for config and identity files for better clarity.

Infrastructure & Quality:

  • Integration Testing: Introduced a robust integration test suite using testscript.
  • CI: Added a new GitHub Actions workflow (test-integration.yml) to run integration tests on every push.
  • Tests: Added scenarios for basic flow, credential lifecycle, crypto operations, and error handling.

Fixes:

  • Resolved linter errors in test files.
  • Fixed unused imports in status command.
  • Updated documentation with integration test status badge.

Full Changelog: v0.27.0...v0.28.0

v0.27.0

05 Jan 01:10

Choose a tag to compare

Full Changelog: v0.26.0...v0.27.0

v0.26.0

05 Jan 00:28

Choose a tag to compare

Full Changelog: v0.25.0...v0.26.0

v0.25.0

05 Jan 00:06

Choose a tag to compare

feat: add noyubikey build tag for CGO-less builds
refactor: fix file descriptor leaks and improve I/O architecture
fix: ensure robust error handling for Flush and Close operations
ci: improve version embedding and multi-target build support

Full Changelog: v0.24.0...v0.25.0

v0.23.0 piv-go v2

04 Jan 20:24

Choose a tag to compare

Core Improvements:

  • Major refactor of PIV/YubiKey identity management with abstract device I/O.
  • Improved PIV security by enforcing RSA for Age key protection.
  • Refactored headerGenerator to use filepath.WalkDir with SkipDir for efficient, non-recursive streaming.
  • Clarified and enforced flat repository structure (subdirectories are now ignored).

Architectural Changes:

  • Introduced 'fs' package to centralize and mock filesystem operations.
  • Improved error handling across the codebase, specifically for file Close operations.
  • Updated piv-go dependency to v2.4.0.
  • Decoupled setup and configuration logic for better testability.

Testing & Quality:

  • Added comprehensive unit tests for header generator, identity, and config packages.
  • Significant increase in test coverage (from ~15% to ~25%).
  • Resolved multiple errcheck linting issues.
  • Fixed resource leaks (file descriptors) in directory scanning.

Full Changelog: v0.22.0...v0.23.0

build targets

02 Jan 20:44

Choose a tag to compare

The show

02 Jan 19:45

Choose a tag to compare

show accepts second argument for credential field retrieval

Full Changelog: v0.12.0...v0.20.1