Commit Graph

7 Commits

Author SHA1 Message Date
d00979f89e fix: use rows array returned by query(), not result.rows
db-postgres.ts query() returns T[] directly, not a QueryResult object.
result.rows was undefined, causing the session lookup to always
return null and redirect to login even with a valid session token.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 17:39:41 -08:00
c410c1759a debug: add logging to theia-auth session lookup
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 17:35:56 -08:00
008b04d2dd debug: add ?debug=1 endpoint to theia-auth for cookie inspection
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 16:57:49 -08:00
28cd9dd776 fix: correct snake_case column names in session lookup SQL
Prisma maps sessionToken → session_token and userId → user_id
in the PostgreSQL sessions table. The forwardAuth query was using
the wrong camelCase column names.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 16:53:32 -08:00
efcf20b8f6 fix: validate Theia auth via direct Postgres session lookup
Avoid importing authOptions/PrismaClient in the forwardAuth endpoint.
Under --network host (Coolify's build flag), routes that import Prisma
at module evaluation time are silently dropped from the build output.

Instead, read the NextAuth session-token cookie directly and verify
it with a raw SQL query against the sessions table - the same pattern
used by other working API routes via @/lib/db-postgres.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 16:33:47 -08:00
b9baefed0b fix: use getServerSession instead of getToken in theia-auth
next-auth/jwt subpath import causes Next.js to silently drop the
route from the standalone build output. Switch to getServerSession
which is used by all other working API routes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 15:28:22 -08:00
4e6fcbc566 fix: move forwardAuth endpoint to /api/theia-auth
NextAuth catches all /api/auth/* routes via [...nextauth] catch-all.
Move the Traefik forwardAuth endpoint to /api/theia-auth to avoid
the conflict. Traefik dynamic config updated to match.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 15:13:29 -08:00