MCPcopy
hub / github.com/CodebuffAI/codebuff / logCountryAccess

Function logCountryAccess

web/src/app/api/v1/freebuff/session/_handlers.ts:93–123  ·  view source on GitHub ↗
(
  route: 'GET' | 'POST',
  userId: string,
  countryAccess: FreeModeCountryAccess,
  deps: FreebuffSessionDeps,
)

Source from the content-addressed store, hash-verified

91}
92
93function logCountryAccess(
94 route: 'GET' | 'POST',
95 userId: string,
96 countryAccess: FreeModeCountryAccess,
97 deps: FreebuffSessionDeps,
98): void {
99 const privacyProviderDecision =
100 getFreeModePrivacyProviderDecision(countryAccess)
101 if (countryAccess.allowed && privacyProviderDecision !== 'ipinfo_only') return
102
103 const privacyHardBlocked = shouldHardBlockFreeModeAccess(countryAccess)
104 deps.logger.info(
105 {
106 route,
107 userId,
108 accessTier: getFreeModeAccessTier(countryAccess),
109 cfHeader: countryAccess.cfCountry,
110 geoipResult: countryAccess.geoipCountry,
111 resolvedCountry: countryAccess.countryCode,
112 countryBlockReason: countryAccess.blockReason,
113 ipPrivacySignals: countryAccess.ipPrivacy?.signals,
114 spurIpPrivacySignals: countryAccess.spurIpPrivacy?.signals,
115 spurStatus: countryAccess.spurStatus,
116 privacyDecision: getFreeModePrivacyDecision(countryAccess),
117 privacyProviderDecision,
118 privacyHardBlocked,
119 clientIp: countryAccess.hasClientIp ? '[redacted]' : undefined,
120 },
121 '[freebuff/session] country detection',
122 )
123}
124
125async function endSessionForHardBlock(
126 auth: Extract<AuthResult, { userId: string }>,

Callers 2

postFreebuffSessionFunction · 0.85
getFreebuffSessionFunction · 0.85

Tested by

no test coverage detected