7.9 KiB
P0 PRE-FLIGHT CHECK: Unified Workspace Impact Analysis
Dátum: 2026-06-18 Auditor: Architect Mode Cél: A 28-as User (tester_pro@profibot.hu) privát járműveinek organization_id auditja, mielőtt bevezetjük az új "Unified Workspace" szabályt (ahol a hozzáférés szigorúan organization_id + OrganizationMember alapú).
1. 🔍 SZERVEZETI STRUKTÚRA (Organization Audit)
1.1 User 28 → Person 29
| Mező | Érték |
|---|---|
| User ID | 28 |
| tester_pro@profibot.hu | |
| Person ID | 29 |
| Név | Tester Profibot |
1.2 Privát Garázs (individual type)
A 28-as User saját "Privát Garázsa":
| Mező | Érték |
|---|---|
| Organization ID | 21 |
| Név | Private_28 |
| Típus | individual |
| Tulajdonos (owner_id) | 29 (Person) |
| folder_slug | priv_28 |
1.3 A Person 29 által birtokolt összes szervezet
| Org ID | Név | Típus | Van tagja? |
|---|---|---|---|
| 15 | Profibot Test Fleet | fleet_owner |
❌ NINCS |
| 21 | Private_28 | individual |
❌ NINCS |
| 26 | Test Kft. Alpha | fleet_owner |
❌ NINCS |
| 27 | Test Kft. Beta | fleet_owner |
❌ NINCS |
| 38 | Admin Széfe | individual |
❌ NINCS |
1.4 Ahol Person 29 TAG (OrganizationMember)
| Org ID | Név | Típus | Szerep |
|---|---|---|---|
| 63 | Aszalós Motorszervíz | service_provider |
ADMIN |
⚠️ KRITIKUS: Person 29 NEM tagja a saját privát garázsának (org 21)! A fleet.organization_members táblában egyetlen rekord sincs a Private_28-hoz.
2. 🚗 JÁRMŰVEK ÁLLAPOTA (Assets Audit)
2.1 Person 29 tulajdonában lévő összes jármű
| # | ID (UUID) | Rendszám | Márka | Modell | current_org_id | owner_org_id | Státusz |
|---|---|---|---|---|---|---|---|
| 1 | deb42aea... | QWE123 | APRILIA | af1 | 44 | 44 | active/draft |
| 2 | da49269e... | TTRFGHZT | BAYLINER | 1750 CAPRY BOWRIDER | 44 | 44 | active/draft |
| 3 | 72b0a0cf... | UOK795 | Honda | CB1000R | NULL ⚠️ | 34 | active/verified |
| 4 | 0b97a975... | PKT215 | Mazda | 2 | NULL ⚠️ | 34 | active/draft |
| 5 | 09700990... | AIML519 | Skoda | Citigo e | NULL ⚠️ | 34 | active/enriched |
| 6 | 104d6753... | ABC-123 | Toyota | Corolla | 34 | 34 | active/verified |
2.2 Érintett szervezetek részletei
| Org ID | Név | Típus | Tulajdonos |
|---|---|---|---|
| 21 | Private_28 | individual |
Person 29 ✅ |
| 34 | Swagger-Test Kft. | business |
Nincs tulajdonos (owner_id = NULL) |
| 44 | Profibot Kft. | business |
User 86 |
3. 📊 HATÁSELEMZÉS (Impact Analysis)
3.1 Unified Workspace forgatókönyv
Ha bevezetjük a szabályt: "Egy User csak olyan járművet érhet el, ahol a current_organization_id egyezik egy olyan Organization-nel, aminek a User tagja (OrganizationMember)":
3.1.1 NULL current_organization_id-val rendelkező járművek
3 jármű (Honda CB1000R, Mazda 2, Skoda Citigo e) jelenleg NULL current_organization_id-val rendelkezik. Ezek:
- Nincsenek egyetlen szervezethez sem rendelve jelenleg
- Csak a
owner_person_id = 29alapján lennének elérhetők - Az új szabály szerint KI lennének ZÁRVA (orphaned), mert nincs organization contextusuk
3.1.2 Más szervezethez rendelt járművek
3 jármű (Toyota Corolla → org 34, Aprilia + Bayliner → org 44) olyan szervezetekhez van rendelve, amelyeknek Person 29 NEM tagja:
- Toyota Corolla (
current_org = 34= Swagger-Test Kft.) → KI VAN ZÁRVA (Person 29 nem tag) - APRILIA (
current_org = 44= Profibot Kft.) → KI VAN ZÁRVA (Person 29 nem tag) - BAYLINER (
current_org = 44= Profibot Kft.) → KI VAN ZÁRVA (Person 29 nem tag)
3.2 Összegzés
| Kategória | Darab | Járművek | Sorsa új szabály alatt |
|---|---|---|---|
| NULL current_org_id | 3 | Honda, Mazda, Skoda | ❌ ORPHANED |
| Idegen org (nincs tagság) | 3 | Toyota (org 34), Aprilia+Bayliner (org 44) | ❌ ORPHANED |
| Saját privát garázsban (org 21) | 0 | — | ✅ OK |
| ÖSSZESEN | 6/6 | MIND | ❌ 100%-OS ORPHANED |
4. 💾 ELŐKÉSZÍTETT SQL JAVÍTÁS (NE FUTTASD KI - CSAK TERVEZÉS)
4.1 Első lépés: Person 29 felvétele a Private_28 (org 21) tagjai közé
INSERT INTO fleet.organization_members (organization_id, user_id, person_id, role, is_permanent, is_verified, status)
VALUES (21, 28, 29, 'OWNER', true, true, 'active');
VAGY ha a user_id nem elvárás (person_id alapú):
INSERT INTO fleet.organization_members (organization_id, person_id, role, is_permanent, is_verified, status)
VALUES (21, 29, 'OWNER', true, true, 'active');
4.2 Második lépés: NULL current_organization_id javítása
UPDATE vehicle.assets
SET current_organization_id = 21
WHERE owner_person_id = 29 AND current_organization_id IS NULL;
Ez a Honda CB1000R (UOK795), Mazda 2 (PKT215) és Skoda Citigo e (AIML519) járműveket beköti a Privát Garázsba.
4.3 Harmadik lépés: Üzleti döntés szükséges
A következő járművekhez üzleti döntés kell:
-
Toyota Corolla (ABC-123) -
current_org = 34, owner_org = 34- Opció A: Áttenni a Private_28-ba (org 21)
- Opció B: Felvenni Person 29-et a Swagger-Test Kft. (org 34) tagjai közé
- Opció C: Megtartani a jelenlegi állapotot és kivételt képezni az új szabály alól
-
APRILIA af1 (QWE123) + BAYLINER (TTRFGHZT) -
current_org = 44, owner_org = 44- Opció A: Áttenni a Private_28-ba (org 21)
- Opció B: Felvenni Person 29-et a Profibot Kft. (org 44) tagjai közé (de User 86 a tulajdonos!)
- Opció C: Megtartani a jelenlegi állapotot
4.4 Teljes körű SQL javítás (ha az összes járművet a privát garázsba tennénk)
-- 1. Person 29 taggá tétele a Private_28-ban
INSERT INTO fleet.organization_members (organization_id, user_id, person_id, role, is_permanent, is_verified, status)
VALUES (21, 28, 29, 'OWNER', true, true, 'active');
-- 2. Összes jármű áthelyezése a Private_28-ba
UPDATE vehicle.assets
SET current_organization_id = 21
WHERE owner_person_id = 29;
5. ⚠️ KIEGÉSZÍTŐ MEGJEGYZÉSEK
5.1 User 28 soft-deleted állapota
A korábbi audit (docs/db_schema_ownership_audit_2026-06-18.md) feltárta, hogy User 28 soft-deletelve van (is_deleted = true, deleted_at = 2026-06-14). Ez azt jelenti:
- Jelenleg NEM tud bejelentkezni
- Még az adatjavítás után sem fér hozzá a járművekhez, amíg a fiókja nincs visszaállítva
5.2 Tervezési ajánlás
Az új "Unified Workspace" szabály bevezetése ELŐTT kötelező:
- Adatjavítás: A NULL
current_organization_id-val rendelkező járművek bekötése - Tagság rögzítése: Minden
individualtípusú org tulajdonosának automatikus OWNER taggá tétele - Üzleti járművek felülvizsgálata: Döntés a org 34-be és 44-be sorolt járművekről
- User 28 restore: A soft-delete feloldása a KYC/restore folyamaton keresztül
- Átmeneti időszak: Az
owner_person_idalapú hozzáférés megtartása fallback-ként, amíg a fenti pontok nem teljesülnek
6. 🔮 ARCHITECT AJÁNLÁS
Javaslat: NE vezessük be a "pure Unified Workspace"-t (kizárólag org + membership alapú hozzáférés), amíg:
- Az összes
individualorg-nak nincs automatikusan létrehozott OWNER OrganizationMember rekordja - Az összes meglévő jármű
current_organization_idmezője ki van töltve - A soft-deletelt userek vissza vannak állítva vagy tisztázva van a státuszuk
Ajánlott átmeneti megoldás: Tartsd meg az owner_person_id == user.person_id ellenőrzést fallback-ként az org-based check mellett, amíg a fenti adatjavítások meg nem történnek.