feat: add authentication for OSS (#167)

* feat: add authentication for OSS

Fixes #157 and #156

* fix: fix token generation

* fix: limit fastapi workers to 1
This commit is contained in:
Abhishek 2026-02-20 18:21:24 +05:30 committed by GitHub
parent 0791975864
commit 642cc34e8c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
48 changed files with 994 additions and 303 deletions

31
api/schemas/auth.py Normal file
View file

@ -0,0 +1,31 @@
from pydantic import BaseModel, EmailStr, field_validator
class SignupRequest(BaseModel):
email: EmailStr
password: str
name: str | None = None
@field_validator("password")
@classmethod
def password_min_length(cls, v: str) -> str:
if len(v) < 8:
raise ValueError("Password must be at least 8 characters")
return v
class LoginRequest(BaseModel):
email: EmailStr
password: str
class UserResponse(BaseModel):
id: int
email: str | None
name: str | None = None
organization_id: int | None = None
class AuthResponse(BaseModel):
token: str
user: UserResponse