feat: Add JWT auth and nomenclature sync to data-entry-app

Integrate shared JWT authentication into data-entry-app:
- Add Oracle pool initialization for auth service
- Add AuthenticationMiddleware to protect API routes
- Update all receipt endpoints to use CurrentUser from JWT
- Add shared auth router (/api/auth/login, /api/auth/refresh)

Add nomenclature synchronization feature:
- Create SQLite models for synced suppliers, local suppliers, and cash registers
- Add nomenclature router with sync triggers and CRUD endpoints
- Add sync service for Oracle → SQLite nomenclature data
- Update nomenclature_service to use synced SQLite data with fallbacks

Create shared frontend components:
- Add shared/frontend/ with LoginView.vue, auth store factory, login.css
- Integrate shared login and auth into data-entry-app frontend
- Add axios-based API service with token refresh interceptor

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-14 18:36:24 +02:00
parent 682a4b64b9
commit c5fde510a8
37 changed files with 28907 additions and 903 deletions

View File

@@ -38,8 +38,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
**Working on `reports-app/` or `shared/`**:
→ Use instructions from this file (below)
**Working on shared components** (`shared/auth/`, `shared/database/`):
**Working on shared components** (`shared/auth/`, `shared/database/`, `shared/frontend/`):
→ These are used by BOTH apps - be careful with changes!
`shared/frontend/` contains: LoginView.vue, auth store factory, login styles
---
@@ -48,9 +49,13 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
### Microservices Structure
```
.
├── shared/ # Shared components (DB pool, auth, utils)
│ ├── database/ # Oracle pool (used by reports-app)
── auth/ # JWT auth (used by both apps)
├── shared/ # Shared components (DB pool, auth, frontend)
│ ├── database/ # Oracle pool (used by both apps)
── auth/ # JWT auth (used by both apps)
│ └── frontend/ # Shared Vue components, stores, styles
│ ├── components/ # LoginView.vue
│ ├── stores/ # auth.js (Pinia store factory)
│ └── styles/ # login.css
├── reports-app/ # READ-ONLY reports from Oracle
│ ├── backend/ # FastAPI API (port 8001)