1---2name: users3description: Skill for the Users area of paddock. 45 symbols across 12 files.4---56# Users7845 symbols | 12 files | Cohesion: 78%910## When to Use1112- Working with code in `src/`13- Understanding how getMcSessionCookieName, isRequestSecure, parseMcSessionCookieHeader work14- Modifying users-related functionality1516## Key Files1718| File | Symbols |19|------|---------|20| `src/lib/auth.ts` | warnProxyAuthMisconfigOnce, safeCompare, getDefaultWorkspaceContext, getWorkspaceIdFromRequest, getTenantIdFromRequest (+15) |21| `src/lib/session-cookie.ts` | getMcSessionCookieName, isRequestSecure, parseMcSessionCookieHeader, envFlag, getMcSessionCookieOptions |22| `src/lib/security-events.ts` | normalizeSecurityEventType, calculateAgentTrustScore, logSecurityEvent, updateAgentTrustScore |23| `src/lib/password.ts` | hashPassword, verifyPasswordWithRehashCheck, verifyPassword |24| `src/app/api/auth/users/route.ts` | POST, PUT, DELETE |25| `src/app/api/setup/route.ts` | GET, POST |26| `src/app/api/auth/me/route.ts` | GET, PATCH |27| `src/app/api/auth/google/route.ts` | upsertAccessRequest, POST |28| `src/lib/google-auth.ts` | verifyGoogleIdToken |29| `src/lib/db.ts` | needsFirstTimeSetup |3031## Entry Points3233Start here when exploring this area:3435- **`getMcSessionCookieName`** (Function) — `src/lib/session-cookie.ts:6`36- **`isRequestSecure`** (Function) — `src/lib/session-cookie.ts:10`37- **`parseMcSessionCookieHeader`** (Function) — `src/lib/session-cookie.ts:15`38- **`getMcSessionCookieOptions`** (Function) — `src/lib/session-cookie.ts:35`39- **`calculateAgentTrustScore`** (Function) — `src/lib/security-events.ts:62`4041## Key Symbols4243| Symbol | Type | File | Line |44|--------|------|------|------|45| `getMcSessionCookieName` | Function | `src/lib/session-cookie.ts` | 6 |46| `isRequestSecure` | Function | `src/lib/session-cookie.ts` | 10 |47| `parseMcSessionCookieHeader` | Function | `src/lib/session-cookie.ts` | 15 |48| `getMcSessionCookieOptions` | Function | `src/lib/session-cookie.ts` | 35 |49| `calculateAgentTrustScore` | Function | `src/lib/security-events.ts` | 62 |50| `logSecurityEvent` | Function | `src/lib/security-events.ts` | 78 |51| `updateAgentTrustScore` | Function | `src/lib/security-events.ts` | 121 |52| `hashPassword` | Function | `src/lib/password.ts` | 11 |53| `verifyPasswordWithRehashCheck` | Function | `src/lib/password.ts` | 22 |54| `verifyPassword` | Function | `src/lib/password.ts` | 42 |55| `verifyGoogleIdToken` | Function | `src/lib/google-auth.ts` | 10 |56| `needsFirstTimeSetup` | Function | `src/lib/db.ts` | 353 |57| `safeCompare` | Function | `src/lib/auth.ts` | 42 |58| `getWorkspaceIdFromRequest` | Function | `src/lib/auth.ts` | 172 |59| `getTenantIdFromRequest` | Function | `src/lib/auth.ts` | 177 |60| `createSession` | Function | `src/lib/auth.ts` | 188 |61| `destroyAllUserSessions` | Function | `src/lib/auth.ts` | 274 |62| `authenticateUser` | Function | `src/lib/auth.ts` | 285 |63| `getUserById` | Function | `src/lib/auth.ts` | 333 |64| `createUser` | Function | `src/lib/auth.ts` | 356 |6566## Execution Flows6768| Flow | Type | Steps |69|------|------|-------|70| `PATCH → EnsureDirExists` | cross_community | 7 |71| `PATCH → CalculateAgentTrustScore` | cross_community | 7 |72| `PATCH → Generate` | cross_community | 7 |73| `POST → EnsureDirExists` | cross_community | 7 |74| `POST → CalculateAgentTrustScore` | cross_community | 7 |75| `POST → Generate` | cross_community | 7 |76| `GET → EnsureDirExists` | cross_community | 7 |77| `GET → CalculateAgentTrustScore` | cross_community | 7 |78| `GET → Generate` | cross_community | 7 |79| `POST → EnsureDirExists` | cross_community | 7 |8081## Connected Areas8283| Area | Connections |84|------|-------------|85| [id] | 27 calls |86| Cluster_289 | 4 calls |87| Cluster_191 | 1 calls |8889## How to Explore90911. `gitnexus_context({name: "getMcSessionCookieName"})` — see callers and callees922. `gitnexus_query({query: "users"})` — find related execution flows933. Read key files listed above for implementation details