Commit Graph

4 Commits

Author SHA1 Message Date
Misaka_Company
2d7c8a6f3f Rename MinIO config to S3, switch to Cloudflare R2
- Rename MinioConfig → S3Config, settings.minio → settings.s3
- Update config.example.yaml with R2 endpoint template
- S3 service is now storage-backend agnostic (MinIO, R2, any S3-compatible)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 13:43:10 +08:00
Misaka_Company
c9f7f55d81 Fix presigned URL: use public endpoint for signature generation
Host replacement broke S3 signatures since host is a signed header.
Instead, create a separate boto3 client with public_endpoint for presign.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 13:37:02 +08:00
Misaka_Company
fe81153491 Add S3 presigned URL direct upload (presign → PUT → confirm)
- Add presign endpoint: POST /api/v1/transactions/presign
- Add confirm endpoint: POST /api/v1/transactions/confirm
- Add generate_presigned_put_url() to MinIO service with public endpoint support
- Add public_endpoint field to MinioConfig
- Keep legacy /upload endpoint as fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-28 12:51:10 +08:00
Misaka_Company
e3c84540eb Implement Phase 1 backend: FastAPI upload API with MinIO and PostgreSQL
- Add FastAPI app with CORS and auth middleware (Bearer token)
- Add POST /api/v1/transactions/upload endpoint (multipart/form-data)
- Add MinIO storage service with date-partitioned object keys
- Add PostgreSQL database service for transaction metadata
- Add Dockerfile and docker-compose.yml for deployment
- Add config.example.yaml template

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-21 16:42:08 +08:00