Build signed object URLs as path-only (/api/objects/...) instead of prefixing APP_BASE_URL, so media loads from whatever host or reverse proxy served the app. Remove the now-unused base URL from the signer and drop the APP_BASE_URL / Server.BaseURL config.
21 lines
1.2 KiB
Markdown
21 lines
1.2 KiB
Markdown
# Tasks
|
|
|
|
## 1. Make object URLs origin-relative
|
|
|
|
- [x] 1.1 In `backend/internal/storage/signer.go`, return a path-only URL (`/api/objects/<key>?e&s`) and drop the `baseURL` field/parameter from `Signer`/`NewSigner`; verify with `go test ./internal/storage/...`.
|
|
- [x] 1.2 In `backend/internal/storage/storage.go`, stop passing `cfg.Server.BaseURL` to `NewSigner`; verify with `go build ./...`.
|
|
|
|
## 2. Remove the base-URL configuration
|
|
|
|
- [x] 2.1 Remove `Server.BaseURL` from `backend/internal/config/config.go` and delete the `APP_BASE_URL` line from `.env.example` and the README table; verify `go build ./...` and that no `APP_BASE_URL`/`Server.BaseURL` references remain.
|
|
- [x] 2.2 Update every other `storage.NewSigner(...)` call site (tests/helpers in `internal/storage`, `internal/photos`, `internal/app`, `internal/e2e`) to drop the base argument; verify with `make test`.
|
|
|
|
## 3. Integration verification
|
|
|
|
- [x] 3.1 Run `make test` (backend) and `npm run build` (frontend); verify both pass and that an issued object URL has no scheme or host.
|
|
|
|
## Workflow follow-up
|
|
|
|
- Run `/opsx-apply` to implement this change.
|
|
- Archive the change after review and verification (sync the delta spec into `storage-backends`).
|