feat: add encrypted export with password-protected ZIP (Closes #48) #97
Reference in New Issue
Block a user
Delete Branch "feature/issue-48-encrypted-export-password-protected-zip"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
EncryptedExportServicethat wraps CSV exports in AES-256 password-protected ZIP archives using PHP'sZipArchive/export/banking/encrypted) requirescanSeeBankingpermission, exports decrypted IBAN/KontoinhaberexportBankingList()toCsvExportServicewith family banking data and member associationsEncryptedExportServiceCloses #48
Files Changed
lib/Service/EncryptedExportService.php(new)lib/Service/CsvExportService.php(added banking export, new dependencies)lib/Controller/ExportController.php(added 4 encrypted export endpoints)appinfo/routes.php(added 4 new POST routes)tests/Unit/EncryptedExportServiceTest.php(new)Test Plan
canSeeBankingpermissionAdd EncryptedExportService that wraps CSV exports in AES-256 password-protected ZIP archives. Banking data export requires canSeeBanking permission. All encrypted exports are audit-logged. - New POST endpoints: /export/{members,fees,birthdays}/encrypted - New POST endpoint: /export/banking/encrypted (banking perm required) - Add exportBankingList() to CsvExportService (decrypted IBAN/Kontoinhaber) - Password validation (min 8 chars), fallback to PKWARE if AES unavailable - Unit tests for EncryptedExportService Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>