Draw the map with Leaflet, over OpenStreetMap tiles by default, with the tile source in Server settings #898
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
performance
security
tier
1
tier
2
tier
3
tier/4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo#898
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Why
#700 chose Leaflet 1.9.4, vendored, and decided that a zoomable map exists only when the operator sets a tile source. Nothing has delivered Leaflet since; the map is still the server-written SVG (
jobs/views.pyCompanyMapView,templates/jobs/company_map.html), and #849, #850, #702 and #703 all wait on it. On 2026-10-12 the maintainer decided to reverse #700's decision 4: OpenStreetMap's public tiles are the default, fetched directly by the browser.What changes
scripts/sync-vendor.mjswith their licences andTHIRD-PARTY.mdrows; OSV lists no advisory for either (checked 2026-10-12).SiteSettings:osm(default),custom(a URL template and its attribution) ornone(the Natural Earth outline drawn by Leaflet, nothing fetched); environment overridesPOSTULO_MAP_TILES,POSTULO_MAP_TILE_URL,POSTULO_MAP_TILE_ATTRIBUTION; edited on a Maps settings page under Server settings → Plugins.img-src 'self' data:.same-originReferrer-Policy would strip the Referer OpenStreetMap's tile policy requires, so the tile layer alone sendsstrict-origin-when-cross-origin(the instance's origin, never a path).innerHTML.docs/THREAT-MODEL.mdsays what OpenStreetMap now learns: each viewer's address and the areas they view.OpenStreetMap tile policy (read 2026-10-12)
Visible "© OpenStreetMap contributors"; a valid Referer; no prefetching or offline use; heavy use may be blocked without notice; avoid hard-coded URLs, which the setting answers.
Done when
The map page draws OpenStreetMap tiles with no CSP violation, the other pages' policy is unchanged, none fetches nothing, a custom origin appears only on the map page's policy, and the browser suite walks the page in both themes.