memos/proto/api/v1
boojack b3e67399b8 feat(attachment): upload files in resumable chunks
Add UploadAttachment, a unary RPC that accepts a file in bounded chunks
and streams it to a temp file instead of holding the whole blob in one
request body and in memory. A call carrying a spec starts an upload and
returns an opaque upload_id; later calls carry that id with
write_offset,
data, and finish_write, following the Cloud Storage WriteObject shape.
Retrying the last chunk after a lost response is idempotent, uploads are
bound to their owner, and they expire after 30 minutes of inactivity.

CreateAttachment and the chunked finalize now share one processing
pipeline for motion-photo detection, EXIF stripping, and storage. The
motion-photo detector works over an io.ReaderAt so large JPEGs are never
loaded whole, and the request body cap is a single per-procedure lookup.

The web editor uploads through the new RPC in 2 MiB chunks with bounded
concurrency under the server's per-user limit.
2026-09-08 21:07:06 +08:00
..
ai_service.proto feat(transcription): explicit STT settings with provider, model, prompt (#5926) 2026-05-02 19:35:18 +08:00
attachment_service.proto feat(attachment): upload files in resumable chunks 2026-09-08 21:07:06 +08:00
auth_service.proto fix(api): align resource IDs with AIP conventions 2026-07-18 11:12:28 +08:00
common.proto refactor: renovate list memos endpoint 2025-02-02 18:43:26 +08:00
idp_service.proto fix(api): update UID compatibility 2026-07-20 19:41:55 +08:00
instance_service.proto feat(instance): persist access mode independently of URL (#6225) 2026-08-22 14:15:31 +08:00
memo_service.proto feat(memos): support moving memos between spaces (#6285) 2026-09-07 20:45:59 +08:00
memo_view_service.proto refactor(memo-views): replace shortcuts with saved views (#6167) 2026-08-09 20:27:27 +08:00
README.md chore: update demo site 2025-02-27 23:05:43 +08:00
space_service.proto feat(spaces): support custom icons and emoji (#6287) 2026-09-07 23:12:18 +08:00
user_service.proto feat(spaces): deliver invitations to the inbox (#6266) 2026-09-04 08:58:49 +08:00

Memos API Design

This API design should follow the guidelines and best practices outlined in the Google API Improvement Proposals (AIPs).