Skip to content

feat(dashboard): add presigned URL upload flow to dashboard API #131

@coderabbitai

Description

@coderabbitai

Summary

PR #129 (#129) introduced a presigned URL three-step upload architecture for the public API to avoid proxying large file bytes through the Node.js server. The dashboard side (apps/dashboard-api/) currently has no storage routes and was not included in that PR.

This issue tracks implementing the same flow for the dashboard.

Work Required

  • Add storage routes to apps/dashboard-api/ (e.g., /upload-request and /upload-confirm).
  • Wire in appropriate authentication/authorization middleware suitable for dashboard users (session-based or similar, rather than verifyApiKey/requireSecretKey).
  • Reuse the shared getPresignedUploadUrl and verifyUploadedFile helpers already exported from @urbackend/common (added in PR feat(storage): replace proxy upload with presigned URL architecture #129).
  • Apply the same quota-check-before and quota-charge-after-confirm pattern used in the public API controller.
  • Add/update dashboard-specific tests.
  • Document any required CORS PUT configuration for S3/R2 buckets if not already covered.

References

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions