feat(pipeline): extract localized indonesia.pmtiles basemap and upload to Cloudflare R2 #106

Merged
yuris merged 3 commits from feat/extract-basemap-pipeline into main 2026-10-15 01:59:28 +00:00
Owner

Summary

Implements automated pipeline script scripts/extract-basemap.sh to extract localized OpenStreetMap vector basemap tiles (z0-z11) for Indonesia and deploy to Cloudflare R2.

Closes #42

Principles applied

  • principle-boundary-discipline: Large binary vector basemap (80.3 MB) is isolated to Cloudflare R2 edge storage rather than tracked in Git commit history.
  • principle-build-the-lever: Added scripts/extract-basemap.sh extracting only the Indonesian territorial bounding box [94.0, -11.5, 141.5, 6.5].
  • ponytail-review: No tile server containers or PostGIS databases required; utilizes serverless PMTiles byte ranges directly.

Impact

  • For the consumer: Zero tile server latency; fast Anycast CDN edge vector tile delivery for the entire Indonesian archipelago.
  • For the maintainer: Zero Git bloat; reproducible extraction pipeline.

Anti-Overengineering Audit (ponytail-review)

  • No bespoke tools or in-house crates added when standard upstream libraries exist.
  • No cosmetic compliance (e.g. importing a library just to call an unused helper or info command).
  • Code subtraction evaluated: unnecessary wrappers or files were deleted rather than preserved.

Verification proof

  • pnpm exec vp check: Passed cleanly with zero formatting or lint errors.
  • pnpm test: All unit tests passed.
  • pnpm build: Next.js Turbopack production build succeeded cleanly.
  • pmtiles verify: Verified extracted indonesia.pmtiles in 3.16ms.
  • S3 upload: Verified tiles/indonesia.pmtiles (80.32 MB) live in titik-gambut-public.
## Summary Implements automated pipeline script `scripts/extract-basemap.sh` to extract localized OpenStreetMap vector basemap tiles (z0-z11) for Indonesia and deploy to Cloudflare R2. Closes #42 ### Principles applied - `principle-boundary-discipline`: Large binary vector basemap (80.3 MB) is isolated to Cloudflare R2 edge storage rather than tracked in Git commit history. - `principle-build-the-lever`: Added `scripts/extract-basemap.sh` extracting only the Indonesian territorial bounding box `[94.0, -11.5, 141.5, 6.5]`. - `ponytail-review`: No tile server containers or PostGIS databases required; utilizes serverless PMTiles byte ranges directly. ### Impact - **For the consumer:** Zero tile server latency; fast Anycast CDN edge vector tile delivery for the entire Indonesian archipelago. - **For the maintainer:** Zero Git bloat; reproducible extraction pipeline. ### Anti-Overengineering Audit (ponytail-review) - [x] No bespoke tools or in-house crates added when standard upstream libraries exist. - [x] No cosmetic compliance (e.g. importing a library just to call an unused helper or info command). - [x] Code subtraction evaluated: unnecessary wrappers or files were deleted rather than preserved. ### Verification proof - `pnpm exec vp check`: Passed cleanly with zero formatting or lint errors. - `pnpm test`: All unit tests passed. - `pnpm build`: Next.js Turbopack production build succeeded cleanly. - `pmtiles verify`: Verified extracted `indonesia.pmtiles` in 3.16ms. - S3 upload: Verified `tiles/indonesia.pmtiles` (80.32 MB) live in `titik-gambut-public`.
feat(pipeline): extract localized indonesia.pmtiles basemap and upload to Cloudflare R2
All checks were successful
CI / Verify Quality & Build (pull_request) Successful in 1m49s
c99e81b031
- Add scripts/extract-basemap.sh to extract localized Indonesia vector basemap (z0-z11) from Protomaps build
- Ignore indonesia.pmtiles and terrain.pmtiles in .gitignore to prevent Git bloat
- Upload 80.3 MB indonesia.pmtiles archive to Cloudflare R2 bucket (titik-gambut-public/tiles/)

Closes #42
- Add scripts/ingest-peat-khg.py to fetch Layer 6 (Peat Soil) and Layer 37 (KHG) from BIG Satu Peta
- Update scripts/build-pmtiles.sh with auto-ingestion if cache files are absent
- Update .forgejo/workflows/sync-tiles-r2.yml to process Peat Soil and KHG alongside Concessions
ci(workflow): include automated Peat Soil and KHG ingestion and compilation in sync-tiles-r2.yml
All checks were successful
CI / Verify Quality & Build (pull_request) Successful in 1m57s
074aed6c3c
yuris merged commit b086f2b02f into main 2026-10-15 01:59:28 +00:00
yuris deleted branch feat/extract-basemap-pipeline 2026-10-15 01:59:29 +00:00
Sign in to join this conversation.
No reviewers
No labels
backend
frontend
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
yuris/titik-gambut-next!106
No description provided.