Skip to main content

Entry from DA

Customers land in Fastlane when they click "Buy Online" for Safeco on the DA (Dealer Application) results page. DA opens Fastlane with a deep link containing session parameters.

Entry URL

/?sessionId=<uuid>&carrierId=35&lob=Auto&state=TX

Optional parameters:

ParamPurpose
quoteIdQuote identifier
preFastlaneUrl / returnUrl / daUrlReturn URL for DA
dev-keyDev auth bypass

Safeco uses carrierId=35. The carrier slug is resolved from this ID via getCarrierByCompanyClientId or known slugs.

DA Buy Online

  • DA results page: e2e/da-to-fastlane/page-objects/da/results-page.ts
  • clickBuyOnline(carrierName) finds the Safeco card and clicks "Buy Online"
  • DA opens Fastlane in a new tab or same window with the URL above
  • sessionId comes from DA storage (sessionStorage, localStorage, or da-session-storage)

Session Init

useSessionInit (apps/fastlane-portal/src/app/hooks/use-session-init.ts):

  1. Extract sessionId, carrierId, lob, state from URL (or initialParamsRef if redirect already removed them)
  2. Validate UUID, LOB, state
  3. Resolve carrier slug via resolveCarrierSlug() (e.g. carrierId=35safeco)
  4. Call GET /session/:sessionId/initialize to load session
  5. Store sessionUuid, quoteId, lob, carrier, state in Zustand session store
  6. Optional dev auth: POST /auth/dev/login?dev-key=...&sessionId=...

GET /session/:sessionId/initialize (apps/apis/fastlane-api-gateway/src/app/controllers/session-core.controller.ts):

  • Loads session from SessionStoreService (Redis, then CRN DB fallback)
  • Returns session data for the portal

Routing

DynamicRoutes (apps/fastlane-portal/src/app/app.tsx):

  • Reads carrierId, lob from URL or session store
  • Maps carrierId to slug via getCarrierByCompanyClientId or known slugs
  • For Safeco Auto: carrierSlug === 'safeco' && lob === 'auto'defaultRoute = '/carriers/safeco/auto/'
  • Root route / redirects to defaultRoute via <Navigate to={defaultRoute} replace />
  • Safeco Auto route: <Route path="/carriers/safeco/auto/*" element={<SafecoAutoFlow />} />