Files
noah-6a426fea762485cd9a634857/backend/README.md

1.4 KiB

Backend Todo App Template

Backend-only Bun + Express template intended to be snapshotted directly and mounted at /mnt/backend.

What it provides

  • GET /health
  • GET /todos
  • POST /todos
  • GET /todos/:id
  • PUT /todos/:id
  • DELETE /todos/:id
  • POST /todos/:id/attachment/presign
  • POST /todos/:id/attachment/complete

Todos are stored in Turso/libSQL through the HTTP pipeline API. Attachments use Tigris or any S3-compatible endpoint through presigned PUT URLs.

Runtime contract

  • app root is this folder
  • start command: bun run dev
  • listens on PORT, default 8080
  • compatible with a direct snapshot mounted to /mnt/backend

Setup

cp .env.example .env
bun install
bun run dev

Required env

.env and .env.example contain the full key set expected by the app:

  • PORT
  • NODE_ENV
  • API_PREFIX
  • CORS_ORIGIN
  • LOG_LEVEL
  • PROJECT_ID
  • DATABASE_URL
  • DATABASE_AUTH_TOKEN
  • S3_ENDPOINT
  • S3_BUCKET
  • S3_PREFIX
  • S3_ACCESS_KEY_ID
  • S3_SECRET_ACCESS_KEY
  • S3_SESSION_TOKEN

Attachment flow

  1. Create a todo with POST /todos.
  2. Request a presigned upload target with POST /todos/:id/attachment/presign.
  3. Upload the file directly to the returned url using the returned method and headers.
  4. Finalize the attachment metadata with POST /todos/:id/attachment/complete.

Deleting a todo only removes the database record in v1. It does not delete the object from storage.