docs(17): capture phase context
This commit is contained in:
64
.planning/phases/17-object-storage/17-DISCUSSION-LOG.md
Normal file
64
.planning/phases/17-object-storage/17-DISCUSSION-LOG.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Phase 17: Object Storage - Discussion Log
|
||||
|
||||
> **Audit trail only.** Do not use as input to planning, research, or execution agents.
|
||||
|
||||
**Date:** 2026-04-05
|
||||
**Phase:** 17-object-storage
|
||||
**Areas discussed:** S3 Client, URL Strategy, Storage Abstraction, Migration Approach
|
||||
**Mode:** --auto --batch
|
||||
|
||||
---
|
||||
|
||||
## S3 Client
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| @aws-sdk/client-s3 | Official AWS SDK v3, S3-compatible, tree-shakeable | ✓ |
|
||||
| minio-js | MinIO-specific client | |
|
||||
| undici/fetch with S3 API | Raw HTTP calls | |
|
||||
|
||||
**User's choice:** @aws-sdk/client-s3 (auto-selected)
|
||||
|
||||
---
|
||||
|
||||
## URL Strategy
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| Presigned URLs | MinIO generates time-limited signed URLs, client fetches directly | ✓ |
|
||||
| Proxy through GearBox API | Server fetches from MinIO, streams to client | |
|
||||
| Public bucket | No auth needed, direct MinIO URLs | |
|
||||
|
||||
**User's choice:** Presigned URLs (auto-selected)
|
||||
|
||||
---
|
||||
|
||||
## Storage Abstraction
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| Thin storage service | Single file wrapping S3 SDK with upload/delete/getUrl | ✓ |
|
||||
| Full abstraction layer | Interface with local/S3 implementations | |
|
||||
|
||||
**User's choice:** Thin storage service (auto-selected)
|
||||
|
||||
---
|
||||
|
||||
## Migration Approach
|
||||
|
||||
| Option | Description | Selected |
|
||||
|--------|-------------|----------|
|
||||
| One-time script | Reads uploads/, uploads to MinIO, same filenames | ✓ |
|
||||
| Lazy migration | Upload to MinIO on first access, fallback to local | |
|
||||
|
||||
**User's choice:** One-time script (auto-selected)
|
||||
|
||||
---
|
||||
|
||||
## Claude's Discretion
|
||||
|
||||
- Presigned URL expiry, proxy fallback, MinIO version, bucket policy, cleanup strategy
|
||||
|
||||
## Deferred Ideas
|
||||
|
||||
None
|
||||
Reference in New Issue
Block a user