This is an old revision of the document!
Modules - Notification [ntf]
Modul notifikací obsahuje zjednodušený mechanismus konfigurace notifikací. Přesněji ulehčuje práci administrátora v těchto ohledech:
- definovat události, na které má reagovat notifikace (například změny nad uživatelem),
- definovat pravidla, při kterých se má notifikace odeslat (například změna stavu uživatele),
- upravovat topic pro jednotlivé notifikace,
- jednoduše vypínat a zapínat jednotlivé konfigurace,
- definovat více druhů notifikací pro jednu událost a jedno pravidlo.
Inicializace modulu notifikací [idm-ntf] je zcela automatizovaná. Po správné instalaci modulu do IdM se provede prvotní konfigurace modulu a nastavení všech konfigurací bez potřeby zásahu administrátora.
Version
Version | Compatible with product | Notes |
---|---|---|
12.0.0 | 12.3.4 | First module implementation for 12.x.x IdM |
14.0.0 | 14.10.0 | First module implementation for 14.x.x IdM |
14.0.1 | 14.10.0 | Bug fixing |
"Compatible with the product" means that this is the recommended product version.
Supported notification types
Aktuálně modul notifikací podporuje notifikace pouze na následujících typech objektů/entit:
- Uživatelé (IdmIdentity).
- Provisioning operace (SysProvisioningOperation).
Pro každý podporovaný typ objektu vždy platí, že notifikace může reagovat na jakoukoliv změnu atributu pro daný objekt. Příklady:
- (IdmIdentity) při změně stavu uživatele,
- (IdmIdentity) při změně uživatelského jména uživatele,
- (SysProvisioningOperation) při propisu hodnoty description do systému,
- (SysProvisioningOperation) při propisu skupin do systému,
Lifecycle of sending notification
Notifikace jsou v aktuální verzi modulu striktně odesílané pouze při vyvolání změny objektu a to vždy pro každý objekt zvlášť. Pokud tedy například synchronizace/HR process změní stav uživatele z validního stavu (VALID) na stav odešel (LEFT) odešle se notifikace až v moment změny nikoliv dopředně.
Zároveň notifikace nejsou kumulované. Pro každou změnu se odešle jedna notifikace byť příjemce je stejný.
Příklad odeslání notifikace na změnu stavu
Následující příklad popisuje notifikaci na změnu atributu uživatele a notifikování například nadřízeného.
V číselníků notifikací máme odpovídající konfiguraci, která znamená, že při každé změně stavu uživatele ze stavu Validní na stav Vyňat z ev. počtu dojde k odeslání emailové notifikace nadřízenému daného uživatele.
- Z personálního systému přichází informace ohledně změnu stavu jediného úvazku (IdmIdentityContract) daného uživatele,
- změna úvazku znamená změnu stavu (STATE) úvazku z hodnoty NULL na hodnotu Vyňat z ev. počtu (EXCLUDED),
- personální process v IdM (HrContractExclusionProcess) automaticky přepočítá stav uživatele a vyhodnotí změnu atributu Stav (STATE) nad uživatelem (IdmIdentity),
- personální process vyhodnocuje změnu stavu (STATE) z hodnoty Validní (VALID) na stav Vyňat z ev. počtu (DISABLED) a zároveň k deaktivaci samotného uživatele (DISABLED) z hodnoty FALSE na TRUE,
- po úspěšném uložení uživatele s novým stavem dochází k odchycení této události modulem notifikací,
- modul notifikací pro tuto událost vyhodnocuje všechny platné pravidla a při jejich splnění odesílá dle konfigurace notifikaci.
Příklad odeslání notifikace na změnu atributů při provisioningu
Následující příklad popisuje notifikaci na změnu atributu na koncovém systému. Notifikace je například odeslána na uživatele s definovanou rolí.
V číselníků notifikací máme odpovídající konfiguraci, která znamená, že při každé změně hodnoty atributu Popis (description) na koncovém systému dojde k odeslání emailové notifikace na uživatele s přiřazenou rolí.
- Na koncovém systému IdM spravuje atribut description. Tento atribut je zároveň 1:1 namapován na standardní atribut uživatele Popis (description),
- v IdM dochází ke změně atributu Popis na uživateli,
- změna tohoto atributu vyvolá propis na koncový systém,
- modul notifikací zachytí úspěšně provedenou provisioning operaci a následně odesílá notifikaci.
Installation
This section describes the installation process of the Technical Accounts module, including its activation, required prerequisites, access rights configuration, and integration with target systems. It serves as a starting point for administrators when introducing the module into the IdM environment.
Configuration
Čísleník: Entity types [ntf-entity-type]
Tento číselník je automaticky vytvořen při startu aplikace na základě existence modulu idm-ntf.
V číselníku jsou obsaženy všechny objekty/entity, pro které je možné konfigurovat odesílání notifikací prostřednictvím modulu notifikací. Aktuálně jsou v modulu podporované následující objekty/entity:
- Uživatelé (IdmIdentity),
- Provisioning operace (SysProvisioningOperation).
Čísleník: Entity events [ntf-entity-event]
Tento číselník je automaticky vytvořen při startu aplikace na základě existence modulu idm-ntf.
V číselníku jsou obsaženy všechny typy událostí, které je možné kontrolovat/odchytávat v modulu notifikací. Aktuálně se jedná o následující typy událostí:
- Vytvoření (CREATE),
- Smazání (DELETE),
- Aktualizace (UPDATE).
Čísleník: Notification code list [ntf-notification]
Tento číselník je automaticky vytvořen při startu aplikace na základě existence modulu idm-ntf. Číselník obsahuje hlavní definici notifikací. Jedná se o jedinou konfigurační část modulu, kterou je možné z pohledu administrátora editovat/upravovat.
Každá číselníková hodnota obsahuje následující atributy:
- Entity type
- Určení pro jaký typ objektu/entitu se daná konfigurace notifikace bude odesílat.
- Event type
- Typ události, pro kterou se bude daná konfigurace vyhodnocovat.
- Form projection
- Formulářová projekce/Typ uživatele. Aktuálně se dá použít pouze pro objekt/entitu IdmIdentity. Omezuje pro jaký typ uživatele se bude konfigurace notifikace vyhodnocovat.
- System
- Definice systému - jedná se o omezení pouze pro definovaný systém. Aktuálně se dá použít pouze pro objekt/entitu SysProvisioningOperation.
- Rules
- Definice pravidel pro danou konfiguraci. Aktuálně je podporované pouze jedno pravidlo na jednu konfiguraci. Více o pravidlech viz samostatná sekce.
- Rules by script
- Definice pravidel pomocí skriptu. Místo výše uvedených pravidel lze nakonfigurovat podmínku dané konfigurace pomocí skriptu. Více o skriptu viz samostatná sekce.
- Topic
- Standardní konfigurace notifikace - kód skriptu na který se při splnění podmínek pošle notifikace.
- Level
- Standardní konfigurace notifikace - označení level určuje zda notifikace bude SUCCESS, WWARNING atd.
- Send to identity itself
- Konfigurace určuje zda se při splnění podmínek daná notifikace odešle na identitu samotnou.
- Send to manager
- Konfigurace určuje zda se při splnění podmínek daná notifikace odešle na nadřízeného daného uživatele.
- Send to identities
- Konfigurace určuje zda se při splnění podmínek daná notifikace odešle na zde uvedený vícehodnotový seznam identit z IdM.
- Send to roles
- Konfigurace určuje zda se při splnění podmínek daná notifikace odešle na zde uvedený vícehodnotový seznam rolí z IdM.
- Recipients by script
- Konfigurace určuje zda se při splnění podmínek daná notifikace odešle na seznam uživatelů vracených skriptem. Více viz samostatná sekce ohledně skriptů.
- Disable
- Určuje zda bude daná konfigurace vyhodnocena nebo nikoliv.
Rules
V následující sekci je popsán způsob vyhodnocování pravidel pomocí skriptu a pomocí pseudo syntaxe.
Rules
Uvedená pravidla mohou obsahovat následující části:
- Definice typu atributu.
- Kód atributu
- Oddělovač.
- Hodnota ze které je pravidlo vyhodnocováno.
- Změnový oddělovač.
- Hodnota na kterou je pravidlo vyhodnocováno.
V pravidlech je zároveň možné použít následující modifikátory:
- Wild card - "*",
- umožňuje definovat změnu z jakékoliv hodnoty, nebo změnu na jakoukoliv hodnotu.
- null,
- označení, že daná nebyla dříve vyplněna, nebo se daná hodnota smazala.
- Always - "!"
- Označení, že se daná notifikace odešle pokaždé bez ověřování změn.
- Změna - "CHANGED"
- Označení, že se daný atribut změnil. Nevyhodnocuje se z jaké hodnoty na jakou.
Příklady pravidel v praxy
Následující příklad ukazuje pravidlo, které se vyhodnocuje pro standardní atribut atribut s kódem myProjectEavCode a pouze při změně z hodnoty valueA na hodnotu valueB.