Initializing Operalta...

REST API: Documents, Artifacts & Rooms

Uploads, artifacts, room content flows, and move-versus-copy semantics

Uploads, artifacts, rooms, and room content movement.

01

Artifact create, collect & sync

  • -POST /api/artifacts — create (markdown, code, data, chart).
  • -POST /api/artifacts/generate — placeholder + background generation.
  • -POST /api/artifacts/sync — create-or-update an artifact linked to a local file (CLI).
  • -POST /api/collect — top-level collect/intake endpoint for new assets.
02

Artifact lifecycle & sharing

  • -GET /api/artifacts/:id — read.
  • -GET /api/artifacts/:id/stream — SSE chunks while generating.
  • -PATCH /api/artifacts/:id — title or content.
  • -POST /api/artifacts/:id/{autosave|finalize|promote|archive} — lifecycle transitions.
  • -POST /api/artifacts/:id/share — public review link for final investor briefs.
  • -GET /api/artifacts/public/:token — read a shared brief without an account.
  • -GET /api/artifacts/search?q=... — search final versions.
{
  "runId": "uuid",
  "artifactId": "uuid",
  "status": "started",
  "streamUrl": "/api/artifacts/uuid/stream"
}
03

Rooms

  • -GET /api/rooms — list (rooms:read).
  • -GET /api/rooms/:roomId — details with charter metadata.
  • -GET /api/rooms/:roomId/artifacts — paginated room artifacts.
  • -GET /api/rooms/:roomId/streams?since=&types=insight,decision&limit= — entries.
  • -POST /api/rooms and room mutations require rooms:write.
04

Documents & uploads

  • -POST /api/uploads — multipart upload through the standard pipeline.
  • -POST /api/upload/signed-url — direct storage upload (browser session).
  • -POST /api/uploads/:documentId/confirm — confirm a signed upload and dispatch processing.
  • -GET /api/extract/:documentId — SSE stream of extraction progress.
  • -GET|DELETE /api/uploads/:documentId — status or remove.
  • -GET /api/source-documents?companyId=... — list uploaded documents.
05

Room content flows

  • -POST /api/rooms/:roomId/artifacts — attach an existing artifact.
  • -POST /api/uploads with targetRoomId — upload directly into a room.
  • -POST /api/rooms/:roomId/artifacts/generate-preview-from-artifact — markdown preview of a non-markdown artifact.
06

Move vs copy semantics

  • -Move keeps the same artifact identity and changes room presence.
  • -Copy creates a new artifact and records parentArtifactId.
POST /api/artifacts/move
POST /api/artifacts/copy