fix(tiles): configure R2 CDN base URL build argument and CORS rules #121
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/r2-cdn-cors-tiles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Executed playbook:
skill://poteto-mode/playbooks/feature.mdPrinciples applied
R2_CORS_RULES) and Anycast CDN routing rules explicitly within typed S3 SDK invocation scripts and configuration documentation.src/lib/gis/tile-url.ts, ensuring robust fallback in production environments when env vars are missing while preserving local offlinepmtiles:///tiles/...paths.@aws-sdk/client-s3dependency without pulling in additional heavy tooling or complex multi-bucket orchestrators.src/lib/gis/__tests__/tile-url.test.ts.indonesia,khg,peat_soil,concessions) across offline and remote modes.Impact
For the consumer: Resolves production 404 tile errors by injecting
NEXT_PUBLIC_TILES_BASE_URLat container build time and providing production fallback tohttps://tiles.gambut.nokopia.com/tiles.For the maintainer: Clear operational documentation (
docs/CDN_CONFIGURATION.md) and automated script (scripts/set-r2-cors.mjs) for applying CORS and byte-range caching rules.Verification
pnpm test: 33 test files, 251 passing tests (tile-url.test.tspassed 12/12).pnpm exec tsc --noEmit: 0 TypeScript compiler errors.pnpm exec vp check: 0 formatting or linting errors across 290 files.Closes #120
Closes #38
Code Review & Ponytail Audit Summary: Configure R2 CDN Base URL Build Argument and CORS Rules
1. Mechanical Verification Gate (
scripts/verify-pr.mjs)fix(tiles): configure R2 CDN base URL build argument and CORS rules), mandatory principles citations, impact framing, and anti-overengineering file path filters.2. Ponytail Audit (Zero Bespoke Bloat)
NEXT_PUBLIC_TILES_BASE_URLinto Dockerfile build stage and Forgejo Actions deploy workflow. Clean production fallback insrc/lib/gis/tile-url.tsto prevent 404s when loading gitignored large vector tiles.scripts/set-r2-cors.mjsreusing existing@aws-sdk/client-s3dependency without introducing wrapper abstractions.Lean already. Ship.3. Subsystem Boundary & Discipline
.forgejo/workflows/deploy.yml,Dockerfile,docs/CDN_CONFIGURATION.md,scripts/set-r2-cors.mjs,src/lib/gis/tile-url.ts). Zero frontend UI component modifications.4. Verification & Test Proofs
vp check: Passed 100% (290 files formatted, 0 warnings/lint errors in 126 files).pnpm test: All 251 tests passed across 33 test suites (12/12 intile-url.test.ts).next build: Next.js Turbopack production build succeeded cleanly.CI / Verify Quality & Build (pull_request)passed.5. Acceptance Criteria
Decision: APPROVED for squash merge into
main.