Contents
PR Summary
What problems was I solving
Prospect/account overview pages were reconstructing canonical audience URLs in the frontend UI using route keys, creating redundant URL logic across UI and backend, and not threading tenant domain preferences properly through query boundaries.
What user-facing changes did I ship
Prospects and account overview pages now display canonical page URLs directly from backend instead of reconstructing them; switching tenant domains properly updates the URL display for pages. No UI functional changes. The 'Copy Link' functionality may show 'Publish to copy link' for unpublished pages as before.
How I implemented it
-
Page Service: Added batch URL generation API
getPageUrlsByPageIdsthat fetches canonical public URLs for multiple pages in one call without creating missing linked-audience route keys (enabling safe URL-only reads). -
Repository: Added
getPageLinksByTargetsAndDomainmethod using a lateral SQL join to efficiently find which routing table entries reference target page IDs. -
Management Gateway: Updated
prospectOverviewandaccountOverviewGraphQL queries to addtenantDomainIdparameter and serialize theurlfield; they call the new batch API viagetPageUrlsByPageIdBatchChunkedhelper. -
Management UI View Model: Updated GraphQL operations to include
tenantDomainIdparameter andurlfield; view model hooks (useProspectsIndexViewModel) now threadtenantDomainIdthrough all overviews. -
Management UI App: Prospects page now receives
tenantDomainIdfrom domain preferences and renderspage.urldirectly inProspectPagesCell, eliminating client-side URL construction.
Description for the changelog
feat: Add page-service batch page URL summary API for prospect/account overview (ARC-2083).
- Backend: New
getPageUrlsByPageIdsAPI returns canonical URLs keyed by pageId without side effects. - Repository: Added
getPageLinksByTargetsAndDomainwith lateral join for efficient routing table lookups. - GraphQL: Prospect and account overview queries now accept
tenantDomainIdand returnurlfield. - UI: Prospects and account pages consume canonical URLs directly, eliminating frontend URL construction.
- Domain preferences:
tenantDomainIdis now properly threaded through overview data flow.