Table of Contents Developer Guide Overview Table of Contents Quickstart → Developer Guide Overview Devstack for building application and modules for CzechIdM. This document is a reference guide to devstack features. Table of Contents Quickstart Table of Contents Development environment Developing a module Quickstart - backend Quickstart - backend Quickstart - frontend Quickstart - frontend Eclipse Tomcat server fails to start Update project after pulling new version IDEA Atom Conventions Table of Contents Conventions of database design Conventions of database design Database scripts Testing Architecture Table of Contents Architecture - backend Application layers Backend functional requirements Non-functional requirements Architecture - frontend Application modules Application layers Modularity Backend Frontend Database design Database scripts JPA metamodel Primary keys (bigint vs. uuid) Database scripts (Flyway) API documentation (Swagger) Configuration Conventions Aggregator Tips Implementation details Events - processing of events Event lifecycle Supported events Event types Basic interfaces Basic classes Transactions Predefined processors order Processor configuration Implemented processors Example Filters Example filter Filter configuration Implemented filters Configuration Table of Contents Configuration - backend Configuration - backend Configuration - frontend Dynamic forms (eav) Adding the support of extended attributes for a new entity Agenda for working with forms Common forms Future development Long running tasks How to create a new LRT Planning LRT runs Audit LRT Long Running Task detail page Security Table of Contents Dictionary terms API authentication Authentication Authorization and JWT token Token expiration extension SSO Authentication Basic view Authenticators Password change & old password Authorization policies Base interfaces and classes Additional base permissions Base authorization evaluators Default policies Examples of configuration Employing policies for a new domain type - entity Changing user permissions Role request agenda REST interface Security Password policies Standard policies Policy <-> System link Password generation Validation Password policies, Signs Password policies, advanced password control Passwords General Future development Confidential storage Auditing IdmAuditService REST endpoints Front-end IdmAuditListener Temporary errors Endpoint for getting entities with their relations Logging Logging event and logging event exception notification templates Workflow Design of process Example of usage Expression Language User task Service task Script task Email Task Workflow localization Passage of workflow - solver decision Dynamic detail of task Custom task detail Localization Sending notifications System System Virtual system What is a virtual system? Notifications How does it work inside? Known limitations Connector configuration and attribute mapping Connector configuration System scheme Attribute mapping Attribute cache Linking a role Linking a role - attribute overload Remote connector server Why use remote connector server? How to set up a remote connector server? How does a remote connector server works in CzechIdM? Example of remote connector server setup IC (Identity Connector) module IC (Identity Connector) module Supported connectors ConnId connectors OpenICF connectors Most frequently connected systems Probable memory leak in Scripted SQL Connector Account Management Basic account management Script - Can be account created? Identity account management Example of account life cycle Name of account in IDM Account protection system Account protection system Synchronization Entities that support sync Situation Connector synchronization vs. my own filter Workflow Logs Specific synchronization options Events Scheduled task Synchronization - roles Synchronization - roles Synchronization - tree nodes Synchronization - tree nodes Synchronization - contractual relationship What is contractual relationship HR processes Fields for sync contractual relationship mapping Tutorials Provisioning Supported dto types Provisioning operation life cycle Provisioning queue Provisioning brake Logic Cache and operation counter System blocked operations Provisioning - role Provisioning - role Provisioning - role catalogues Provisioning - role catalogues Provisioning - tree nodes Provisioning - tree nodes Organizational structure Default organizational structure Default organizational structure Contractual relationship (CR) Contractual relationship (CR) Tree structures indexing Automatically assigned roles Automatic roles by attribute Definition Inconsistent state Recalculation Developer Guide Quickstart → Log In