frontend 2026-06-10 bontva a 2 felület
This commit is contained in:
111
docs/nav_api_lookup_tax_analysis.md
Normal file
111
docs/nav_api_lookup_tax_analysis.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# 🔍 NAV API Tax Number Lookup - Hibaelemzés és Javítási Terv
|
||||
|
||||
**Dátum:** 2026-06-07
|
||||
**Gitea Issue-ek:** #224 (NAV API aláírás), #226 (Frontend CSS import)
|
||||
**Elemző:** Rendszer-Architect
|
||||
|
||||
---
|
||||
|
||||
## 1. Összefoglaló
|
||||
|
||||
Két független hibát azonosítottam:
|
||||
|
||||
1. **Frontend**: A Vite fejlesztői szerver nem tudja feloldani a `flag-icons/css/flag-icons.css` importot → `npm install` hiányzik
|
||||
2. **Backend (NAV API)**: A NAV Online Számla API v3 `queryTaxpayer` hívása `INVALID_REQUEST_SIGNATURE` hibát ad → valószínűleg érvénytelen `NAV_API_SIGN_KEY`
|
||||
|
||||
---
|
||||
|
||||
## 2. Frontend Hiba: flag-icons CSS import
|
||||
|
||||
### 2.1. Helyszín
|
||||
|
||||
- [`frontend/src/main.ts:13`](/opt/docker/dev/service_finder/frontend/src/main.ts) - `import 'flag-icons/css/flag-icons.css'`
|
||||
- [`frontend/package.json:14`](/opt/docker/dev/service_finder/frontend/package.json) - `"flag-icons": "^7.5.0"` függőség
|
||||
|
||||
### 2.2. Ok
|
||||
|
||||
A `flag-icons` npm csomag deklarálva van a `package.json`-ban, de **nincs telepítve** a `node_modules`-ban. Ez tipikusan akkor fordul elő, ha:
|
||||
- A függőséget kézzel adták hozzá a `package.json`-hoz, de `npm install` nem futott le
|
||||
- A `node_modules` mappa régi, és `npm install` vagy `npm update` szükséges
|
||||
|
||||
### 2.3. Javítás
|
||||
|
||||
```bash
|
||||
cd /opt/docker/dev/service_finder/frontend && npm install
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Backend Hiba: NAV API INVALID_REQUEST_SIGNATURE
|
||||
|
||||
### 3.1. Helyszín
|
||||
|
||||
- [`backend/app/services/nav_service.py`](/opt/docker/dev/service_finder/backend/app/services/nav_service.py) - Teljes NAV API integráció
|
||||
- [`backend/app/api/v1/endpoints/organizations.py:124`](/opt/docker/dev/service_finder/backend/app/api/v1/endpoints/organizations.py) - `/lookup-tax/{tax_number}` végpont
|
||||
- [`backend/app/core/config.py:130`](/opt/docker/dev/service_finder/backend/app/core/config.py) - NAV konfigurációs mezők
|
||||
- [`.env:90`](/opt/docker/dev/service_finder/.env) - NAV API hitelesítő adatok
|
||||
|
||||
### 3.2. A Hiba Lánca
|
||||
|
||||
1. Felhasználó meghívja: `GET /api/v1/organizations/lookup-tax/24742063`
|
||||
2. `NavService.query_taxpayer()` összeállítja a SOAP/XML kérést
|
||||
3. Kiszámolja az aláírást: `SHA3-512(requestId + timestamp + NAV_API_SIGN_KEY)`
|
||||
4. NAV API válasz: `HTTP 400` → `INVALID_REQUEST_SIGNATURE` ("Érvénytelen kérés aláírás")
|
||||
5. `query_taxpayer()` visszatér `None`-nal
|
||||
6. A végpont `HTTP 404`-et ad: "Cég nem található a NAV adatbázisában"
|
||||
|
||||
### 3.3. Tesztelt Aláírási Módszerek
|
||||
|
||||
| Módszer | Eredmény |
|
||||
|---------|----------|
|
||||
| SHA3-512(requestId + timestamp + signKey) | ❌ INVALID_REQUEST_SIGNATURE |
|
||||
| SHA3-512(requestId + timestamp + passwordHash) | ❌ INVALID_REQUEST_SIGNATURE |
|
||||
| SHA3-512(requestId + timestamp + exchangeKey) | ❌ INVALID_REQUEST_SIGNATURE |
|
||||
| HMAC-SHA3-512(signKey, requestId + timestamp) | ❌ INVALID_REQUEST_SIGNATURE |
|
||||
| SHA3-512(requestId + timestamp) (no key) | ❌ INVALID_REQUEST_SIGNATURE |
|
||||
|
||||
### 3.4. Következtetés
|
||||
|
||||
**Minden** aláírási módszer ugyanazt a hibát adja vissza, ami arra utal, hogy **nem a kódban lévő aláírás-számítás a hibás, hanem maguk a hitelesítő adatok érvénytelenek**.
|
||||
|
||||
Gyanús elemek:
|
||||
- `NAV_API_SIGN_KEY=02-b52b-3d9e7d638c695EPWNIUAEGHS` - a formátuma nem szabványos (nem UUID, nem base64)
|
||||
- `NAV_API_EXCHANGE_KEY=a5cf5EPWNIU9DP8O` - szintén rövid, nem szabványos
|
||||
|
||||
### 3.5. Javítási Terv
|
||||
|
||||
#### 1. lépés: Új NAV API kulcsok igénylése
|
||||
Látogass el a NAV Online Számla teszt portáljára:
|
||||
- https://onlineszamla.nav.gov.hu/
|
||||
- Regisztráció után generálj új `signKey` és `exchangeKey` párost
|
||||
|
||||
#### 2. lépés: Frissítsd a `.env` fájlt
|
||||
```env
|
||||
NAV_API_USER=<új felhasználónév>
|
||||
NAV_API_PASSWORD=<új jelszó>
|
||||
NAV_API_SIGN_KEY=<új signKey>
|
||||
NAV_API_EXCHANGE_KEY=<új exchangeKey>
|
||||
NAV_API_CALLER_TAX_NUMBER="48952046133"
|
||||
```
|
||||
|
||||
#### 3. lépés: Teszteld a kapcsolatot
|
||||
```bash
|
||||
docker exec sf_api python3 -c "
|
||||
from app.services.nav_service import NavService
|
||||
import asyncio
|
||||
result = asyncio.run(NavService.query_taxpayer('24742063'))
|
||||
print(result)
|
||||
"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Kapcsolódó Gitea Issue-ek
|
||||
|
||||
| ID | Cím | Státusz |
|
||||
|----|-----|---------|
|
||||
| #224 | 🔴 Hiba: NAV API aláírás (INVALID_REQUEST_SIGNATURE) | Nyitott |
|
||||
| #225 | 🔴 Hiba: Frontend - flag-icons CSS import | Nyitott (duplikátum?) |
|
||||
| #226 | Frontend: flag-icons CSS import hiba | Nyitott |
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user