469 lines
10 KiB
Plaintext
Executable File
469 lines
10 KiB
Plaintext
Executable File
2️⃣ TELJES FEJLESZTÉSI JELENTÉS (2026-01-31 állapot)
|
||
🔹 Projekt állapot: PRE-BETA / ARCHITEKTÚRA STABILIZÁLÁS
|
||
2.1. INFRASTRUKTÚRA – ÁLLAPOT
|
||
✅ Docker alapú architektúra
|
||
|
||
Konténerek:
|
||
|
||
service_finder_api – FastAPI backend
|
||
|
||
postgres-db – PostgreSQL
|
||
|
||
redis – cache / session / későbbi rate limit
|
||
|
||
minio – objektumtár
|
||
|
||
nginx-proxy-manager – későbbi élesítéshez
|
||
|
||
pgadmin – DB admin
|
||
|
||
✔️ Konténerhálózat rendben
|
||
✔️ Környezeti változók Dockerből érkeznek
|
||
✔️ App újraépítés sikeres
|
||
|
||
2.2. KÖRNYEZETI VÁLTOZÓK (.env) – RENDBE TÉVE
|
||
✅ Amit helyre tettünk
|
||
|
||
SECRET_KEY csak 1× szerepel
|
||
|
||
ALGORITHM csak 1×
|
||
|
||
DB paraméterek egységesítve
|
||
|
||
SendGrid + SMTP fallback elkészítve
|
||
|
||
App-szintű DB user (service_finder_app) elkülönítve
|
||
|
||
Superadmin (kincses) megmaradt
|
||
|
||
✔️ Ez már éles kompatibilis struktúra
|
||
|
||
2.3. ADATBÁZIS JOGOSULTSÁGOK – KÉSZ
|
||
✅ service_finder_app
|
||
|
||
LOGIN = true
|
||
|
||
USAGE schema data
|
||
|
||
SELECT / INSERT / UPDATE / DELETE minden táblán
|
||
|
||
USAGE / SELECT / UPDATE sequence-eken
|
||
|
||
ALTER DEFAULT PRIVILEGES beállítva
|
||
|
||
👉 Ez nagyon jó minőségű, biztonságos megoldás
|
||
👉 Superadmin nem zárható ki a DB-ből
|
||
|
||
2.4. AUTH & SECURITY – NAGY ELŐRELÉPÉS
|
||
✅ Elkészült
|
||
|
||
JWT alapú auth (HS256)
|
||
|
||
Központi password policy (settings)
|
||
|
||
Tokenek hash-elve tárolva
|
||
|
||
Email verify / password reset logika
|
||
|
||
Anti-enumeration (forgot password mindig azonos válasz)
|
||
|
||
Token TTL kezelve
|
||
|
||
SendGrid API elsődleges, SMTP fallback
|
||
|
||
❗ Tudatos döntés
|
||
|
||
OAuth2PasswordRequestForm marad
|
||
|
||
JWT payload minimalista (sub, is_admin)
|
||
|
||
Stateless auth (később Redis session bővíthető)
|
||
|
||
2.5. TOKEN KEZELÉS – ÁTALAKÍTÁS FOLYAMATBAN
|
||
✅ Amit tisztáztunk
|
||
|
||
Nem törlünk tokeneket automatikusan
|
||
|
||
Soft-delete elv
|
||
|
||
Token:
|
||
|
||
expires_at
|
||
|
||
is_used
|
||
|
||
auditálható
|
||
|
||
❌ Ami még nincs véglegesítve
|
||
|
||
Token archíválás
|
||
|
||
Admin UI kezelés
|
||
|
||
Több kommunikációs csatorna (Telegram, WhatsApp stb.)
|
||
|
||
2.6. PERSON ↔ USER ↔ COMPANY MODELL – STRATÉGIA KÉSZ
|
||
✅ DÖNTÉS MEGSZÜLETETT
|
||
|
||
Person = valódi személy életút
|
||
|
||
User = technikai belépési identitás
|
||
|
||
Company = jogi / üzleti entitás
|
||
|
||
Soft delete mindenhol
|
||
|
||
Új regisztráció:
|
||
|
||
új user
|
||
|
||
ugyanahhoz a person-höz kapcsolható
|
||
|
||
Rossz értékelés nem tűnik el
|
||
|
||
❌ Ami még hátra van
|
||
|
||
persons tábla létrehozása
|
||
|
||
users.person_id
|
||
|
||
companies.owner_person_id
|
||
|
||
Backfill meglévő adatokra
|
||
|
||
Alembic vagy dokumentált SQL migráció
|
||
|
||
⚠️ Itt megálltunk technikailag, de a logika teljesen tiszta
|
||
|
||
2.7. REGISZTRÁCIÓS SZINTEK – LOGIKA KÉSZ
|
||
Tervezett szintek
|
||
|
||
Felhasználók
|
||
|
||
Free
|
||
|
||
Premium
|
||
|
||
Premium+
|
||
|
||
Cégek
|
||
|
||
Free
|
||
|
||
VIP
|
||
|
||
VIP+
|
||
|
||
Elv
|
||
|
||
Free: minimális adat
|
||
|
||
Upgrade → kötelező validáció
|
||
|
||
KYC-szerű ellenőrzés később
|
||
|
||
❌ Implementáció még nincs
|
||
✔️ Architektúra támogatja
|
||
|
||
2.8. MIGRÁCIÓ – JELENLEGI ÁLLAPOT
|
||
|
||
Alembic mappa létezik
|
||
|
||
Automatikus migráció NINCS
|
||
|
||
Kézi SQL futtatás közben:
|
||
|
||
ADD CONSTRAINT IF NOT EXISTS → Postgres nem támogatja
|
||
|
||
DO $$ → pgAdmin / psql verziófüggő hiba
|
||
|
||
👉 Holnap ezt egy PG-kompatibilis, biztos SQL-re javítjuk
|
||
|
||
3️⃣ MI KÉSZ, MI VAN HÁTRA (CHECKLIST)
|
||
✅ ELKÉSZÜLT
|
||
|
||
Docker architektúra
|
||
|
||
.env rendbetéve
|
||
|
||
DB role & privilege modell
|
||
|
||
Auth v2 stabil
|
||
|
||
Email rendszer (SendGrid + fallback)
|
||
|
||
Token policy elvi döntések
|
||
|
||
Person/User/Company koncepció
|
||
|
||
Soft delete stratégia
|
||
|
||
🔧 HÁTRAVAN (KÖVETKEZŐ NAPOK)
|
||
|
||
Persons + owner_person SQL migráció (javított verzió)
|
||
|
||
Backfill script (user → person)
|
||
|
||
Auth.py frissítés person logikával
|
||
|
||
Subscription tier kezelés backend oldalon
|
||
|
||
Rate limit / brute force védelem (Redis)
|
||
|
||
Audit & security logging
|
||
|
||
Alembic stratégia véglegesítése
|
||
|
||
Admin kontrollpontok előkészítése
|
||
|
||
ZÁRÁS
|
||
|
||
👉 Nagyon jó állapotban van a projekt.
|
||
👉 Amit ma csináltunk, az alapozás, nem látszik, de kritikus.
|
||
👉 Holnap strukturáltan, tisztán tudjuk folytatni, nincs adósság.
|
||
|
||
Ha szeretnéd, holnap a következő lépést én indítom egy “1️⃣ lépés – persons migráció (javított)” tervvel, és onnan megyünk tovább.
|
||
|
||
____________________________________________________________________
|
||
Idővonal (2026-01-30) – FRISSÍTETT
|
||
|
||
(nap közben) Konténerek futnak, erőforrás stabil.
|
||
|
||
~17:09 körül API route tesztek, /openapi.json 404, /api/v2/openapi.json OK.
|
||
|
||
(később) Több auth teszt:
|
||
|
||
register egyes emaillel 400, info@profibot.hu 200
|
||
|
||
login 200
|
||
|
||
forgot-password 404 (POST-tal)
|
||
|
||
users/me 404 (GET)
|
||
|
||
(később) DB stat lekérés: seed adatok igazolva (7k fuel station + 7k provider)
|
||
|
||
(később) Alembic konténerben OK (current=head)
|
||
|
||
(később) Frontend forrásban hardcoded API URL-ek és V1 route hívások azonosítva
|
||
|
||
Idővonal (2026-01-30)
|
||
|
||
Ahol nincs pontos timestamp, ott a kimenetből és a file-mtime-okból következtetek (percre pontos rekonstrukciót majd log fájlokból lehet).
|
||
|
||
~Jan 29 (kb. 21:00–22:00)
|
||
A service_finder compose stack elindul (konténerek “20 hours ago / 17 hours ago” jelleg).
|
||
|
||
2026-01-30 17:09 (curl header alapján, GMT-ben 17:09:57, HU időben +1)
|
||
API smoke test:
|
||
|
||
/openapi.json 404
|
||
|
||
/docs 200
|
||
|
||
/ 200 (status online)
|
||
|
||
2026-01-30 ~17:58
|
||
api_spec.json létrejön (de 404 tartalommal, 22 byte)
|
||
|
||
2026-01-30 (nap közben / este)
|
||
api_spec_v2.json mentve /api/v2/openapi.json-ról (12600 byte), route-ok ellenőrizve jq-val
|
||
|
||
2026-01-30
|
||
DB elérésnél kiderül: postgres role nincs; helyes admin user: kincses
|
||
|
||
2026-01-30
|
||
Backend routerek és frontend view-k feltérképezése; Alembic CLI hiány és MinIO access denied rögzítve
|
||
|
||
|
||
IDŐVONAL — 2026-01-30 (frissítve)
|
||
|
||
17:09:57 — /openapi.json 404, /docs 200, root / 200 online/version
|
||
|
||
17:58 — api_spec.json (hibás endpoint miatt 404 tartalom) létrejön
|
||
|
||
később — fájlrendszer snapshot (ls/find/du, logs üres)
|
||
|
||
később — compose render + docker compose ps + last200 log mentések
|
||
|
||
később — psql -U postgres → “role postgres does not exist”
|
||
|
||
most — /api/v2/openapi.json mentés sikeres → api_spec_v2.json 12 600 byte
|
||
|
||
most — endpoint-lista kinyerve (v1 + v2 vegyes)
|
||
|
||
IDŐVONAL — 2026-01-30 (konkrét időbélyegekkel, ahol van)
|
||
|
||
17:58 — api_spec.json létrejön/írás (api_spec.json timestamp)
|
||
|
||
17:09:57 — API ellenőrzések (headerben):
|
||
|
||
/openapi.json → 404
|
||
|
||
/docs → 200, Swagger UI
|
||
|
||
/ → 200, status json
|
||
|
||
~18:xx — fájlrendszer snapshot (ls, find, du, logs)
|
||
|
||
~18:xx — compose render + docker compose ps, log exportok
|
||
|
||
~18:xx — psql -U postgres kísérlet → role nincs
|
||
|
||
IDŐVONAL — 2026-01-30
|
||
|
||
Időpontok: a parancsokhoz konkrét óra:perc nem volt rögzítve a másolatban, ezért sorrendi idővonalat adok (ez stabil, később időbélyeggel pontosítható).
|
||
|
||
Docker futó konténerek ellenőrzése (docker ps)
|
||
|
||
Compose projektek listázása (docker compose ls)
|
||
|
||
Compose szolgáltatások állapotának listázása (docker compose ps)
|
||
|
||
OpenAPI export kísérlet (curl .../openapi.json > api_spec.json) → 22 byte-os eredmény, anomália
|
||
|
||
RENDSZERFELTÁRÁS — mi kész, mi nincs kész (jelen bizonyítékok alapján)
|
||
Ami biztosan kész / működik
|
||
|
||
Alaprendszer Compose-ban fut: service_finder stack “running(9)”.
|
||
|
||
Frontend él: port 3000 publikusan kint.
|
||
|
||
API él: port 8000 publikusan kint.
|
||
|
||
Postgres él és healthy: postgres:15, publikus 5432.
|
||
|
||
Redis él.
|
||
|
||
MinIO él.
|
||
|
||
Admin eszközök élnek: pgAdmin (5050), NPM (80/81/443), Dozzle (8888), code-server (8443).
|
||
|
||
Létezik lokális projekt struktúra és volume-ok: /opt/service_finder/... alatt backend, frontend, logs, migrations, postgres_data, redis data, proxy-manager adatok.
|
||
|
||
filesystem_map
|
||
|
||
Ami valószínűleg nincs kész / hibás / tisztázandó
|
||
|
||
OpenAPI endpoint: a mentett fájlméret alapján nem jó választ ad az /openapi.json (vagy nem ott van, vagy proxy/route gond).
|
||
|
||
Biztonsági hardening: Postgres jelenleg 0.0.0.0:5432-n lóg (ez később sürgős).
|
||
|
||
Migrációs konzisztencia: van migrations struktúra a fájlrendszerben (több helyen is), de nem tudjuk, hogy DB-séma ténylegesen “head”-en van-e.
|
||
|
||
filesystem_map
|
||
|
||
FÁJLRENDSZER-HELYZETKÉP (amit már látunk)
|
||
|
||
A feltöltött map alapján a fontos csomópontok:
|
||
|
||
Projekt gyökér: /opt/service_finder
|
||
|
||
filesystem_map
|
||
|
||
Backend kód: /opt/service_finder/backend (+ app/, models/, auth/, schemas/, templates/, migrations/versions)
|
||
|
||
filesystem_map
|
||
|
||
Frontend kód: /opt/service_finder/frontend (+ src/views/admin, router, stores, services, components, public, node_modules)
|
||
|
||
filesystem_map
|
||
|
||
Log könyvtár: /opt/service_finder/logs
|
||
|
||
filesystem_map
|
||
|
||
Postgres adatok: /opt/service_finder/postgres_data/... (és van egy /opt/service_finder/postgres/data/... jellegű ág is)
|
||
|
||
filesystem_map
|
||
|
||
Redis data: /opt/service_finder/redis/data/...
|
||
|
||
filesystem_map
|
||
|
||
NPM/Proxy manager adatok + LE: /opt/service_finder/proxy-manager/...
|
||
|
||
filesystem_map
|
||
|
||
Megjegyzés: a map alapján mintha két postgres adatútvonal is jelen lenne: postgres/data és postgres_data. Ezt tisztázni kell, nehogy két külön volume/útvonal keveredjen (backup, restore, space, stb.).
|
||
|
||
filesystem_map
|
||
|
||
ADATBÁZIS-HELYZETKÉP (a feltöltött táblalistád alapján)
|
||
|
||
A feltöltött tablak_2026.01.30_0.csv alapján a data sémában 54 tábla van. (Ezt használom alapnak a DB audit lépések priorizálásához.)
|
||
|
||
A következő lépésben ebből fogok csinálni:
|
||
|
||
“core domain” csoportosítást (org/account/auth/vehicle/provider/request/evidence/stb.),
|
||
|
||
és egy “migráció és integráció” ellenőrző checklistet (táblák + FK + index + RLS jelek).
|
||
|
||
📜 PROJEKT IDŐVONAL — HIGH-LEVEL TIMELINE
|
||
Phase 1 — Core Foundations (2026-01-27)
|
||
|
||
DB core stabil
|
||
|
||
Config engine
|
||
|
||
Auth + Email
|
||
|
||
Enum & integrity fixes
|
||
|
||
Phase 2 — Fleet & Vehicle Core (2026-01-28)
|
||
|
||
Jármű hierarchia
|
||
|
||
VIN rendszer
|
||
|
||
Variant bővítés
|
||
|
||
Seed & backup
|
||
|
||
Phase 3 — Service Search & Matching (2026-01-28)
|
||
|
||
Provider geo-keresés
|
||
|
||
Ranking engine
|
||
|
||
Match API
|
||
|
||
Phase 4 — Infrastructure & Stability (2026-01-29)
|
||
|
||
Docker stack
|
||
|
||
Storage
|
||
|
||
Backup
|
||
|
||
Phase 5 — UI & MVP Presentation (2026-01-30)
|
||
|
||
Frontend
|
||
|
||
Dashboard
|
||
|
||
Expense UI
|
||
|
||
Phase 6 — Governance & Scaling (2026-01-30)
|
||
|
||
Log governance
|
||
|
||
Project memory
|
||
|
||
Audit readiness
|
||
|
||
✅ KÖVETKEZŐ FÁZIS: RENDSZER FELTÁRÁS (AUDIT)
|
||
|
||
Most átlépünk ebbe az üzemmódba:
|
||
|
||
🎯 Cél
|
||
|
||
Objektíven feltárni:
|
||
|
||
mi van KÉSZ
|
||
|
||
mi FÉLKÉSZ
|
||
|
||
mi HIÁNYZIK
|
||
|
||
mi TECHNIKAI ADÓSSÁG |