Sangeetha-Grantha

Metadata Value
Status Not Started
Version 1.1.0
Last Updated 2026-07-18
Author Sangeetha Grantha Team
Priority P1 — hard blocker for any non-localhost deployment
Type Stub — carries the deferred interactive-auth items split out of TRACK-114
Epic TRACK-109 (W6 Security)
Decisions D3 (decision log); supersedes the password-login assumption in north-star N1
Depends on TRACK-114 (argon2id PasswordHasher in place)

TRACK-119: Interactive Auth — OAuth / OTP (carries deferred N1 items)

Goal

Replace the shared-admin-token login with a real, per-user interactive authentication path — targeting OAuth providers (Google, Apple) and/or OTP to mobile/email — and close the auth gaps that TRACK-114 deliberately scoped out.

Why this exists (split from TRACK-114)

TRACK-114’s north-star N1 framing assumed login verified a password. It does not: POST /v1/auth/token (AuthRoutes.kt) is gated by a shared ADMIN_TOKEN, then issues a JWT with caller-supplied roles after an email/userId lookup — no password is checked. Because the user’s chosen direction is passwordless (OAuth/OTP), building a full password-login flow under TRACK-114 would have been throwaway work. TRACK-114 was therefore scoped to “secure the hash at rest” only (argon2id PasswordHasher, no plaintext stored), and these items moved here. See [[auth-future-direction]].

Scope (deferred from TRACK-114)

Acceptance Criteria

Security note

Until this lands, the system must not be deployed beyond localhost — the shared-token + self-assigned-roles path is an open privilege escalation. This is the explicit gate north-star N1 cares about.

References