Retire legacy routing authority - #544
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
UserRoutingConfigurationare removed./User/RoutingSettingsand/User/ApiToken; their former GET routes now return404.RouteProviderConfigurationId/version values remain scalar data without a live legacy foreign key; new personal-provider routes do not create legacy configuration identity.Database migration
20260904100416_RetireLegacyRoutingAuthorityapplies the dependency order required for populated databases:ApplicationSettingsactive-provider foreign key/index and global fields.UserRoutingConfigurationstrigger/function and table.Dropping the two credential-bearing legacy tables intentionally deletes their retired ciphertext; it is not copied into personal provider profiles. The migration retains Locations, imports, Trips, Places, Timeline data, personal provider profiles/admissions, Transport Profiles, Segment geometry, metrics, instructions, and scalar accepted-route provenance.
Downcan recreate empty legacy structures but cannot reconstruct deleted credentials, templates, mappings, selections, or global authority. Rollback therefore requires restoring the pre-upgrade PostgreSQL backup together with the matching Data Protection key-ring backup before starting the application.Validation
Evidence for approved exact head
04d5b2ab98e4df7dc62473429b63de83dd4b94f8:ApplicationDbContextauthority.testrun 33871912870 passed, including frontend audit/typecheck, all deterministic client tests, production asset build, restore, built-asset validation, LOC limits, test build, ordinary tests, and Playwright rendering/artifact verification.tests/e2e/shared-layout/routingAuthorityRetirement.spec.ts(1/1):/User/LocationProviderSettingsrendered separate Geocoding and Directions sections, showed Mapbox Directions is not implemented and is not offered, omitted obsolete routing navigation, and returned404for/User/RoutingSettingsand/User/ApiToken..local/playwright/shared-layout-output/routing-authority-retirement/location-provider-settings.png. The establishedghCLI workflow cannot upload a local image attachment, so the ignored artifact is retained locally and no source-controlled screenshot commit was added.FAILorINCOMPLETEfindings.REVIEWfindings are accepted for generated EF model/snapshot callables, the cohesive linear migration rollback, existing cohesive parser branching, and focused scenario tests; splitting those solely for metrics would add indirection.git diff --checkpassed, and the final diff/status checks show no unexpected source changes.Test-debt follow-ups
LocationImportBoundedPostgresTests.LegacyNoKeyLookup_PostgresPlansCanUseTimeAndSpatialIndexes. It requires deterministic proof of time/spatial index usability without forcing one exact valid planner choice.Deployment notes
This PR performs no deployment or release. Before deploying the migration, take and verify the coordinated pre-upgrade PostgreSQL and Data Protection key-ring backup. Deploy the compatible backend in the documented release order; do not infer, migrate, authorize, verify, or select personal provider authority from retired data.
Closes #538