Dolibarr TRIGGER_PREFIX: biztonsági öv az automatizmusokhoz

Egyetlen rossz szó, és a számla helyett a rendelés reagál: a Dolibarr eseményneveinek új biztonsági öve
A TRIGGER_PREFIX ellenőrzi, hogy egy üzleti objektum csak a saját eseménynevével indítson automatizmust. Apró technikai részletnek látszik, pedig integrációkat és adatfolyamatokat véd.
Egy ERP-ben a „számla létrejött”, a „rendelés jóváhagyva” vagy a „partner törölve” nem egyszerű naplóüzenet. Ezekre az eseményekre e-mail, webhook, készletmozgás, külső szinkron vagy egyedi munkafolyamat indulhat. Ha a fejlesztő rossz eseménynevet ad át, a hiba messzebb juthat, mint az a kódsor, ahol keletkezett.
A Dolibarr 23-as főverziójának kiadási jegyzete ezért egy első látásra szerény fejlesztői újdonságot emelt ki: megjelent a TRIGGER_PREFIX tulajdonság. Feladata, hogy üzleti objektumonként egyedi előtagot követeljen meg a triggerkódoknál, a mechanizmust az üzleti CRUD- és státuszesemények körében tartsa, és figyelmeztessen a hibás névre. A megoldás a 24-es ág forráskódjában is látható.
A PROPAL_VALIDATE eseménynél a PROPAL jelzi, hogy ajánlatról van szó. Ha ugyanaz az objektum véletlenül más üzleti objektum előtagjával próbál eseményt indítani, az ellenőrzés képes láthatóvá tenni az ellentmondást.
Miért több ez egyszerű elnevezési szabálynál?
A Dolibarr triggere egy üzleti esemény után futó fejlesztői bővítési pont. A hivatalos dokumentáció példája szerint ilyen esemény lehet egy partner létrehozása, egy számla validálása vagy egy objektum törlése. A triggerfájl megkapja az esemény kódját, az érintett objektumot és a műveletet végző felhasználót, majd az egyedi modul eldöntheti, hogy reagál-e rá.
Ez erős eszköz, mert a reakció az eredeti adatbázis-tranzakció része is lehet: a dokumentáció szerint a hibával visszatérő trigger a hívó művelet visszagörgetéséhez vezethet. Következésképp egy elgépelés nemcsak elmulasztott értesítést okozhat, hanem üzleti műveletet is megakaszthat. A név ellenőrzése ezért olyan, mint egy olcsó típusvizsgálat a futás határán.
Egy konkrét gondolatkísérlet
| Réteg | Hibás feltételezés | Lehetséges következmény |
|---|---|---|
| Üzleti objektum | Egy ajánlat osztály rendelés-előtagú eseményt ad át. | A hallgatók téves eseményre reagálnak, vagy az elvárt ajánlati automatizmus nem indul el. |
| Egyedi modul | A trigger minden hasonló szövegű eseményt azonosnak tekint. | Nem a megfelelő objektumot, státuszt vagy jogosultsági helyzetet dolgozza fel. |
| Integráció | A webhook neve önmagában elég bizonyíték az esemény eredetére. | A külső rendszer rossz rekordot vagy rossz munkafolyamatot frissít. |
| Üzemeltetés | A figyelmeztetés zaj, ezért nincs megfigyelve. | A kompatibilitási hiba csak ritka éles folyamatban válik láthatóvá. |
A TRIGGER_PREFIX nem tudja bizonyítani, hogy az automatizmus üzleti logikája helyes. Azt a szűkebb, de értékes kérdést ellenőrzi, hogy az esemény neve illik-e ahhoz az objektumtípushoz, amely kibocsátja.
Mit mutat a tényleges forráskód?
A 24.0 ág ajánlatosztályában a tulajdonság értéke PROPAL, a partnerosztályban pedig COMPANY. A közös triggerkezelő a meghívott eseménykódot és ezt az előtagot veti össze. Ez fontos részlet: nem egy külső modul által kitalált konvencióról, hanem a Dolibarr üzleti objektumaihoz kapcsolt, futás közben használható szerződésről van szó.
A megoldás bevezetése ugyanakkor migrációs feladatot is jelent. A projekt issue-listájában 2026 júliusában olyan hibajegyek is megjelentek, amelyek hiányzó TRIGGER_PREFIX-et jeleztek egy objektumnál. Ez nem azt bizonyítja, hogy a mechanizmus rossz; inkább azt, hogy egy keresztmetszeti védőkorlát bevezetésekor minden üzleti osztályt és öröklési ágat következetesen át kell nézni.
Főverzió-váltás után ne némítsuk el automatikusan. Előbb keressük meg, mely objektum mely eseményt hívta, és a telepített alaprendszerhez vagy egy egyedi modulhoz tartozik-e az eltérés.
Hatpontos audit egyedi modulokhoz
- Készítsünk eseményleltárt. Keressük meg a saját kódban a
call_trigger()hívásokat és a triggerfájlokban kezelt$actionértékeket. - A célverzió forrásából dolgozzunk. Ellenőrizzük az adott üzleti osztály tényleges
TRIGGER_PREFIXértékét; ne régi blogpéldából vagy emlékezetből nevezzük el az eseményt. - Válasszuk szét a kibocsátót és a hallgatót. A saját objektum által indított esemény és a standard Dolibarr-eseményre reagáló modul két külön felelősség.
- Teszteljük a sikert és a hibát. Bizonyítsuk, hogy a helyes esemény egyszer fut le, a hibás név látható jelzést ad, és az esetleges visszagörgetés nem hagy félkész külső műveletet.
- Tegyünk idempotenssé a külső hatást. Webhook, e-mail vagy külső API esetén ugyanazon üzleti esemény ismétlése ne hozzon létre duplikációt.
- Figyeljük a naplókat frissítés után. A ritkán használt törlés, klónozás vagy státuszváltás csak napokkal később fedheti fel az eltérést.
Trigger vagy hook?
A hivatalos fejlesztői dokumentáció világos határt húz. Trigger üzleti CRUD-eseményhez és az objektum elsődleges státuszának változásához való; más felületi vagy alkalmazásbeli beavatkozásnál hookot kell keresni. A TRIGGER_PREFIX éppen ezt a határt erősíti: az eseménynév ne váljon tetszőleges, mindent jelentő üzenetcsatornává.
A nagy tanulság nem az, hogy minden automatizmus biztonságos lett. Hanem az, hogy a Dolibarr egy korábban informális elnevezési szokást ellenőrizhető szerződéssé tett. Az ilyen kis védőkorlátok ritkán kerülnek a bemutatóvideók elejére, mégis ezek teszik kiszámíthatóbbá a sok modulból, integrációból és egyedi folyamatból álló ERP-t.
Források
- Dolibarr 23.0.0 – hivatalos kiadási jegyzet a TRIGGER_PREFIX bevezetéséről
- Dolibarr 24.0 forráskód – a közös triggerkezelő
- Dolibarr 24.0 forráskód – az ajánlat objektum PROPAL előtagja
- Dolibarr Wiki – Triggers system: működés, korlátok és tesztelés
- Dolibarr GitHub #39297 – hiányzó TRIGGER_PREFIX-ről szóló 2026-os hibajegy
Forrásállapot: 2026. szeptember 13. A konkrét előtagokat, eseményneveket és viselkedést mindig a telepített Dolibarr-verzió forrásában kell ellenőrizni; a cikk nem helyettesíti az adott egyedi modul kompatibilitási tesztjét.
Nézze meg, milyen Dolibarr-folyamat illeszkedhet a vállalkozásához, vagy küldje el röviden a saját helyzetét.
Ez a Dolibarr.hu szerkesztett, magyar nyelvű útmutatója.