How to build: file upload โ
implemented
User App logos and menu images. Router requires JWT (user-jwt-token-security-validation), then loads the user from Core.
Middleware Backend ยท winner
Call this API
POST https://middleware-dev.nellalink.com/api/v1/nellalink/file-manager/aws/upload-url
Also: POST .../file-manager/aws/download-url
Headers
Authorization: Bearer {access_token}
Content-Type: application/jsonThen PUT the bytes to the returned presigned URL. Save the public S3 URL on the entity as entity_featured_url.
ENVs (from routes/file-manager/.env-sample): ROUTE_FILE_MANAGER_AWS_REGION, ROUTE_FILE_MANAGER_AWS_ACCESS_KEY_ID, ROUTE_FILE_MANAGER_AWS_SECRET_ACCESS_KEY, ROUTE_FILE_MANAGER_AWS_S3_BUCKET, plus optional MIME/size/batch limits.
Do not put AWS keys in the frontend. User App GitHub Actions still inject VITE_AWS_*; the winner is Middleware presign. Treat browser AWS keys as a limitation to remove.