refactor: make geocoding provider selection server-owned #384

Merged
barrettruth merged 1 commit from issue-357-server-owned-geocoding-provider into main 2026-05-12 13:44:39 +00:00
Owner

Problem

Calendar settings selected geocoding providers by saving one integration config and then deleting stale providers from the client. Partial failures could leave multiple active geocoding configs and fall back to runtime precedence. Generic integration mutators also accepted unchecked provider path values.

Solution

  • Add a server-owned geocoding provider selection operation and route that validates providers through the registry, saves the selected config, enables it, and removes stale geocoding configs in one transaction.
  • Update calendar settings to call the explicit geocoding selection endpoint instead of POST/delete choreography.
  • Validate generic settings integration provider IDs before POST/PATCH/DELETE mutations.
  • Preserve Photon, Mapbox, Google Maps, fallback/runtime lookup, and credential test behavior.

Verification

  • nix develop --command pnpm exec vitest run tests/api/settings-geocoding.test.ts tests/api/settings-integrations.test.ts tests/api/integrations-test-route.test.ts tests/api/geocode.test.ts tests/core/geocoding.test.ts tests/core/provider-registry.test.ts
  • nix develop --command just lint
  • nix develop --command just test
  • nix develop --command just build

Closes #357

## Problem Calendar settings selected geocoding providers by saving one integration config and then deleting stale providers from the client. Partial failures could leave multiple active geocoding configs and fall back to runtime precedence. Generic integration mutators also accepted unchecked provider path values. ## Solution - Add a server-owned geocoding provider selection operation and route that validates providers through the registry, saves the selected config, enables it, and removes stale geocoding configs in one transaction. - Update calendar settings to call the explicit geocoding selection endpoint instead of POST/delete choreography. - Validate generic settings integration provider IDs before POST/PATCH/DELETE mutations. - Preserve Photon, Mapbox, Google Maps, fallback/runtime lookup, and credential test behavior. ## Verification - nix develop --command pnpm exec vitest run tests/api/settings-geocoding.test.ts tests/api/settings-integrations.test.ts tests/api/integrations-test-route.test.ts tests/api/geocode.test.ts tests/core/geocoding.test.ts tests/core/provider-registry.test.ts - nix develop --command just lint - nix develop --command just test - nix develop --command just build Closes #357
refactor geocoding provider selection
All checks were successful
quality / Test (pull_request) Successful in 17s
quality / Lint (pull_request) Successful in 20s
quality / Build (pull_request) Successful in 43s
781459e0a3
barrettruth force-pushed issue-357-server-owned-geocoding-provider from 781459e0a3
All checks were successful
quality / Test (pull_request) Successful in 17s
quality / Lint (pull_request) Successful in 20s
quality / Build (pull_request) Successful in 43s
to 918e42e9f2
All checks were successful
quality / Test (pull_request) Successful in 17s
quality / Lint (pull_request) Successful in 22s
quality / Build (pull_request) Successful in 43s
2026-05-12 13:14:13 +00:00
Compare
barrettruth deleted branch issue-357-server-owned-geocoding-provider 2026-05-12 13:44:39 +00:00
Sign in to join this conversation.
No reviewers
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!384
No description provided.