Pin an address at its street with the geocoder the operator chooses (#913) #1056
No reviewers
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!1056
Loading…
Reference in a new issue
No description provided.
Delete branch "913-street-geocoding"
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?
Closes #913
Pins an address that has a street at that street, using a geocoding service the operator chooses: Nominatim, Photon or addok, each at a base address the operator can point at their own server.
Decisions (maintainer, 2026-10-27)
docs/THREAT-MODEL.mdall say this.https://nominatim.openstreetmap.org.Where this differs from the issue's sketch
The issue proposed looking the street up as the address is saved. Here it happens in the scheduler instead (
send_due_reminders→geocoding.run()):The address page says "Its street will be looked up with {service} shortly." until the look-up happens.
Behaviour
placed_by="street"). Street level means Nominatimplace_rank ≥ 26, Photonhouse/street, or addokhousenumber/street.street_fromrecords the address as it was looked up, so an unchanged address is not asked again.street_tried_at).geocoder_problem. That stops every look-up and shows an error on the settings page; saving the page lifts it.postulo.plugins.http: destination policy, 10 s/15 s deadlines, no redirects, and a 256 KiB body cap.postulo.E043for an unknownPOSTULO_GEOCODER,postulo.E044for a malformedPOSTULO_GEOCODER_URL.Changes
0038, withPostalAddress.street_from/street_tried_at,Placed.STREET, andSiteSettings.geocoder/geocoder_url/geocoder_consent/geocoder_problem.POSTULO_GEOCODER/POSTULO_GEOCODER_URL, both overriding the page.jobs/geocoding.py.jobs/placing.pydrops a stale street pin and resets the street state on take off.MapsFormand the Maps page.tests/test_geocoding.py(23 tests, network faked withhttpx.MockTransport).New strings reach Weblate after the merge.
🤖 Generated with Claude Code