Skip to content

Commit cb11181

Browse files
committed
Prepare v2.0.7 release
1 parent cf132b5 commit cb11181

3 files changed

Lines changed: 32 additions & 6 deletions

File tree

docs/CHANGELOG.md

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- (Nothing yet.)
13+
14+
### Changed
15+
16+
- (Nothing yet.)
17+
18+
### Fixed
19+
20+
- (Nothing yet.)
21+
22+
---
23+
24+
## [2.0.7] - 2026-02-20
25+
26+
### Added
27+
1228
- **doctrine:encrypt:status:** For each entity, lists which properties are encrypted and their **config** (e.g. `email (config: personal_data)`). At the end, shows **configured encryptor configs** (config name, encryptor class Halite/Defuse, and which is default).
1329
- **doctrine:encrypt:rotate-keys:** New command to run the full key rotation: optional backup of key files (`--backup`), full decrypt, key change (generate new key files or prompt for .env update), then re-encrypt. Each step asks for confirmation unless `--no-interaction` is used. See [COMMANDS.md](COMMANDS.md#rotate-keys) and [KEY_ROTATION.md](KEY_ROTATION.md).
1430
- **doctrine:encrypt:generate-secret-key:** Option **`--force`** to overwrite existing key file(s) without asking.
1531
- **doctrine:decrypt:database** and **doctrine:encrypt:database:** Option **`--force`** to skip the confirmation prompt (useful when calling from scripts or from `rotate-keys` with `--no-interaction`).
32+
- **Configuration:** `nowo_doctrine_encrypt.batch_size` (default `5`) for the default batch size of encrypt/decrypt database commands; overridable per run via the `batchSize` argument.
33+
- **Documentation:** [INSTALLATION.md](INSTALLATION.md) — new section **FrankenPHP (runtime and worker mode)**: compatibility with FrankenPHP in both modes, no extra config; recommendations (e.g. limit requests per worker). README and DEMO.md reference FrankenPHP compatibility; demo Caddyfiles include a short comment.
1634

1735
### Changed
1836

19-
- **Documentation:** COMMANDS.md documents status output (per-entity properties and configs, configured configs), rotate-keys command, and `--force` on generate-secret-key, decrypt and encrypt. KEY_ROTATION.md and SECURITY.md reference the new rotate-keys command. README and INSTALLATION next steps mention rotate keys. ROADMAP updated to reflect key rotation command and docs.
37+
- **doctrine:decrypt:database** and **doctrine:encrypt:database:** Use **raw SQL** for encrypt/decrypt (no Doctrine lifecycle events); default batch size is **5** (configurable via `nowo_doctrine_encrypt.batch_size`).
38+
- **Documentation:** COMMANDS.md documents status output (per-entity properties and configs, configured configs), rotate-keys command, and `--force` on generate-secret-key, decrypt and encrypt. KEY_ROTATION.md and SECURITY.md reference the new rotate-keys command. README and INSTALLATION next steps mention rotate keys. ROADMAP updated. DEMO.md has a FrankenPHP subsection; demo Caddyfiles reference INSTALLATION § FrankenPHP.
2039

2140
### Fixed
2241

23-
- (No changes yet.)
42+
- **RotateKeysCommandTest:** Test for “no configs” now builds the command with `DoctrineEncryptSubscriber(null)` and `registry = null` so that an empty registry is never passed to the subscriber (which would call `getDefault()` and throw).
43+
44+
### Tests
45+
46+
- **Coverage:** Unit tests added for `RotateKeysCommand` (full rotation, backup with SQLite, backup-db-cmd, env configs, paused step, no configs), for `AbstractCommand` (`getEncryptedTableInfo`, `getColumnNameFromMetadata`, `getRowValue`), for decrypt/encrypt database commands (executeStatement path, row with null id, decrypt throw fallback), for `DoctrineEncryptStatusCommand` (registry null, configured configs, none), and for `GenerateSecretKeyCommand` (config argument with unsupported encryptor). Code coverage for **lines** is ≥ 95%.
47+
48+
No upgrade steps required from 2.0.6. See [UPGRADING.md](UPGRADING.md#upgrading-to-207).
2449

2550
---
2651

docs/RELEASE.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232

3333
---
3434

35-
## v2.0.7 (unreleased)
35+
## v2.0.7 (2026-02-20)
3636

37-
- **Scope:** (1) doctrine:encrypt:status: list encrypted properties and config per entity; show configured encryptor configs at end. (2) New command doctrine:encrypt:rotate-keys (optional backup, decrypt, change keys, re-encrypt; --backup, --no-interaction). (3) --force on generate-secret-key (overwrite without asking), decrypt:database and encrypt:database (skip confirmation). (4) Docs: COMMANDS, KEY_ROTATION, SECURITY, INSTALLATION, ROADMAP, CHANGELOG, UPGRADING updated.
38-
- **Checklist:** CHANGELOG and UPGRADING updated; tag `v2.0.7` when ready.
37+
- **Scope:** (1) doctrine:encrypt:status: list encrypted properties and config per entity; show configured encryptor configs at end. (2) New command doctrine:encrypt:rotate-keys (optional backup, decrypt, change keys, re-encrypt; --backup, --no-interaction). (3) --force on generate-secret-key (overwrite without asking), decrypt:database and encrypt:database (skip confirmation). (4) Encrypt/decrypt database use raw SQL; batch_size config (default 5). (5) FrankenPHP docs (INSTALLATION, README, DEMO); tests and coverage ≥ 95%. (6) Docs: COMMANDS, KEY_ROTATION, SECURITY, INSTALLATION, ROADMAP, CHANGELOG, UPGRADING updated.
38+
- **Checklist:** CHANGELOG and UPGRADING updated; tag `v2.0.7` created and pushed.
3939

4040
---
4141

docs/UPGRADING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,15 @@ This guide explains how to upgrade the Doctrine Encrypt Bundle between versions.
2929

3030
---
3131

32-
## Upgrading to 2.0.7 (unreleased)
32+
## Upgrading to 2.0.7
3333

3434
No breaking changes. New features:
3535

3636
- **doctrine:encrypt:status** now lists each encrypted property and its config per entity, and shows configured encryptor configs at the end.
3737
- **doctrine:encrypt:rotate-keys** runs the full key rotation (optional backup, decrypt, change keys, re-encrypt) with step-by-step confirmation; use `--backup` and/or `--no-interaction` as needed.
3838
- **doctrine:encrypt:generate-secret-key** accepts **`--force`** to overwrite existing key files without asking.
3939
- **doctrine:decrypt:database** and **doctrine:encrypt:database** accept **`--force`** to skip the confirmation prompt.
40+
- **Config:** Optional `nowo_doctrine_encrypt.batch_size` (default `5`) for encrypt/decrypt database batch size. FrankenPHP is supported (see INSTALLATION.md); no config changes needed.
4041

4142
Update as usual:
4243

0 commit comments

Comments
 (0)