Files
service-finder/docs/admin_system_epic.md
2026-03-22 11:02:05 +00:00

173 lines
8.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🏛️ Admin System Epic: v2.0 - Enterprise Admin & Dynamic Config
**Mérföldkő:** v2.0 - Enterprise Admin & Dynamic Config
**Cél:** A Service Finder adminisztrációs rétegének átfogó fejlesztése, amely lehetővé teszi a dinamikus konfigurációk kezelését, szerepköralapú hozzáférés-vezérlést (RBAC), felhasználói és tartalmi moderálást, valamint anomália detektálást a rendszer integritásának védelme érdekében.
**Prioritás:** Magas
**Becsült időtartam:** 4 hét (4 fázis)
**Felelős:** Core Team
**Státusz:** Tervezés
---
## 📋 Issue #1 (Phase 1): Hardcode Audit & Config Motor
**Cím:** Hardcode Audit & Config Motor
**Pontszám:** 50 XP
**Határidő:** 2026-04-04
**Scope:** Backend, Database
**Type:** Refactor, Infrastructure
### Leírás
A kódban található beégetett értékek (pl. 50 XP, limit értékek, API URL-ek) átvizsgálása és kiváltása dinamikus konfigurációs rendszerrel. Létrehozni egy `SystemParameter` táblát a `system` sémában, amely kulcs-érték párokat tárol, és egy `ConfigService` osztályt, amely ezeket az értékeket gyorsítótárazza és szolgáltatja az alkalmazás számára.
### 🔗 Függőségek (Dependencies)
- **Bemenet:** Meglévő kódban található hardcode értékek, PostgreSQL adatbázis
- **Kimenet:** Minden olyan modul, amely hardcode értékeket használ (pl. gamification, billing, robot kvóták)
### 📝 To-Do List
- [ ] **Hardcode Audit Script** írása, amely végigvizsgálja a `backend/` mappát és listázza a potenciális hardcode értékeket
- [ ] **`SystemParameter` tábla tervezése** (id, key, value, data_type, description, scope, is_encrypted, created_at, updated_at)
- [ ] **Alembic migráció** generálása a tábla létrehozásához
- [ ] **`ConfigService` osztály** megírása a következőkkel:
- [ ] `get(key, default=None)` metódus
- [ ] `set(key, value)` metódus (csak admin)
- [ ] Inmemory cache (TTL 5 perc)
- [ ] Async támogatás
- [ ] **Hardcode értékek cseréje** a `ConfigService`-re a következő modulokban:
- [ ] `gamification.py` (XP értékek, szintek)
- [ ] `billing_engine.py` (díjak, limitek)
- [ ] `dvla_service.py` (API kvóták)
- [ ] `notification_service.py` (sablonok)
- [ ] **Admin API végpont** `/api/v1/admin/config` a konfigurációk kezeléséhez (GET, PUT)
- [ ] **Tesztelés** unit és integrációs tesztekkel
---
## 📋 Issue #2 (Phase 2): RBAC & Admin Security Layer
**Cím:** RBAC & Admin Security Layer
**Pontszám:** 40 XP
**Határidő:** 2026-04-11
**Scope:** Backend, Security
**Type:** Feature, Security
### Leírás
Szerepkörök (Superadmin, Moderator, Support) bevezetése és az `/api/v1/admin` router jogosultság-kezelésének megvalósítása. Minden végpontnak ellenőriznie kell a felhasználó szerepkörét és scope-ját a `UserTrustProfile` alapján.
### 🔗 Függőségek (Dependencies)
- **Bemenet:** `identity.user` és `identity.user_trust_profile` táblák, JWT token
- **Kimenet:** Admin API végpontok, frontend admin felület
### 📝 To-Do List
- [ ] **Szerepkör enum** definiálása (`Superadmin`, `Moderator`, `Support`, `Auditor`)
- [ ] **`UserTrustProfile` tábla bővítése** `role` és `permissions` mezőkkel
- [ ] **Alembic migráció** a mezők hozzáadásához
- [ ] **`AdminSecurity` dependency** létrehozása a következőkkel:
- [ ] `require_role(role)` dekorátor
- [ ] `require_permission(permission)` dekorátor
- [ ] Scope ellenőrzés (organization, global)
- [ ] **`/api/v1/admin` router védelme** a dependency-vel
- [ ] **Permission matrix** dokumentálása (melyik szerepkör mit tehet)
- [ ] **Teszt felhasználók** létrehozása seed scripttel
- [ ] **Integrációs tesztek** a szerepkörökhöz
---
## 📋 Issue #3 (Phase 3): Core Admin API Végpontok
**Cím:** Core Admin API Végpontok
**Pontszám:** 60 XP
**Határidő:** 2026-04-18
**Scope:** Backend, API
**Type:** Feature
### Leírás
Felhasználók, KYC, járművek és szervizek kezelését végző admin API végpontok megvalósítása (listázás, szűrés, tiltás, jóváhagyás, törlés). Minden művelet naplózása az audit táblába.
### 🔗 Függőségek (Dependencies)
- **Bemenet:** Meglévő user, vehicle, service táblák, RBAC layer
- **Kimenet:** Admin dashboard, moderátori munkafolyamatok
### 📝 To-Do List
- [ ] **Felhasználó kezelés:**
- [ ] `GET /admin/users` listázás, szűrés (email, név, státusz)
- [ ] `PUT /admin/users/{user_id}/ban` tiltás (indoklással)
- [ ] `PUT /admin/users/{user_id}/approve` KYC jóváhagyás
- [ ] `DELETE /admin/users/{user_id}` soft delete
- [ ] **Jármű kezelés:**
- [ ] `GET /admin/vehicles` listázás, szűrés (rendszám, márka)
- [ ] `PUT /admin/vehicles/{vehicle_id}/flag` gyanúsként megjelölés
- [ ] `DELETE /admin/vehicles/{vehicle_id}` törlés (ha hamis adat)
- [ ] **Szerviz kezelés:**
- [ ] `GET /admin/services` listázás, szűrés (név, hely, minősítés)
- [ ] `PUT /admin/services/{service_id}/verify` kézi ellenőrzés
- [ ] `PUT /admin/services/{service_id}/suspend` felfüggesztés
- [ ] **KYC dokumentumok:**
- [ ] `GET /admin/kyc/pending` függőben lévő kérelmek
- [ ] `PUT /admin/kyc/{request_id}/review` áttekintés és döntés
- [ ] **Audit naplózás** minden admin művelethez (`audit.admin_actions` tábla)
- [ ] **Pagination és filter** támogatása minden listázó végponthoz
- [ ] **Swagger dokumentáció** frissítése
---
## 📋 Issue #4 (Phase 4): Anomália Detektálás (Anti-Cheat)
**Cím:** Anomália Detektálás (Anti-Cheat)
**Pontszám:** 30 XP
**Határidő:** 2026-04-25
**Scope:** Backend, Robot, Security
**Type:** Feature, Monitoring
### Leírás
Robot felügyelő (Cron/Background task) létrehozása, amely figyeli a gyanús tömeges validációkat, helyadatokat és egyéb potenciális csalási kísérleteket. Riasztás generálása és automatikus intézkedések (pl. ideiglenes letiltás).
### 🔗 Függőségek (Dependencies)
- **Bemenet:** Audit naplók, vehicle validations, user actions
- **Kimenet:** Riasztások, automatikus blokkolások, admin értesítések
### 📝 To-Do List
- [ ] **Anomália detektálási szabályok** definiálása:
- [ ] Túl sok validáció ugyanarról az IPről ( >100/óra)
- [ ] Tömeges helyadatmódosítás rövid időn belül
- [ ] Gyanús XP farmolás (több account ugyanarról az eszközről)
- [ ] Hamis járműadatok ismételt feltöltése
- [ ] **`AnomalyDetector` service** létrehozása:
- [ ] Szabályok futtatása időzített ciklusban (pl. 10 percenként)
- [ ] Gyanús események rögzítése `audit.suspicious_events` táblába
- [ ] Riasztás generálás (email, Slack, inapp notification)
- [ ] **Automatikus intézkedések:**
- [ ] IP ideiglenes blokkolása (1 óra)
- [ ] Felhasználói account letiltása (manual review required)
- [ ] Validációk visszavonása
- [ ] **Admin dashboard widget** a gyanús tevékenységek megjelenítéséhez
- [ ] **Tesztadatok generálása** és detektálás validálása
- [ ] **Külső integráció** (pl. Fail2ban, Cloudflare) tervezése
---
## 🗺️ Roadmap & Kapcsolódó Feladatok
1. **v2.1 Admin Dashboard UI** (Frontend epic) a fenti API-k felhasználásával
2. **v2.2 Realtime Notification System** WebSocketalapú értesítések adminoknak
3. **v2.3 Advanced Analytics for Admins** jelentéskészítő, exportálás
## 📊 Metrikák és Sikerfeltételek
- **Hardcode redukció:** 90%os csökkenés a kódban található magic numberek számában
- **RBAC teljes lefedettség:** Minden admin végpont védett szerepköralapú ellenőrzéssel
- **Anomália detektálás pontosság:** Legalább 95%os recall a csalási kísérleteknél
- **Válaszidő:** Admin API végpontok átlagos válaszideje < 200 ms
## 👥 Felelősségek
- **Backend Lead:** Phase 1 & 2
- **Security Engineer:** Phase 2 & 4
- **API Developer:** Phase 3
- **QA Engineer:** Tesztelés minden fázisban
---
*Dokumentum frissítve: 20260321*
*Verzió: 1.0*