Skip to content

feat: implement POST /api/gists endpoint #105

Closed
@nullcoder

Description

@nullcoder

Overview

Create the primary API endpoint for creating new encrypted gists, handling multipart form data and storing both metadata and encrypted blobs in R2.

Tasks

  • Create POST /api/gists endpoint
  • Implement multipart form data parsing (Workers-compatible)
  • Add request size validation (Workers limit: 100MB)
  • Validate input data structure
  • Store metadata in R2 with proper key structure
  • Store encrypted blob in R2
  • Return gist ID and share URL

Technical Requirements

  • Edge runtime compatible
  • Parse multipart/form-data without Node.js dependencies
  • Validate against GistMetadata schema
  • Enforce size limits: 500KB per file, 5MB total, 20 files max
  • Generate unique gist IDs with nanoid
  • Atomic operation (rollback on failure)

Request Format

\\

Response Format

\\

Acceptance Criteria

  • Endpoint accepts encrypted gist data
  • Validates all required fields
  • Enforces size limits
  • Returns 201 with gist ID on success
  • Returns 400 for validation errors
  • Returns 413 for size limit exceeded
  • Handles R2 errors appropriately

Dependencies

References

  • See docs/PHASE_5_ISSUE_TRACKING.md for detailed specifications

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiAPI endpoints and backend logicenhancementNew feature or requestpriority: criticalMust be done immediately

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions