Skip to content

Commit ec682c8

Browse files
CodingAnarchyclaude
andcommitted
feat: Implement encryption deserialization for PostgreSQL queue v1.8.4
- Added all encryption-related fields to JobRow struct - Implemented build_encryption_config(), parse_retention_policy(), and build_encrypted_payload() methods - Updated all SQL SELECT queries to include encryption fields - Added JOB_SELECT_FIELDS constant for consistent field selection - Fixed borrow checker issues in into_job() method - Maintains full backward compatibility with non-encryption builds 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent b5dd436 commit ec682c8

File tree

3 files changed

+305
-45
lines changed

3 files changed

+305
-45
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.8.4] - 2025-07-14
9+
10+
### Added
11+
- **🔐 Encryption Deserialization Implementation**
12+
- Implemented complete deserialization logic for encrypted job payloads in PostgreSQL queue
13+
- Added encryption fields to `JobRow` struct: `is_encrypted`, `encryption_key_id`, `encryption_algorithm`, `encrypted_payload`, `encryption_nonce`, `encryption_tag`, `encryption_metadata`, `payload_hash`, `pii_fields`, `retention_policy`, `retention_delete_at`, `encrypted_at`
14+
- Created helper methods `build_encryption_config()`, `parse_retention_policy()`, and `build_encrypted_payload()` for reconstructing encryption data structures from database fields
15+
- Updated all SQL SELECT queries to include encryption fields using new `JOB_SELECT_FIELDS` constant
16+
- Properly handles base64 encoding/decoding of binary encryption data
17+
- Full backward compatibility - works with and without encryption feature enabled
18+
19+
### Fixed
20+
- **📊 Query Consistency**
21+
- Standardized all job selection queries to include complete field list
22+
- Fixed missing encryption fields in `dequeue()`, `get_job()`, `get_batch_jobs()`, `get_due_cron_jobs()`, and `get_recurring_jobs()` queries
23+
- Resolved borrow checker issues in `into_job()` method by extracting encryption data before consuming self
24+
825
## [1.8.3] - 2025-07-12
926

1027
### Fixed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ members = [
99
resolver = "2"
1010

1111
[workspace.package]
12-
version = "1.8.3"
12+
version = "1.8.4"
1313
edition = "2024"
1414
license = "MIT"
1515
repository = "https://github.com/CodingAnarchy/hammerwork"

0 commit comments

Comments
 (0)