Skip to content

Port relationship and identity query services to PostgreSQL #152

Description

@atomantic

Move the related graph/navigation and canonical-identity services from direct synchronous sqliteService calls to the asynchronous PostgreSQL query boundary.

Depends on #150

Scope:

  • Migrate path finding, map views, sparse-tree generation, ancestry updates, integrity checks, person metadata, ID mapping, provider mapping, and platform-link queries.
  • Preserve recursive traversal limits, parent roles, ordering, canonical/external ID semantics, upserts, and transaction ownership.
  • Propagate async behavior through service and route callers without fire-and-forget mutations.
  • Add focused parity tests for cycles, missing persons, multi-provider identity links, relationship mutation, map/geocode status reads, and tree navigation.

Acceptance criteria:

  • No migrated service imports sqlite.service or issues SQLite-specific SQL.
  • Relationship/identity endpoints return equivalent results from the PostgreSQL fixture store.
  • Multi-statement mutations are atomic.
  • Cyclic family graphs terminate under the same limits as before.

Files/areas: server/src/services/{path,map,sparse-tree,ancestry-update,integrity,person,id-mapping,provider-mapping,platform-linking,multi-platform-comparison}.service.ts and their callers/tests.

Part of #120

After this issue ships, check its box in #120. If it was the last open child, comment on #120 with a summary of the delivered children and close #120 as completed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    effort:maxMaximum reasoning effort recommendedmodel:heavyBest suited to the strongest available coding modelplanClaimable backlog item

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions