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:
| Param | Purpose |
|---|---|
quoteId | Quote identifier |
preFastlaneUrl / returnUrl / daUrl | Return URL for DA |
dev-key | Dev 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
sessionIdcomes from DA storage (sessionStorage,localStorage, orda-session-storage)
Session Init
useSessionInit (apps/fastlane-portal/src/app/hooks/use-session-init.ts):
- Extract
sessionId,carrierId,lob,statefrom URL (orinitialParamsRefif redirect already removed them) - Validate UUID, LOB, state
- Resolve carrier slug via
resolveCarrierSlug()(e.g.carrierId=35→safeco) - Call
GET /session/:sessionId/initializeto load session - Store
sessionUuid,quoteId,lob,carrier,statein Zustand session store - 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,lobfrom URL or session store - Maps
carrierIdto slug viagetCarrierByCompanyClientIdor known slugs - For Safeco Auto:
carrierSlug === 'safeco' && lob === 'auto'→defaultRoute = '/carriers/safeco/auto/' - Root route
/redirects todefaultRoutevia<Navigate to={defaultRoute} replace /> - Safeco Auto route:
<Route path="/carriers/safeco/auto/*" element={<SafecoAutoFlow />} />