Spaces:
Sleeping
Sleeping
Commit History
-
feat: password reset via admin (no SMTP required)
Fabio Antonini +1: Claude Sonnet 4.6Backend: - auth/jwt.py: add TokenType.reset + create_reset_token() (24h) - routers/auth.py: POST /auth/reset-password/generate (admin only) and POST /auth/reset-password/confirm (public) - models/audit.py: add password_reset_generate / password_reset_confirm actions Frontend: - ResetPasswordPage.tsx: new public page at /reset-password?token=xxx - AdminPage.tsx: KeyRound button per user → modal with copyable reset link - App.tsx: add /reset-password route - api.ts: authApi.generateResetToken() + authApi.confirmReset() - i18n/it.json + en.json: all new strings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>f4fd404
-
fix: resolve local dev issues found during first test run
Fabio Antonini +1: Claude Sonnet 4.6- Replace passlib with bcrypt directly (passlib 1.7 incompatible with bcrypt 4.x) - Fix SQLite engine config: disable pool_pre_ping, add check_same_thread=False - Import all models in __init__.py so SQLAlchemy resolves relationships - Change dev proxy port to 8001 (port 8000 occupied by Wacom service on dev machine) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>3d87cee -
feat: add FastAPI backend (Phase 1 — feature/backend)
Fabio Antonini +1: Claude Sonnet 4.6New backend/ package with 35 REST endpoints: - config.py: pydantic-settings (DB, MinIO, JWT, Ollama, CORS) - database.py: async SQLAlchemy engine + session dependency - models/user.py: User, Organization, Role (admin/examiner/viewer) - models/project.py: Project, Document, Analysis ORM models - auth/password.py: bcrypt hash/verify - auth/jwt.py: access token (30min) + refresh token (7d) - auth/dependencies.py: get_current_user(), require_role() - routers/auth.py: POST /auth/login|refresh|logout - routers/users.py: CRUD /users/ + /users/me - routers/projects.py: CRUD /projects/ + document upload/delete - routers/analysis.py: POST /analysis/{htr,sig,ner,writer,grapho,pipeline,dating} - routers/rag.py: streaming SSE /rag/chat + doc management - storage/minio_client.py: async MinIO wrapper (anyio thread offload) - main.py: FastAPI app with CORS, lifespan, health check - Dockerfile: backend container image - .env.example: environment variable template Also: - requirements-backend.txt: fast…76f414d