v0.0.4 — IPFS Storage (Pinata)
Problem
Media is stored in R2/S3 only. For decentralization, media needs to be content-addressed on IPFS so any node can serve it.
Acceptance Criteria
Files to create/modify
apps/api/src/lib/storage/ipfs.ts (NEW)
apps/api/src/middleware/storage.ts (add IPFS option)
apps/api/src/types/env.ts (add Pinata env vars)
apps/api/scripts/test-ipfs-upload.ts (NEW)
Test
PINATA_JWT=xxx bun run test:ipfs-upload
Version bump
All package.json files: 0.0.3 to 0.0.4
v0.0.4 — IPFS Storage (Pinata)
Problem
Media is stored in R2/S3 only. For decentralization, media needs to be content-addressed on IPFS so any node can serve it.
Acceptance Criteria
IPFSStorageBucketimplements theStorageBucketinterfaceSTORAGE_BACKEND=ipfsactivates Pinata uploadsipfs://CIDURLsipfs://to HTTP gateway URL for browsersPINATA_JWT,PINATA_GATEWAYFiles to create/modify
apps/api/src/lib/storage/ipfs.ts(NEW)apps/api/src/middleware/storage.ts(add IPFS option)apps/api/src/types/env.ts(add Pinata env vars)apps/api/scripts/test-ipfs-upload.ts(NEW)Test
Version bump
All
package.jsonfiles:0.0.3to0.0.4