# ๐Ÿ“Š ROA2WEB - SCHEMฤ‚ GRAFICฤ‚ ARHITECTURฤ‚ Aceastฤƒ schemฤƒ prezintฤƒ arhitectura completฤƒ a aplicaศ›iei ROA2WEB, incluzรขnd frontend-ul Vue.js, backend-ul FastAPI, middleware-ul de autentificare ศ™i conexiunea la baza de date Oracle. ## ๐Ÿ—๏ธ **ARHITECTURA GENERALฤ‚** ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸŒ CLIENT โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ HTTP Requests โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ–ฅ๏ธ FRONTEND โ”‚ โ”‚ Vue.js 3 + PrimeVue + Vite โ”‚ โ”‚ Port: 5173 (dev) / 3000 (prod) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ Components: ๐Ÿ“ฆ Stores (Pinia): โ”‚ โ”‚ โ€ข LoginView.vue โ€ข auth.js (JWT tokens) โ”‚ โ”‚ โ€ข DashboardView.vue โ€ข companies.js โ”‚ โ”‚ โ€ข InvoicesView.vue โ€ข dashboard.js โ”‚ โ”‚ โ€ข BankCashRegisterView.vue โ€ข invoices.js โ”‚ โ”‚ โ€ข treasury.js โ”‚ โ”‚ ๐Ÿ”ง Services: โ”‚ โ”‚ โ€ข api.js (Axios HTTP client) โ”‚ โ”‚ โ€ข JWT token management โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ API Calls (axios) โ”‚ Authorization: Bearer โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿš€ BACKEND API โ”‚ โ”‚ FastAPI + Uvicorn โ”‚ โ”‚ Port: 8000 โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ›ก๏ธ MIDDLEWARE LAYER: โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ 1. CORSMiddleware (Frontend communication) โ”‚ โ”‚ โ”‚ โ”‚ 2. AuthenticationMiddleware (JWT validation) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Token extraction from Authorization header โ”‚ โ”‚ โ”‚ โ”‚ โ€ข JWT verification & user data injection โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Rate limiting (5 req/5min per IP) โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Security headers injection โ”‚ โ”‚ โ”‚ โ”‚ โ€ข Excluded paths: ["/", "/docs", "/health", "/api/auth/login"] โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ›ค๏ธ API ROUTES: โ”‚ โ”‚ โ€ข /api/auth/login (POST) - User authentication โ”‚ โ”‚ โ€ข /api/companies (GET) - Company list โ”‚ โ”‚ โ€ข /api/dashboard (GET) - Dashboard data โ”‚ โ”‚ โ€ข /api/invoices (GET) - Invoice reports โ”‚ โ”‚ โ€ข /api/treasury (GET) - Treasury/Bank data โ”‚ โ”‚ โ€ข /health (GET) - Health check โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“Š SERVICES: โ”‚ โ”‚ โ€ข invoice_service.py โ”‚ โ”‚ โ€ข dashboard_service.py โ”‚ โ”‚ โ€ข treasury_service.py โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Database Queries โ”‚ SSH Tunnel Required โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ” SSH TUNNEL LAYER โ”‚ โ”‚ ./ssh_tunnel.sh (Local port forwarding) โ”‚ โ”‚ Local: localhost:1526 โžœ Remote: oracle_server:1521 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Encrypted connection โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ›๏ธ ORACLE DATABASE โ”‚ โ”‚ Schema: CONTAFIN_ORACLE โ”‚ โ”‚ Port: 1521 (remote) / 1526 (local via tunnel) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“‹ Main Tables/Views: โ”‚ โ”‚ โ€ข UTILIZATORI (Users) โ”‚ โ”‚ โ€ข V_NOM_FIRME (Companies) โ”‚ โ”‚ โ€ข VDEF_UTIL_FIRME (User-Company relations) โ”‚ โ”‚ โ€ข Financial data tables (invoices, payments, etc.) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ”ง Stored Procedures: โ”‚ โ”‚ โ€ข pack_drepturi.verificautilizator (Authentication) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๐Ÿ”„ **FLUX DE AUTENTIFICARE** ``` 1. User Login (Frontend) โ†“ 2. POST /api/auth/login (Backend) โ†“ 3. Oracle Authentication via SSH Tunnel โ€ข pack_drepturi.verificautilizator(username, password) โ†“ 4. JWT Token Generation (Backend) โ€ข Access Token (30 min) โ€ข Refresh Token (7 days) โ€ข User data + companies + permissions โ†“ 5. Token Storage (Frontend - Pinia Store) โ†“ 6. Subsequent API Requests โ€ข Authorization: Bearer โ€ข AuthenticationMiddleware validation โ€ข User data injection in request.state ``` ## ๐Ÿšฆ **MIDDLEWARE AUTHENTICATION FLOW** ``` Incoming Request โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Rate Limiting โ”‚ โ†’ 429 if exceeded (5 req/5min per IP) โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Path Exclusion โ”‚ โ†’ Skip auth for /docs, /health, /api/auth/login โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Token Extract โ”‚ โ†’ 401 if missing Authorization header โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ JWT Validation โ”‚ โ†’ 401 if invalid/expired/malformed โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ User Injection โ”‚ โ†’ request.state.user = CurrentUser โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†’ request.state.is_authenticated = True โ†“ โ†’ request.state.token_data = TokenData โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Security Headersโ”‚ โ†’ X-Content-Type-Options, X-Frame-Options โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ†’ X-XSS-Protection, X-Process-Time โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Route Handler โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๐Ÿ—‚๏ธ **STRUCTURA DE FIศ˜IERE** ### Frontend (Vue.js) ``` frontend/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ components/ โ”‚ โ”‚ โ”œโ”€โ”€ dashboard/ โ”‚ โ”‚ โ”œโ”€โ”€ layout/ โ”‚ โ”‚ โ”œโ”€โ”€ reports/ โ”‚ โ”‚ โ””โ”€โ”€ ui/ โ”‚ โ”œโ”€โ”€ stores/ (Pinia) โ”‚ โ”‚ โ”œโ”€โ”€ auth.js โ”‚ โ”‚ โ”œโ”€โ”€ companies.js โ”‚ โ”‚ โ”œโ”€โ”€ dashboard.js โ”‚ โ”‚ โ”œโ”€โ”€ invoices.js โ”‚ โ”‚ โ””โ”€โ”€ treasury.js โ”‚ โ”œโ”€โ”€ services/ โ”‚ โ”‚ โ””โ”€โ”€ api.js โ”‚ โ”œโ”€โ”€ views/ โ”‚ โ”‚ โ”œโ”€โ”€ LoginView.vue โ”‚ โ”‚ โ”œโ”€โ”€ DashboardView.vue โ”‚ โ”‚ โ”œโ”€โ”€ InvoicesView.vue โ”‚ โ”‚ โ””โ”€โ”€ BankCashRegisterView.vue โ”‚ โ””โ”€โ”€ router/ โ””โ”€โ”€ tests/ (Playwright E2E) ``` ### Backend (FastAPI) ``` backend/ โ”œโ”€โ”€ app/ โ”‚ โ”œโ”€โ”€ main.py โ”‚ โ”œโ”€โ”€ routers/ โ”‚ โ”‚ โ”œโ”€โ”€ auth.py โ”‚ โ”‚ โ”œโ”€โ”€ companies.py โ”‚ โ”‚ โ”œโ”€โ”€ dashboard.py โ”‚ โ”‚ โ”œโ”€โ”€ invoices.py โ”‚ โ”‚ โ””โ”€โ”€ treasury.py โ”‚ โ”œโ”€โ”€ services/ โ”‚ โ”‚ โ”œโ”€โ”€ invoice_service.py โ”‚ โ”‚ โ”œโ”€โ”€ dashboard_service.py โ”‚ โ”‚ โ””โ”€โ”€ treasury_service.py โ”‚ โ””โ”€โ”€ models/ โ””โ”€โ”€ shared/ โ”œโ”€โ”€ auth/ โ”‚ โ”œโ”€โ”€ middleware.py โ”‚ โ”œโ”€โ”€ jwt_handler.py โ”‚ โ”œโ”€โ”€ auth_service.py โ”‚ โ””โ”€โ”€ models.py โ””โ”€โ”€ database/ โ””โ”€โ”€ oracle_pool.py ``` ## ๐Ÿ”ง **TEHNOLOGII UTILIZATE** ### Frontend Stack - **Vue.js 3** - Framework JavaScript reactiv - **PrimeVue** - UI Component Library - **Pinia** - State Management - **Vite** - Build Tool & Dev Server - **Axios** - HTTP Client - **Vue Router** - Client-side routing - **Chart.js** - Data visualization - **Playwright** - E2E Testing ### Backend Stack - **FastAPI** - Python Web Framework - **Uvicorn** - ASGI Server - **PyJWT** - JWT Token handling - **cx_Oracle** - Oracle Database driver - **Pydantic** - Data validation - **Python-dotenv** - Environment variables ### Database & Infrastructure - **Oracle Database** - Persistent data storage - **SSH Tunnel** - Secure database connection (Linux/development) - **Docker** - Containerization (Linux production) - **Nginx** - Reverse proxy & static files (Linux production) - **Windows Server + IIS** - Windows production deployment - **NSSM** - Windows service manager ## ๐ŸชŸ **ARHITECTURA WINDOWS SERVER/IIS** ### Deployment pe Windows Server ROA2WEB poate fi deployment pe Windows Server folosind IIS ศ™i Windows Services, fฤƒrฤƒ Docker: ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸŒ CLIENT โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ HTTP/HTTPS Requests โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐ŸชŸ IIS WEB SERVER โ”‚ โ”‚ Port: 80/443 (HTTPS with SSL certificate) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ Static Files Serving: ๐Ÿ”€ URL Rewrite Module: โ”‚ โ”‚ โ€ข Frontend (Vue.js build) โ€ข /api/* โ†’ Backend Service โ”‚ โ”‚ โ€ข web.config configuration โ€ข /* โ†’ index.html (SPA routing) โ”‚ โ”‚ โ€ข Compression & Caching โ€ข Application Request Routing (ARR) โ”‚ โ”‚ โ”‚ โ”‚ โš™๏ธ Application Pool: โ”‚ โ”‚ โ€ข ROA2WEB-AppPool (.NET not required) โ”‚ โ”‚ โ€ข Integrated pipeline mode โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Reverse Proxy to Backend โ”‚ http://localhost:8000/api/* โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ”ง WINDOWS SERVICE โ”‚ โ”‚ Service Name: ROA2WEB-Backend โ”‚ โ”‚ Manager: NSSM (Non-Sucking Service Manager) โ”‚ โ”‚ Port: 8000 (localhost only) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“Š Backend Components: โ”‚ โ”‚ โ€ข FastAPI + Uvicorn (Python 3.11+) โ”‚ โ”‚ โ€ข Auto-start on Windows boot โ”‚ โ”‚ โ€ข Auto-restart on failure (5 sec delay) โ”‚ โ”‚ โ€ข Logging to file (stdout/stderr) โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“ Installation Location: โ”‚ โ”‚ โ€ข C:\inetpub\wwwroot\roa2web\backend\ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Direct Database Connection โ”‚ No SSH Tunnel Required โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ›๏ธ ORACLE DATABASE (Local/Network) โ”‚ โ”‚ Connection: Direct TCP/IP (localhost:1521 or network) โ”‚ โ”‚ Schema: CONTAFIN_ORACLE โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“‹ Same Tables/Views as Linux deployment โ”‚ โ”‚ ๐Ÿ”ง Same Stored Procedures โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ### Diferenศ›e รฎntre Linux ศ™i Windows Deployment | Aspect | Linux (Docker) | Windows (IIS) | |--------|----------------|---------------| | **Web Server** | Nginx (container) | IIS (native) | | **Backend Runtime** | Docker container | Windows Service (NSSM) | | **Database Access** | SSH Tunnel required | Direct connection | | **SSL/TLS** | Let's Encrypt (certbot) | IIS SSL certificates | | **Service Management** | Docker Compose | PowerShell + Services.msc | | **Deployment** | `./scripts/deploy.sh` | `Deploy-ROA2WEB.ps1` | | **Logs** | Docker logs | Windows Event Log + Files | | **Auto-start** | Docker restart policies | Windows Service auto-start | ### Structura Fiศ™iere Windows Deployment ``` C:\inetpub\wwwroot\roa2web\ โ”œโ”€โ”€ backend\ # FastAPI application โ”‚ โ”œโ”€โ”€ app\ โ”‚ โ”‚ โ”œโ”€โ”€ main.py โ”‚ โ”‚ โ”œโ”€โ”€ routers\ โ”‚ โ”‚ โ”œโ”€โ”€ services\ โ”‚ โ”‚ โ””โ”€โ”€ models\ โ”‚ โ”œโ”€โ”€ shared\ # Shared components โ”‚ โ”‚ โ”œโ”€โ”€ auth\ โ”‚ โ”‚ โ”œโ”€โ”€ database\ โ”‚ โ”‚ โ””โ”€โ”€ utils\ โ”‚ โ”œโ”€โ”€ requirements.txt โ”‚ โ”œโ”€โ”€ .env # Production config โ”‚ โ””โ”€โ”€ logs\ โ”‚ โ”œโ”€โ”€ frontend\ # Vue.js build output โ”‚ โ”œโ”€โ”€ index.html โ”‚ โ”œโ”€โ”€ assets\ โ”‚ โ”œโ”€โ”€ web.config # IIS configuration โ”‚ โ””โ”€โ”€ ... โ”‚ โ”œโ”€โ”€ logs\ # Service logs โ”‚ โ”œโ”€โ”€ backend-stdout.log โ”‚ โ””โ”€โ”€ backend-stderr.log โ”‚ โ””โ”€โ”€ backups\ # Deployment backups โ””โ”€โ”€ backup-YYYYMMDD-HHMMSS\ ``` ### Comenzi Windows Deployment ```powershell # Instalare iniศ›ialฤƒ .\Install-ROA2WEB.ps1 # Deployment actualizฤƒri .\Deploy-ROA2WEB.ps1 -SourcePath "C:\path\to\deploy-package" # Management serviciu .\Start-ROA2WEB.ps1 .\Stop-ROA2WEB.ps1 .\Restart-ROA2WEB.ps1 # Verificare status Get-Service ROA2WEB-Backend Get-Website ROA2WEB # Logs Get-Content C:\inetpub\wwwroot\roa2web\logs\backend-stdout.log -Tail 50 -Wait ``` Pentru detalii complete despre deployment pe Windows, consultaศ›i: - `/deployment/windows/docs/WINDOWS_DEPLOYMENT.md` - `/deployment/windows/README.md` ## โš™๏ธ **COMENZI DE DEZVOLTARE** ### Start SSH Tunnel ```bash cd /mnt/d/PROIECTE/roa-flask/roa2web ./ssh_tunnel.sh start ``` ### Backend Development ```bash cd reports-app/backend/ uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 ``` ### Frontend Development ```bash cd reports-app/frontend/ npm install npm run dev ``` ### Testing ```bash cd shared/ python -m pytest -v ``` ## ๐Ÿ›ก๏ธ **SECURITATE** ### Middleware de Autentificare - **JWT Token Validation** - Verificare automatฤƒ pentru toate endpoint-urile protejate - **Rate Limiting** - Protecศ›ie รฎmpotriva atacurilor brute force - **Security Headers** - X-Content-Type-Options, X-Frame-Options, X-XSS-Protection - **CORS Protection** - Configurare restrictivฤƒ pentru frontend-uri autorizate ### Baza de Date - **SSH Tunnel** - Conexiune criptatฤƒ la Oracle - **Schema Dedicatฤƒ** - CONTAFIN_ORACLE pentru izolare - **Stored Procedures** - Validare securizatฤƒ de utilizatori --- *Aceastฤƒ schemฤƒ oferฤƒ o vedere de ansamblu asupra arhitecturii ROA2WEB ศ™i poate fi utilizatฤƒ pentru documentare, onboarding ศ™i planificarea dezvoltฤƒrii viitoare.*