7 Commits

Author SHA1 Message Date
Claude
0af18ada66 feat: per-type attachment metadata (image dims, video/audio/doc fields)
- AttachmentMetadata discriminated union (image/video/audio/document/file) in
  zod/openapi; attachments table gains metadata + metadata_kind (0003)
- create/PATCH accept client-supplied metadata; finalize auto-extracts image
  width/height/format from R2 head bytes via image-size (no client override)
- serializeAttachment surfaces parsed metadata in all responses

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 20:03:51 -07:00
518a5380d9 Add public image optimization endpoint 2026-07-02 19:36:47 -07:00
Claude
9a0a2b1da7 feat: zod-openapi schema, R2 multipart upload, and public /files URL
- routes rewritten on OpenAPIHono with zod schemas; /openapi.json via doc31;
  /api/* auth middleware runs before zod (401 before 422); problem+json kept
- multipart upload (worker-orchestrated R2): POST /multipart, PUT /parts/:n,
  DELETE /multipart; finalize auto-completes multipart or falls back to single-shot
- GET /files/:id serves public/shared attachments inline with stored content-type;
  responses include public_url when available + public/shared
- FakeR2 supports multipart; tests cover multipart, /files visibility, openapi

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 09:08:42 -07:00
Claude
fc3a467882 feat: expose openapi document for gateway aggregation
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 08:11:52 -07:00
Claude
0da8b248f0 feat: add attachment search categories and tags
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 08:05:25 -07:00
Claude
fd66c1ac31 feat: add attachment upload and download flow
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 07:44:30 -07:00
Claude
c4a1b167a1 feat: resolve attachment user through cfw-auth binding
Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-02 07:34:48 -07:00