Secure multi-file upload bounded context.
Locations
| Layer | Path |
|---|
| Domain | internal/domain/upload/ |
| Application | internal/application/upload/ — start withservice.go |
| HTTP | internal/adapters/http/handler/upload_handler.go |
| GoUI | routes.go (upload middleware); bulk notification upload: controller_rbac_notifications.go |
| Infrastructure | pkg/safefs, internal/infrastructure/storage |
| Wiring | wire_infra.go, wire_http.go, wire_goui.go |
Application
| File | Role |
|---|
service.go | Facade: UploadBatch — validation, virus scan, storage |
service_test.go | Unit tests |
HTTP surfaces
| Method | Path | Handler | Permission |
|---|
| POST | /api/v1/uploads/ | Upload | uploads:create |
GoUI static file path: gouiupload.UploadPath / FilesPrefix — same permission (uploads:create or notification send).
Panel surfaces
| Path | Screen |
|---|
/dashboard/uploads | uploads |
/dashboard/notifications/bulk/upload | notification-upload |
Related
- Size limits →
SEC_MAX_UPLOAD_BYTES, HTTP_BODY_LIMIT_BYTES - Architecture → DOMAIN.md