Files
service-finder/docs/p0_unified_workspace_impact_analysis_2026-06-18.md

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
Email 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 = 29 alapjá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:

  1. 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
  2. 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ő:

  1. Adatjavítás: A NULL current_organization_id-val rendelkező járművek bekötése
  2. Tagság rögzítése: Minden individual típusú org tulajdonosának automatikus OWNER taggá tétele
  3. Üzleti járművek felülvizsgálata: Döntés a org 34-be és 44-be sorolt járművekről
  4. User 28 restore: A soft-delete feloldása a KYC/restore folyamaton keresztül
  5. Átmeneti időszak: Az owner_person_id alapú 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:

  1. Az összes individual org-nak nincs automatikusan létrehozott OWNER OrganizationMember rekordja
  2. Az összes meglévő jármű current_organization_id mezője ki van töltve
  3. 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.