Daniel Bedeleanu 9b6adad618 feat: implementare JWT Bearer authentication pe toți routers [C-01]
Implementare completă a autentificării Bearer token:
- Creiez backend/auth.py: funcții JWT (create_access_token, get_current_user, get_current_admin)
- Modific /users/login: returnează TokenResponse cu JWT token și expirare 8h
- Adaug Depends(get_current_user) pe toate endpoint-urile API
- [M-02] user_id extras din JWT token, nu din request body
- [L-01] Token cu exp claim pentru sesiuni frontend

Acces endpoints-uri:
- GET/POST /users/: authenticated users
- POST /users/: admin only
- PUT /users/{id}, DELETE /users/{id}, /ldap-config, /test-ldap: admin only
- Toți routers (items, operations, categories): authenticated users minimum

Modificări dependențe:
- Adaug: python-jose[cryptography]>=3.3.0, slowapi>=0.1.9 (pentru H-02 rate limiting)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 13:38:24 +03:00

TFM aInventory (2026 Edition)

A unified, offline-first Inventory Management System built as a Progressive Web App (PWA). Features include AI-powered label extraction (OCR), local barcode/QR scanning, and multi-user authentication with LDAP support.


🛠 Project Modes

This project supports three distinct operational modes:

1. 🚀 Development Mode (Bare-Metal)

Ideal for local development on macOS/Linux.

Isolated and portable container stack.

  • Command: docker-compose up -d --build
  • Details: Uses Caddy as a reverse proxy for HTTPS. Persistent data and logs are mapped to ./data and ./logs.
  • Access: https://localhost:3003

3. 🐧 Standalone Linux Mode (Systemd)

Native Linux installation (Alma/Debian/Ubuntu) without Docker dependencies.

  • Installation: sudo ./install_service.sh
  • Execution: sudo systemctl start inventory
  • Details: Compiles the frontend for production and manages the entire stack as a system service.
  • Access: https://:3003

📦 Production Distribution

To generate a clean production package without AI-agent metadata or development artifacts:

  1. Run ./export_prod.sh
  2. A .zip archive will be created (e.g., aInventory-PROD-v1.3.2.zip).
  3. This archive contains a specialized README.txt with deployment-only instructions.

🏗 Technical Overview

  • Backend: FastAPI (Python 3.12+)
  • Frontend: Next.js 15+ (React PWA)
  • Database: SQLite (SQLAlchemy) with Dexie.js (IndexedDB) for client-side sync.
  • Proxy: Caddy (Docker) or local-ssl-proxy (Standalone/Dev).
  • AI Engine: Google Gemini (Generative AI SDK).

For more details, see PROJECT_ARCHITECTURE.md.


📜 AI Operational Rules

AI agents working on this project MUST follow the guidelines in AI_RULES.md.

Description
Hardware Inventory System vith AI and OCR visual scanning
Readme 622 MiB
Languages
Python 95.7%
TypeScript 1.4%
Cython 1.1%
C 1%
C++ 0.6%