# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added

- New `status` command to show archive status for all tables
- New `verify` command to check integrity of archived files with optional `--repair`
- New `init` command for interactive configuration generation
- Rich console output with beautiful progress bars using `rich` library
- `--stats` flag for archive command to show statistics
- `--output json` flag for machine-readable output
- Progress tracking file (`progress.json`) for resumability
- `ArchiveResult` and `VerifyResult` dataclasses for structured results
- Custom exception hierarchy (`BackparqError`, `ArchiveError`, etc.)
- Table existence validation before archive operations
- SHA256 checksum verification when downloading from S3 during restore

### Changed

- Replaced `tqdm` with `rich` for progress bars and console output
- Improved logging throughout all operations
- Simplified code with reduced comments and docstrings
- Archive now returns `ArchiveResult` with statistics

### Fixed

- Fixed bare except clauses in prune module
- Fixed repository links in CHANGELOG

## [0.1.0] - 2026-01-28

### Added

- Initial release
- Archive PostgreSQL tables to Parquet files on S3
- Two modes: `offload` (move old data) and `backup` (full snapshots)
- Per-table primary key configuration for restore upserts
- Optional Parquet encryption with column-level keys
- SHA256 checksum verification before data deletion
- Graceful shutdown on SIGINT/SIGTERM signals
- Configurable logging verbosity (`-v`, `-vv`)
- Retention-based pruning of old backups
- Parallel processing at table and chunk level
- Server-side cursor streaming for constant memory usage

### Security

- SQL injection prevention using parameterized identifiers
- Support for S3 server-side encryption (SSE-S3, SSE-KMS)
- Optional client-side Parquet encryption

[Unreleased]: https://github.com/hemashoe/backparq/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/hemashoe/backparq/releases/tag/v0.1.0
