refactor: make geocoding provider selection server-owned #357

Closed
opened 2026-05-11 21:02:04 +00:00 by barrettruth · 0 comments
Owner

Parent: #355

Problem

Calendar settings currently saves geocoding provider selection through client-side choreography: write one provider config, then delete/disable stale providers. If one request fails, multiple provider configs can remain and runtime precedence decides the winner. Generic provider mutation routes also accept raw provider strings too loosely.

Solution

Move active geocoding-provider selection into a server/core operation:

  • validate provider IDs against the provider registry
  • save the selected provider config and disable/remove stale geocoding provider configs in one server-owned flow
  • keep provider testing and runtime lookup behavior unchanged
  • preserve Photon, Mapbox, and Google Maps

Acceptance criteria

  • Calendar settings sends one explicit selection operation instead of client delete loops.
  • Provider mutation routes reject unknown/non-settings provider IDs.
  • Existing geocoding fallback and credential behavior is preserved.
Parent: #355 ## Problem Calendar settings currently saves geocoding provider selection through client-side choreography: write one provider config, then delete/disable stale providers. If one request fails, multiple provider configs can remain and runtime precedence decides the winner. Generic provider mutation routes also accept raw provider strings too loosely. ## Solution Move active geocoding-provider selection into a server/core operation: - validate provider IDs against the provider registry - save the selected provider config and disable/remove stale geocoding provider configs in one server-owned flow - keep provider testing and runtime lookup behavior unchanged - preserve Photon, Mapbox, and Google Maps ## Acceptance criteria - Calendar settings sends one explicit selection operation instead of client delete loops. - Provider mutation routes reject unknown/non-settings provider IDs. - Existing geocoding fallback and credential behavior is preserved.
Sign in to join this conversation.
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
barrettruth/delta#357
No description provided.