feat: add server-side encryption support

Implements server-side encryption capabilities (v0.13.0) including:
- Core Support: SSE-S3 (AES256) and SSE-KMS
- Integration: Added encryption fields to UploadInput, CopyObjectInput, InitiateMultipartUploadInput, and MultipartUploadInput
- Operations: Updated FilePut, FileUpload (POST), CopyObject, and multipart upload flows to support encryption headers
- API: Updated FileDetails (HeadObject) to return ServerSideEncryption and SSEKMSKeyId in DetailsResponse

Testing:
- Configured MinIO with built-in KMS (via MINIO_KMS_SECRET_KEY) in docker-compose.yml to enable SSE-S3 support
- Added comprehensive integration tests verifying headers are correctly sent and returned
- Verified file integrity and encryption status across all upload methods

Updated ROADMAP.md to mark v0.13.0 as completed.
This commit is contained in:
Rohan Verma
2025-11-27 17:26:03 +05:30
parent b43fd913ed
commit 0f57456b2a
6 changed files with 319 additions and 12 deletions
+5 -4
View File
@@ -89,13 +89,14 @@ Advanced Features Implemented:
---
## v0.13.0 - Server-Side Encryption
## v0.13.0 - Server-Side Encryption ✅ COMPLETED
**Scope**: Security basics
**Size**: Small (~150 LOC)
**Released**: Nov 27, 2025
- [ ] SSE-S3 support (AES256)
- [ ] SSE-KMS support (key ARN)
- [ ] Encryption headers in Put/Upload/Copy
- [x] SSE-S3 support (AES256)
- [x] SSE-KMS support (key ARN)
- [x] Encryption headers in Put/Upload/Copy
**Why**: Security is table stakes. Simple to add to existing operations.