Apache Syncope - CHANGES
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------

Release Notes - Syncope - Version 2.1.13
================================================================================

** Bug
    * [SYNCOPE-1693] - Must change password submit on console leads to errors
    * [SYNCOPE-1704] - Policy update not affecting External Resources
    * [SYNCOPE-1706] - Notification task not created with event category PROPAGATION

** Improvement
    * [SYNCOPE-1694] - Optimize creation of Implementation instances
    * [SYNCOPE-1696] - Audit Elasticsearch persistence
    * [SYNCOPE-1709] - Persist Jobs' current status in the database to support multi-node deployments
    * [SYNCOPE-1713] - Support time-based conditions for Audit, Exec and Remediation queries

Release Notes - Syncope - Version 2.1.12
================================================================================

** Bug
    * [SYNCOPE-1671] - Wrong JobDelegate column name in scheduled task table
    * [SYNCOPE-1683] - Show connector overridden properties in resource wizard in tabular topology during create
    * [SYNCOPE-1691] - Schema labels not used for attribute column headers

** Improvement
    * [SYNCOPE-1669] - Create pull results for remediations
    * [SYNCOPE-1670] - Support Graceful shutdown
    * [SYNCOPE-1674] - Optimize User, Group and Any Object lifecycle events management

Release Notes - Syncope - Version 2.1.11
================================================================================

** Bug
    * [SYNCOPE-1646] - Linked Account status set to wrong value on propagation
    * [SYNCOPE-1648] - Search with PostgreSQL JSONB fails for FIQL like 'username!=value'
    * [SYNCOPE-1649] - Reports: XML character escaping applied to CSV output
    * [SYNCOPE-1650] - Default Account Rule: pattern is ignored
    * [SYNCOPE-1651] - Invalid users can be specified in X-Syncope-Delegated-By
    * [SYNCOPE-1654] - Inconsistent Realm search FIQL expressions between JPA and Elasticsearch engines
    * [SYNCOPE-1656] - Remediations are not created on update while pulling
    * [SYNCOPE-1657] - Unable to define a new name for a cloned resource
    * [SYNCOPE-1659] - Read-only flag not working in console on virtual attributes
    * [SYNCOPE-1660] - Anonymous requests does not store domain and delegatedBy information in the auth context
    * [SYNCOPE-1663] - Value errors in FIQL expressions lead to empty result rather than error messages
    * [SYNCOPE-1664] - JSONB: Inconsistent search query when is used a pull correlation rule

** Improvement
    * [SYNCOPE-1658] - Allow to view the topology in table format
    * [SYNCOPE-1666] - Security Answer encryption
    * [SYNCOPE-1667] - Propagation Policy
    * [SYNCOPE-1668] - Provide Entity Cache report and management

Release Notes - Syncope - Version 2.1.10
================================================================================

** Bug
    * [SYNCOPE-1628] - Console goes NPE when Connector fails to initialize
    * [SYNCOPE-1629] - JPA JSON: Date conversion pattern including slashes leads to incorrect search results
    * [SYNCOPE-1634] - Group Owner update/delete action doesn't trigger propagation action
    * [SYNCOPE-1635] - Create Rules with configurations for each domain, make creation thread safe
    * [SYNCOPE-1640] - Uncaught exception when creating Enum schema
    * [SYNCOPE-1643] - Update of Realm doesn't trigger provisioning for users
    * [SYNCOPE-1644] - Task run failure with multi-node deployments
    * [SYNCOPE-1645] - Case insensitive search with Elasticsearch extension returns wrong results 

** New Feature
    * [SYNCOPE-129] - Delegation

** Improvement
    * [SYNCOPE-1630] - Use Group owners to extend Delegated Administration
    * [SYNCOPE-1631] - Pass ConnId ObjectClass to ReconFilterBuilder
    * [SYNCOPE-1633] - Give the possibility to add a custom message to the confirm dialog
    * [SYNCOPE-1639] - Provide ordering of attributes in the diff view on the history management
    * [SYNCOPE-1641] - Allow to purge Propagation Tasks

Release Notes - Syncope - Version 2.1.9
================================================================================

** Bug
    * [SYNCOPE-1606] - Syncope returns an exception when doing two sequential operations for the same user from the toggle panel
    * [SYNCOPE-1607] - Console Page preferences not working
    * [SYNCOPE-1613] - startAt date is set to start field for SCHEDULED, PULL and PUSH TaskTOs
    * [SYNCOPE-1616] - CSV and single push / pull concurrency issues
    * [SYNCOPE-1619] - SearchPanel should display the input field based on the type of the selected property
    * [SYNCOPE-1620] - JWT validation requires exp and nbf claims
    * [SYNCOPE-1622] - ConnId Connectors not pooled with Resource override

** Improvement
    * [SYNCOPE-1608] - Allow wildcard group membership search
    * [SYNCOPE-1609] - Reduce the number of table joins into PostgreSQL JSONB persistence implementation
    * [SYNCOPE-1610] - Set Reconciliation to work with Pull and Push Correlation Rules if available
    * [SYNCOPE-1611] - Caffeine Cache for Virtual Attribute Cache
    * [SYNCOPE-1624] - Toggle panel improvements

Release Notes - Syncope - Version 2.1.8
================================================================================

** Bug
    * [SYNCOPE-1590] - Error when adding i18n labels to schemas
    * [SYNCOPE-1596] - Console: read-only attributes not rendered as disabled
    * [SYNCOPE-1598] - Create or update user with two+ memberships for the same group are not prevented
    * [SYNCOPE-1601] - Propagation not always triggered after form submit in User Requests
    * [SYNCOPE-1602] - ConnObjectKey attribute values not included with DefaultPushCorrelationRule
    * [SYNCOPE-1603] - PushCorrelationRule not used for DELETE on External Resources
    * [SYNCOPE-1604] - AjaxDateTimePicker doesn't handle some 1900 dates the right way
    * [SYNCOPE-1605] - Propagation task not generated if update involves only ConnObjectLink

** Improvement
    * [SYNCOPE-1591] - Support fetching data from internal storage for XML content loader
    * [SYNCOPE-1594] - Allow to filter user requests and forms by username
    * [SYNCOPE-1597] - Enable default customization of console layout
    * [SYNCOPE-1600] - Flowable: support password form property type

Release Notes - Syncope - Version 2.1.7
================================================================================

** Bug
    * [SYNCOPE-1549] - Groups select opens a popup when removing a group
    * [SYNCOPE-1560] - File upload component: missing translations
    * [SYNCOPE-1561] - Batch: missing support for custom TLSClientParameters
    * [SYNCOPE-1563] - User approval update should send the password only when requested
    * [SYNCOPE-1564] - Integration tests run with YAML payloads are failing
    * [SYNCOPE-1565] - Integration tests run with XML payloads are failing
    * [SYNCOPE-1567] - Mapping does not allow relationships
    * [SYNCOPE-1569] - Console: cannot save Reportlet search conditions
    * [SYNCOPE-1573] - Logout forced from Console when editing user with many memberships
    * [SYNCOPE-1581] - When enabling Swagger UI or Flowable extensions Installer generates invalid POM files
    * [SYNCOPE-1583] - For members part of a Dynamic Group, but cannot access group attributes in member mapping
    * [SYNCOPE-1586] - Startup failures with sample docker-compose and MySQL

** Improvement
    * [SYNCOPE-1568] - Render custom wizard on user request
    * [SYNCOPE-1575] - Provide the ability to specify on which resources the user's status should be propagated

Release Notes - Syncope - Version 2.1.6
================================================================================

** Bug
    * [SYNCOPE-1461] - MySQL: Segmentation fault with query using JSON_TABLE
    * [SYNCOPE-1503] - Cannot remove provisioning information from Resource in Admin Console
    * [SYNCOPE-1504] - Error setting uidOnCreate attribute during a pull task with multiple provisions
    * [SYNCOPE-1505] - Changes to "AjaxPalettePanel" components in Console are not saved when the previous step button is pressed before submitting the wizard form
    * [SYNCOPE-1512] - Error while saving a unique plain attribute value with single quote when using JPA JSON
    * [SYNCOPE-1520] - Exception when updating Group unique attribute with JPA JSON
    * [SYNCOPE-1524] - Social registration does not redirect to self registration page
    * [SYNCOPE-1525] - Documentation indicates sharing private key, hiding public key
    * [SYNCOPE-1526] - Broken link to issues from reference documentation
    * [SYNCOPE-1533] - Broken backward compatibilty because of changes in Equals and HashCode methods in TOs
    * [SYNCOPE-1536] - Enduser UI does not clean up file alteration monitors on shutdown
    * [SYNCOPE-1537] - Password of LinkedAccounts not saved properly from Admin Console
    * [SYNCOPE-1538] - Admin Console: users / groups management slow to access with high number of realms
    * [SYNCOPE-1539] - AjaxPalettePanel does not support setRequired
    * [SYNCOPE-1542] - Search panel issues in Admin Console
    * [SYNCOPE-1544] - 'Override?' flag not properly set for password and username fields of LinkedAccounts
    * [SYNCOPE-1546] - PriorityPropagationTaskExecutor: rejected tasks not stored
    * [SYNCOPE-1554] - Generated default admin role layout doesn't work

** New Feature
    * [SYNCOPE-957] - Multiaccount
    * [SYNCOPE-1506] - Merge Users
    * [SYNCOPE-1511] - Configure audit events create/update/etc of users, groups, etc
    * [SYNCOPE-1529] - French (CA) translation for Admin Console

** Improvement
    * [SYNCOPE-1498] - Allow variable resolution in Content.xml
    * [SYNCOPE-1499] - Add support for READ correlation rule
    * [SYNCOPE-1500] - Allow single import from External Resource
    * [SYNCOPE-1501] - Allow filtering for explore resource
    * [SYNCOPE-1502] - Find Anys using FIQL: SQL improvements
    * [SYNCOPE-1508] - Allow to extend the set of attributes requested from External Resources
    * [SYNCOPE-1509] - Auto-select language from Accept-Language HTTP header
    * [SYNCOPE-1510] - Allow to store encrypted schema's secret key externally
    * [SYNCOPE-1513] - Allow to customize security headers
    * [SYNCOPE-1515] - Adapt realm selector to actual number of realms
    * [SYNCOPE-1517] - Audit appender should be configurable
    * [SYNCOPE-1518] - Allow X-Forwarded-For and X-Forwarded-Proto HTTP headers integration
    * [SYNCOPE-1521] - Allow filtering for Role assignment
    * [SYNCOPE-1522] - Realm behaviors for Delegated Administration
    * [SYNCOPE-1523] - JPAConnInstanceDAO should be marked as Transactional
    * [SYNCOPE-1527] - Allow for custom search conditions
    * [SYNCOPE-1530] - Add parameters at User Requests start
    * [SYNCOPE-1531] - Easier bulk upload from / download to CSV
    * [SYNCOPE-1532] - Allow tilde for key values and Realms name
    * [SYNCOPE-1534] - Display friendly error messages in Admin Console
    * [SYNCOPE-1535] - Customize the order of the provisions of a resource according to the object classes
    * [SYNCOPE-1540] - Make internal storage export DBMS independent
    * [SYNCOPE-1541] - XML response message timestamps missing millisecs component if "0 msecs"
    * [SYNCOPE-1547] - Allow the possibility to customize the roles to be displayed
    * [SYNCOPE-1548] - Allow the possibility to customize the Groups wizard step
    * [SYNCOPE-1551] - Allow for info notifications in Admin Console

** Task
    * [SYNCOPE-1514] - Report CLI deprecation

Release Notes - Syncope - Version 2.1.5
================================================================================

** Bug
    * [SYNCOPE-1462] - Requests list is not refreshed if empty
    * [SYNCOPE-1467] - RDN not allowed when an attribute of the group present also in the DN is changed
    * [SYNCOPE-1469] - MySQL with JSON support: errors during startup
    * [SYNCOPE-1470] - Flowable extension not working with MariaDB
    * [SYNCOPE-1472] - Resource association is duplicated on database after update, assign or link operations
    * [SYNCOPE-1474] - Resource is duplicated after batch operation
    * [SYNCOPE-1476] - Error while creating Enum schema from Admin Console
    * [SYNCOPE-1477] - jQuery UI's spinner not rendered
    * [SYNCOPE-1478] - Unable to remove value of "Schema to hold values for identifiers generated upon Create by the external Identity Store" from provisioning
    * [SYNCOPE-1480] - Elasticsearch:dynrealm assignment not updated on condition change
    * [SYNCOPE-1481] - Invalid values when saving a membership attribute of type date
    * [SYNCOPE-1484] - syncope-ide-netbeans submodule fails to find netbeans dependency
    * [SYNCOPE-1485] - Reindex of elasticsearch ends with memory error in case of huge amount of data
    * [SYNCOPE-1487] - Build Instructions do not say that the "patch" program is needed
    * [SYNCOPE-1488] - Change to MVM Env for JDK > 8.00
    * [SYNCOPE-1492] - Build Instructions are missing an EVN (DOCKER_HOST) needed for  mvn -Ppostgres-it 
    * [SYNCOPE-1493] - Mapping unique schema as remote key never matches internal objects

** Improvement
    * [SYNCOPE-1463] - Improve UX enduser User Request management
    * [SYNCOPE-1468] - Allow for configurable org.quartz.jobStore.misfireThreshold
    * [SYNCOPE-1473] - Provide a PropagationActions to maintain a conservative membership policy management

** Task
    * [SYNCOPE-1464] - Upgrade to Apache Netbeans Maven dependencies

Release Notes - Syncope - Version 2.1.4
================================================================================

** Bug
    * [SYNCOPE-1428] - APIs to read by key return 404 instead of 401 for not authenticated calls
    * [SYNCOPE-1429] - Wildcard case-insesitive queries do not work with Elasticsearch
    * [SYNCOPE-1430] - ItemTransformer for Date schemas throws NPE 
    * [SYNCOPE-1431] - Connector and Resource history compare does not work
    * [SYNCOPE-1432] - After creating new connector / resource, Topology does not show it
    * [SYNCOPE-1437] - Error while searching for users / groups / any objects with Elasticsearch when no data are present
    * [SYNCOPE-1438] - "changePwdDate" field is not initialized when create a new user with the specified password
    * [SYNCOPE-1439] - User membership attributes not updated
    * [SYNCOPE-1440] - Pagination of Users/Groups doesn't work as expected with Elasticsearch
    * [SYNCOPE-1442] - Inactive Job with cron expression set is executed anyway 
    * [SYNCOPE-1443] - Changing Display Rows number in Reconciliation Resource Panel doesn't work
    * [SYNCOPE-1446] - Persistence exception on PostgreSQL when AUDIT is enabled on propagation tasks 
    * [SYNCOPE-1447] - NPE while deleting a privilege from admin console
    * [SYNCOPE-1448] - Bean loading/register section not threadsafe
    * [SYNCOPE-1450] - Audit: sensitive information not masked by default during update
    * [SYNCOPE-1452] - Notification about is not deleted after update
    * [SYNCOPE-1453] - MappingItem with "mustChangePassword" field cannot be provisioned and updated during import
    * [SYNCOPE-1454] - Avoid duplicated Propagation Tasks
    * [SYNCOPE-1457] - NonAlphaNumeric policy pattern matches the "Not word" character class

** New Feature
    * [SYNCOPE-1401] - Leverage MySQL JSON type

** Improvement
    * [SYNCOPE-1433] - Unflag/flag uniqueness shouldn't be permitted
    * [SYNCOPE-1436] - Remove pullPolicy EAGER fetchType from JPAExternalResource
    * [SYNCOPE-1441] - Perform in-memory match for dynamic conditions
    * [SYNCOPE-1444] - Pull correlation rules: allow to discriminate ongoing event
    * [SYNCOPE-1445] - Docker: support pgjsonb as DBMS option
    * [SYNCOPE-1449] - Support multi-value attributes in JEXL expressions

** Task
    * [SYNCOPE-1400] - Support MySQL 8

Release Notes - Syncope - Version 2.1.3
================================================================================

** Bug
    * [SYNCOPE-1391] - Check template for confirmPasswordReset and mustChangePassword
    * [SYNCOPE-1393] - jexl function fullPath2Dn return invalid value for ROOT realm
    * [SYNCOPE-1399] - Error while executing the custom task to initialize indices with Elasticsearch v6.x
    * [SYNCOPE-1404] - Dialog not closing in Netbeans ide plugin when creating a new element
    * [SYNCOPE-1405] - Error during db initialization: views.xml always set for PostgreSQL
    * [SYNCOPE-1406] - Error during startup because of missing property 'historyLevel'
    * [SYNCOPE-1407] - Date pattern ignored by widget
    * [SYNCOPE-1408] - Partial user edit via Role layout implies removing all unmanaged attributes
    * [SYNCOPE-1411] - User/Any object updates generate attributes with null owner in case of patches involving membership attributes
    * [SYNCOPE-1417] - Search with order by two plain attributes gives no results
    * [SYNCOPE-1419] - User and AnyObject search fails in case of not leaf conditions given on multivalue fields
    * [SYNCOPE-1420] - Expired Access Tokens might impede successful authentication
    * [SYNCOPE-1425] - Mapping item transformers do not work for non-string values

** New Feature
    * [SYNCOPE-1368] - Add some accessibility features to Console
    * [SYNCOPE-1395] - Leverage PostgreSQL's jsonb type

** Improvement
    * [SYNCOPE-1392] - Reduce usage of Reflection to improve overall performance
    * [SYNCOPE-1394] - Add un-claim capability for requests
    * [SYNCOPE-1396] - Give the possibility to configure TLS client parameters
    * [SYNCOPE-1397] - No Such element exception while editing USER update approval
    * [SYNCOPE-1409] - Avoid double round-trip to External Resource during Push
    * [SYNCOPE-1412] - Serch for identities with null attributes can be improved 
    * [SYNCOPE-1416] - remove user_search_null_attr view
    * [SYNCOPE-1422] - Permit to provide custom implementation of NotificationManager and AuditManager
    * [SYNCOPE-1424] - Improve Propagation task ordered search

** Task
    * [SYNCOPE-1381] - Support user request from Enduser UI
    * [SYNCOPE-1402] - Upgrade to Validation API 2.0

Release Notes - Syncope - Version 2.1.2
================================================================================

** Bug
    * [SYNCOPE-1360] - Delegated administration to Dynamic Realms not possible
    * [SYNCOPE-1361] - Custom audit appender does not work after a restart
    * [SYNCOPE-1362] - Sorting users by creation date raises RuntimeException
    * [SYNCOPE-1363] - Deleting multiple users at once reports "Operation delete not supported"
    * [SYNCOPE-1364] - Upgrade tool from 2.0 script error
    * [SYNCOPE-1365] - Erorr during retrieve candidate groups for approval process
    * [SYNCOPE-1366] - Audit events ownership always set to admin user
    * [SYNCOPE-1370] - Password reset succeeds also on wrong captcha
    * [SYNCOPE-1371] - After upgrade from 2.0, error when updating Realm: ClassCastException: Expected LOGIC_ACTIONS, got PULL_ACTIONS
    * [SYNCOPE-1372] - Password history checks not effective
    * [SYNCOPE-1373] - Custom task schedule is reset after update
    * [SYNCOPE-1374] - Concurrent propagation tasks for non-Master domains not saved
    * [SYNCOPE-1375] - The existence of a membership attribute mapping implies membership creation during pull
    * [SYNCOPE-1376] - swagger-ui server URL incorrect behind ssl reverse proxy
    * [SYNCOPE-1377] - Wrong X-Syncope-Domain header does not throw an error
    * [SYNCOPE-1380] - During Push or Pull, if policy with conflict resolution IGNORE is set, the process is interrupted as soon as such setting applies
    * [SYNCOPE-1383] - Exception during "getObject" from external resource
    * [SYNCOPE-1387] - ClassCast exception when pull realms
    * [SYNCOPE-1388] - mustChangePassword flag does not prevent user from invoking actions
    * [SYNCOPE-1389] - In case of virtual attribute mapping, propagation is always set as UPDATE also in case of CREATE
    * [SYNCOPE-1390] - Pull Realms: pull task with Unmatching Rules: PROVISION shouldn't create propagation task

** New Feature
    * [SYNCOPE-1019] - Template mechanism for Enduser UI
    * [SYNCOPE-1220] - Support Groovy implementations in the Netbeans IDE plugin
    * [SYNCOPE-1367] - Add some accessibility features to Enduser
    * [SYNCOPE-1369] - User requests

** Improvement
    * [SYNCOPE-1379] - Make configurable resource check timeout
    * [SYNCOPE-1382] - Failure specifying push task filters including db column mapped as integer
    * [SYNCOPE-1384] - SAML 2.0: Allow to customize RequestedAuthnContext for a given Service Provider
    * [SYNCOPE-1385] - Priority propagation timeout hard coded into PriorityPropagationTaskExecutor

Release Notes - Syncope - Version 2.1.1
================================================================================

** Bug
    * [SYNCOPE-1331] - ExternalResourcePropagationAction is too long name for a table in Oracle DB
    * [SYNCOPE-1333] - Missing virtual attribute value in case of type extension
    * [SYNCOPE-1334] - Maven install problem with Apache Syncope 2.1.0
    * [SYNCOPE-1335] - Missing SQL statements when upgrading from 2.0 Jazz
    * [SYNCOPE-1337] - Password history policy is not enforced on salted passwords
    * [SYNCOPE-1338] - Double type conversion applied during pull leads to errors
    * [SYNCOPE-1339] - Enduser spinner does not apply to the whole page
    * [SYNCOPE-1340] - Cannot update membership attribute
    * [SYNCOPE-1342] - console UI login form ignores Domain selection
    * [SYNCOPE-1343] - Attributes are not reset after pull of null values
    * [SYNCOPE-1344] - CORE_SCHEME not being updated in enduser.properties
    * [SYNCOPE-1346] - Adding a new task while re-executing a propagation task
    * [SYNCOPE-1347] - Invocation Problem calling org.apache.syncope.installer.processes.ArchetypeProcess
    * [SYNCOPE-1350] - Date values not formatted according to the conversion pattern
    * [SYNCOPE-1352] - Group wizard doesn't update the plain attributes
    * [SYNCOPE-1353] - DBPasswordPropagationActions link in the reference guide is wrong
    * [SYNCOPE-1354] - Push Tasks do not send status onto External Resources
    * [SYNCOPE-1356] - LDAPMembershipPullActions does not remove memberships
    * [SYNCOPE-1357] - MemoryVirAttrCache not working
    * [SYNCOPE-1358] - Search by boolean value does not work from Admin Console

** New Feature
    * [SYNCOPE-1348] - REST: replace bulk operations with batch requests

** Improvement
    * [SYNCOPE-1336] - Add pagination for approvals forms
    * [SYNCOPE-1341] - Domain should be configurable parameter for syncope-enduser docker image

Release Notes - Syncope - Version 2.1.0
================================================================================

** Sub-task
    * [SYNCOPE-808] - Netbeans plugin
    * [SYNCOPE-984] - Errors when building on Windows for archetype and Eclipse plugin
    * [SYNCOPE-985] - org.apache.syncope.client.cli.commands.MigrateTest Fails on Windows

** Bug
    * [SYNCOPE-937] - Security question not loaded while resetting the user password
    * [SYNCOPE-940] - Handle authorization issues more gracefully in the console
    * [SYNCOPE-942] - Bug in changing security answer in the Enduser UI
    * [SYNCOPE-944] - Cannot manually assign groups provided with dynamic assignment rules
    * [SYNCOPE-946] - Encrypted attribute values not managed as password values
    * [SYNCOPE-950] - Self-registration / self-update not working
    * [SYNCOPE-953] - Enduser shows groups of the selected realm rather than groups assignable to users in the selected realm
    * [SYNCOPE-965] - Cron expression for scheduled job is not saved from the console
    * [SYNCOPE-966] - Exception reported when looking at propagation task details from user list
    * [SYNCOPE-970] - On logout, page translation doesn't reset to default settings.
    * [SYNCOPE-974] - Incorrect error reported when creating notification with missing events
    * [SYNCOPE-975] - Search case insensitive ilike operator triggers search validation
    * [SYNCOPE-976] - Duplicated events shown by admin console for notifications and audit
    * [SYNCOPE-977] - style missing for captcha buttons in responsive template (under 800px width)
    * [SYNCOPE-979] - resource id is missing in user propagation task table
    * [SYNCOPE-980] - AnyObject search filter not honored with inGroups condition
    * [SYNCOPE-981] - Oracle/SQLServer configuration does not work
    * [SYNCOPE-982] - Notification tasks modal window does not provide access to actual HTML and TEXT e-mail body
    * [SYNCOPE-987] - Build issues on Windows
    * [SYNCOPE-990] - Explore resource detailed view always shows empty left column
    * [SYNCOPE-992] - Date not registered in self registration
    * [SYNCOPE-993] - Footer buttons positioning and resizing
    * [SYNCOPE-994] - Character encoding not being respected
    * [SYNCOPE-997] - Angular transition errors
    * [SYNCOPE-999] - REST exception mapper overwrites Spring Security response
    * [SYNCOPE-1000] - CSVDir connector unclear about required attributes/columns
    * [SYNCOPE-1001] - Closing the Activiti Modeler popup does not make the spinner to disappear
    * [SYNCOPE-1002] - Updating any objects' name via console is ineffective
    * [SYNCOPE-1003] - Error when accessing notification tasks for a given user
    * [SYNCOPE-1004] - Notification tasks generated for self read event not linked to user
    * [SYNCOPE-1007] - NPE in Console when on an empty search term for user assignment
    * [SYNCOPE-1008] - Maven home directory not trimmed of whitespace
    * [SYNCOPE-1010] - Some PushActions methods not invoked even if assigned
    * [SYNCOPE-1012] - Security answer not recognized during password reset
    * [SYNCOPE-1013] - Password reset link generated by default notification template does not trigger Enduser UI features
    * [SYNCOPE-1014] - The list of security questions is not refreshed after creating new one
    * [SYNCOPE-1016] - Last change date not updated for users when attributes are updated via pull
    * [SYNCOPE-1022] - UTF-8 characters in security questions not correctly encoded by Enduser UI
    * [SYNCOPE-1023] - Maven projects from archetype deploy test content with 'all' profile
    * [SYNCOPE-1024] - Enduser does not manages properly ENUM schema labels 
    * [SYNCOPE-1025] - SYNCOPEAUDIT table not populated
    * [SYNCOPE-1026] - Cannot remove group owner once set
    * [SYNCOPE-1027] - Mapping errors cannot be fixed when defining provision rules for a new resource
    * [SYNCOPE-1030] - Invalid DefaultAccountRule definition from Admin Console
    * [SYNCOPE-1032] - Role key must be not modifiable during edit from Admin Console
    * [SYNCOPE-1033] - NPE in Admin Console when working with Reconciliation Report
    * [SYNCOPE-1034] - Assigned Auxiliary classes disappear in the Type Extensions panel when click on cancel
    * [SYNCOPE-1036] - Notification icon does not refresh on new approval event
    * [SYNCOPE-1037] - Pending approvals list is clickable
    * [SYNCOPE-1038] - User create: finish button should remain clickable if the last step is reached
    * [SYNCOPE-1039] - User attributes in user edit/create form are reset after validation error
    * [SYNCOPE-1040] - Membership derived attributes cannot reference own plain attributes
    * [SYNCOPE-1042] - Removal of all executed pull tasks via bulk action returns a missing resource exception
    * [SYNCOPE-1043] - Improve JWT token expiration handling
    * [SYNCOPE-1044] - By editing the provisioning rules, modal footer is not disabled
    * [SYNCOPE-1045] - Activiti Modeler: log out from Admin Console in case of error
    * [SYNCOPE-1046] - Console: task execution sort not working properly
    * [SYNCOPE-1048] - Into the connector configuration page the same bundle appear more then once if different versions exist
    * [SYNCOPE-1049] - Console returns an error if you try to explore Syncope as a remote object
    * [SYNCOPE-1051] - It is possible to schedule task execution in the past
    * [SYNCOPE-1052] - Enduser CAPTCHA not reloading
    * [SYNCOPE-1057] - Type extensions cleared after group update during pull
    * [SYNCOPE-1060] - Date in membership attribute is propagated as timestamp
    * [SYNCOPE-1062] - Changes pulled from one resource not propagated externally
    * [SYNCOPE-1066] - WADL servlet uses request url to provide wadl
    * [SYNCOPE-1069] - Incomplete HA setup instructions
    * [SYNCOPE-1070] - Conversion pattern ignored for date, long and double values during propagation
    * [SYNCOPE-1071] - The executed notification tasks are not displaying on the console
    * [SYNCOPE-1075] - User lastChangeDate attribute is not displayed correctly
    * [SYNCOPE-1076] - The console doesn't allow to download the report in various formats
    * [SYNCOPE-1078] - Activiti modeler window doesn't open on click
    * [SYNCOPE-1079] - Missing toggle panel for the job control widget of the administration console dashboard
    * [SYNCOPE-1081] - Console: new toggle panel behavior anomalies
    * [SYNCOPE-1082] - Concurrent CRUD random failures with dynamic memberships
    * [SYNCOPE-1085] - Custom tasks modal page shouldn't show "Cancel" button
    * [SYNCOPE-1089] - Improve provisioning mapping page in order to avoid duplicates in internal attribute name list
    * [SYNCOPE-1090] - Error defining clause to search for group owners
    * [SYNCOPE-1091] - Error while downloading Jpeg binary attribute content
    * [SYNCOPE-1094] - Out of memory error while rendering PDF
    * [SYNCOPE-1098] - User edit modal page opening takes long in case of a lot of groups defined
    * [SYNCOPE-1099] - Dynamic group membership does not trigger propagation
    * [SYNCOPE-1101] - Error showing action icons on Notidfication events managements
    * [SYNCOPE-1104] - Missing autocomplete for ConnId object class when defining new provision
    * [SYNCOPE-1107] - The installer fails with a NoClassDefFoundError
    * [SYNCOPE-1108] - NullPointerException while saving an empty template
    * [SYNCOPE-1109] - Installer fails to setup Activiti
    * [SYNCOPE-1110] - Error replacing group/auxclass/resource during self-management operation
    * [SYNCOPE-1111] - New any type not shown unders Realms
    * [SYNCOPE-1112] - Error searching for user/group/anyobject by providing conditions on attribute with schema type Long
    * [SYNCOPE-1114] - Dynamic group information not available during propagation
    * [SYNCOPE-1121] - Enduser form customization does not work with empty section in edit mode
    * [SYNCOPE-1122] - Enduser must show all attributes when customForm.json has empty section with show=true
    * [SYNCOPE-1123] - Enduser UserRequestValidator NPE on custom form empty sections
    * [SYNCOPE-1125] - Password on external resource not updated via Enduser
    * [SYNCOPE-1127] - Membership attribute values are not shown
    * [SYNCOPE-1128] - Content exporter does not sort for internal foreign keys
    * [SYNCOPE-1130] - NPE refreshing realm page after realm creation
    * [SYNCOPE-1131] - Cannot delete resources owned by realms
    * [SYNCOPE-1133] - Search panel used for relationships definition does not work
    * [SYNCOPE-1134] - Action menu not working after page refresh
    * [SYNCOPE-1135] - Groups list not refreshing after realm change
    * [SYNCOPE-1139] - StackOverflowError while serializing AuditEntry after propagation
    * [SYNCOPE-1140] - Error when trying to assign a relationship
    * [SYNCOPE-1141] - Error when getting /numbers with application/xml
    * [SYNCOPE-1149] - Access token still required for the third party JWT SSO integration scenario
    * [SYNCOPE-1150] - Invalid property set for propagation task modal page header
    * [SYNCOPE-1151] -  Glinch in the root realm information
    * [SYNCOPE-1158] - Misleading Push Task reports
    * [SYNCOPE-1162] - Change to Connector's display name not reflected by contextual menu
    * [SYNCOPE-1163] - External Resource priority is never NULL
    * [SYNCOPE-1166] - No propagation task is created for resources where the password is not propagated
    * [SYNCOPE-1168] - Encryptor pads short secret keys with "0" instead of random characters
    * [SYNCOPE-1169] - Operation not supported error when trying to run a bulk action for users 
    * [SYNCOPE-1170] - Can't remove a "Dynamic USER assignment"
    * [SYNCOPE-1174] - NPE in AccessTokenDataBinderImpl if no 'jwt.lifetime.minutes' schema is present
    * [SYNCOPE-1175] - Password Reset Token Generation Not Working After Upgrading to 2.0.4
    * [SYNCOPE-1178] - PlainSchema page empty while self update on Enduser 
    * [SYNCOPE-1179] - JWT "Date" claims are interpreted using milliseconds instead of seconds
    * [SYNCOPE-1180] - No e-mail debug output
    * [SYNCOPE-1184] - In the "Attributes to be displayed" sellection show the ones already displayed by default
    * [SYNCOPE-1188] - NPE Message while saving Dynamic Realm with empty key
    * [SYNCOPE-1189] - Realms page not accessible when user has permissions on dynamic realms
    * [SYNCOPE-1190] - Username not refreshed on toggle menu after user update
    * [SYNCOPE-1193] - Add the option to update a user via REST by using the username as key
    * [SYNCOPE-1199] - Syncope performance: AnyObjectTO's creation time grows with it's quantity
    * [SYNCOPE-1203] - Not possible to add provision rules for "Realm" type
    * [SYNCOPE-1205] - Serialization exception in the logs when editing users pending approval
    * [SYNCOPE-1206] - Dynamic membership updates not considered for provisioning during update
    * [SYNCOPE-1207] - Audit: incorrect output element reported for Pull Tasks
    * [SYNCOPE-1210] - Random password generation fails for push tasks
    * [SYNCOPE-1211] - syncope migration 1.2 to 2.0 users blocked to 200
    * [SYNCOPE-1213] - Syncope console should advice user about exceeded file size
    * [SYNCOPE-1214] - Error when sorting Users by Realm
    * [SYNCOPE-1215] - Multivalue readonly fields allow frontend deletion
    * [SYNCOPE-1216] - Upgrade to Spring 5
    * [SYNCOPE-1217] - Using the JAVA API is possible to create a Realm with the same name in the same parent realm
    * [SYNCOPE-1222] - Unwanted delete from External Resources on Membership removal
    * [SYNCOPE-1223] - Cannot search for values containing comma
    * [SYNCOPE-1224] - CLI: user "all" operations limited to 25 users
    * [SYNCOPE-1226] - List the attributes to be displayed show deleted attributes
    * [SYNCOPE-1227] - Password template not nullable after setting
    * [SYNCOPE-1229] - Pull task execution bulk delete fails
    * [SYNCOPE-1230] - Bad toggle handling during task execution delete
    * [SYNCOPE-1231] - Hidden columns in bulk action resul modal page
    * [SYNCOPE-1232] - AnyType removal does not check for existing AnyObjects
    * [SYNCOPE-1233] - NullPointerException in Topology after creating a connector with no displayName using pure REST call
    * [SYNCOPE-1235] - Unlink or unassign Group from External Resource resets dynamic membership conditions
    * [SYNCOPE-1236] - Pagination error for executed tasks
    * [SYNCOPE-1239] - Missing specified plain attr values if plain attr step is the last one of the any management wizard
    * [SYNCOPE-1241] - Under high load propagation after pull might fail
    * [SYNCOPE-1244] - Error creating bean with name 'logicInitializer' on startup related to quartz clustering 
    * [SYNCOPE-1246] - Group membership search stucks with several thousands of groups
    * [SYNCOPE-1247] - Group search and auto-completion does not work with several thousands of groups
    * [SYNCOPE-1248] - Password policy history error when the user is updated before being approved
    * [SYNCOPE-1250] - Missing attributes layout order
    * [SYNCOPE-1251] - UserTO variable is not updated during Update Activiti Task
    * [SYNCOPE-1252] - Search failing for non-string attributes from Admin Console
    * [SYNCOPE-1253] - Pulled users have password set even if no mapping was provided
    * [SYNCOPE-1254] - Cannot create new connector instances from Admin Console
    * [SYNCOPE-1257] - USER search by GROUP does not work if group name has spaces
    * [SYNCOPE-1261] - When starting with empty database and no ConnInstances in Content.xml no bundles are reported as available
    * [SYNCOPE-1263] - REST invocation with invalid JWT string returns 500
    * [SYNCOPE-1265] - SAML 2.0 IdP cache empty until either new is imported or SAML2IdPService#list is invoked
    * [SYNCOPE-1266] - Multivalue binary attributes leads to OutOfMemory exception
    * [SYNCOPE-1269] - Cannot specify validator for Configuration Parameters
    * [SYNCOPE-1272] - Export of the report always returns the result of the last execution
    * [SYNCOPE-1275] - Add the possibiliy to delete a job
    * [SYNCOPE-1276] - Link or assign Group from External Resource resets dynamic membership conditions
    * [SYNCOPE-1282] - Search schema error
    * [SYNCOPE-1285] - Quartz db init on HA environments occurs on all nodes
    * [SYNCOPE-1288] - Propagation tasks list not keeping order while browsing pages
    * [SYNCOPE-1290] - Deletion of only schema entry breaks schema UI
    * [SYNCOPE-1291] - Cannot login again into Admin Console after Session Expired
    * [SYNCOPE-1293] - Default password reset notifications not working
    * [SYNCOPE-1294] - Plainschema panel doesn't display the assigned validator class
    * [SYNCOPE-1296] - Eclipse Plugin OSGI Dependency Issue
    * [SYNCOPE-1297] - Select all + bulk button redirecting to top of the page on click
    * [SYNCOPE-1298] - Quartz jobs with no matching Task or Report not visible from Admin Console
    * [SYNCOPE-1301] - Token creation is not threadsafe
    * [SYNCOPE-1303] - Content migration from 1.2 problems
    * [SYNCOPE-1304] - Order Groups by userOwner throws DataIntegrityViolation exception
    * [SYNCOPE-1306] -  Date value without a conversion pattern not shown by Admin Console
    * [SYNCOPE-1307] - Wrong export order for Realms
    * [SYNCOPE-1308] - Exception getting users with orderBy on SyncopeClient API with Postgres 10.3
    * [SYNCOPE-1309] - Enduser UI does not remove Access Token on Finish
    * [SYNCOPE-1312] - Console CSS is depending from Google fonts
    * [SYNCOPE-1314] - Bulk action from reconciliation section ever shows NOT ATTEMPTED after provision
    * [SYNCOPE-1315] - Propagation task sorting by Object Type not working as expected
    * [SYNCOPE-1317] - RuntimeException when remove all schemas
    * [SYNCOPE-1318] - Future task rejected from ScheduledThreadPoolExecutor
    * [SYNCOPE-1319] - Pull Task template not assigning roles
    * [SYNCOPE-1320] - Push task report generation fails in case of IgnoreProvisionException
    * [SYNCOPE-1321] - Search doesn't work for date attributes with conversion pattern with time zone
    * [SYNCOPE-1326] - Wizard generates unnecessary attrPatch when the field is empty

** New Feature
    * [SYNCOPE-152] - Support SCIM REST API
    * [SYNCOPE-882] - Log viewer
    * [SYNCOPE-956] - Allow for scripted customizations
    * [SYNCOPE-1015] - User Authentication using email
    * [SYNCOPE-1018] - Social registration for Enduser UI
    * [SYNCOPE-1035] - JWT-based access to REST services
    * [SYNCOPE-1041] - SAML 2.0 Service Provider feature
    * [SYNCOPE-1054] - Replace Activiti-based workflow adapter with Flowable
    * [SYNCOPE-1077] - Extension: Elasticsearch-based search engine
    * [SYNCOPE-1095] - Provide preview for JSON and XML binary field
    * [SYNCOPE-1129] - Third Party JWT SSO integration
    * [SYNCOPE-1144] - Customizable Audit appender
    * [SYNCOPE-1145] - Connector and Resource configuration versioning
    * [SYNCOPE-1249] - Support for mustChangePassword mapping
    * [SYNCOPE-1256] - Docker images
    * [SYNCOPE-1259] - Japanese translation for Admin console & Enduser UI
    * [SYNCOPE-1270] - OpenID Connect client feature
    * [SYNCOPE-1279] - Provide live updates from running tasks and reports
    * [SYNCOPE-1281] - Privilege management
    * [SYNCOPE-1283] - Support Azure AD
    * [SYNCOPE-1287] - Remediation
    * [SYNCOPE-1289] - REST: support YAML payloads
    * [SYNCOPE-1310] - Support SCIM v1.1
    * [SYNCOPE-1316] - Support ServiceNow

** Improvement
    * [SYNCOPE-470] - Implement correlation rule management for push task
    * [SYNCOPE-681] - i18n labels for schema names
    * [SYNCOPE-773] - Allow in-place edit in Job dashboard widget
    * [SYNCOPE-779] - Use Kendo UI Boostrap DateTimePicker
    * [SYNCOPE-938] - Use Java 8 language features
    * [SYNCOPE-948] - Optionally provide schema information with attribute values
    * [SYNCOPE-949] - Leave WebApplicationException to default processing
    * [SYNCOPE-952] - Provide realm management to enduser
    * [SYNCOPE-958] - Enduser improvements
    * [SYNCOPE-959] - Specify working domain in enduser.properties
    * [SYNCOPE-960] - Make the breadcrumb in creation navigable only when the Finish page has been reached
    * [SYNCOPE-971] - Case insensitive search
    * [SYNCOPE-972] - Make Syncope Enduser template responsive
    * [SYNCOPE-978] - Add sample REST external resource
    * [SYNCOPE-983] - Search performance improvement with mandatory schemas only
    * [SYNCOPE-989] - Upgrade FOP to 2.1
    * [SYNCOPE-991] - Improve user password management / resource management
    * [SYNCOPE-996] - Replace Angular Bootstrap DateTimePicker with Kendo UI DateTimePicker
    * [SYNCOPE-1005] - Schema sorting should be done on JS side 
    * [SYNCOPE-1009] - Enduser must provide an easy way to enable/disable visualization and sorting of USER attributes
    * [SYNCOPE-1020] - Support for BPMN call activity
    * [SYNCOPE-1028] - Improve usability of the modal window for provision rules
    * [SYNCOPE-1029] - Change modal window title and button bars background
    * [SYNCOPE-1031] - Hide key when creating / editing Security Questions from Admin Console
    * [SYNCOPE-1047] - Replace ActionLinksPanel with TogglePanel
    * [SYNCOPE-1050] - Allow easier extension of REST interface exposed to AngularJS
    * [SYNCOPE-1053] - Show actual pending modifications during approval
    * [SYNCOPE-1058] - Do not show time picker and values for date-only schemas
    * [SYNCOPE-1059] - Remove final landing page after user create/update
    * [SYNCOPE-1061] - Support SAML 2.0 Redirect profile
    * [SYNCOPE-1063] - Incomplete title for modal windows from Topology
    * [SYNCOPE-1064] - Improve security of customization mechanism
    * [SYNCOPE-1067] - More flexible delegated administration model
    * [SYNCOPE-1068] - Console: CSRF protection
    * [SYNCOPE-1072] - Display or enable add button only to realms were CREATE is owned
    * [SYNCOPE-1073] - Hide realm management if no realm entitlement are owned
    * [SYNCOPE-1074] - Realm navigator: show only relevant realms for delegated admin
    * [SYNCOPE-1083] - ConnInstance location is not normalized
    * [SYNCOPE-1084] - Switch to HikariCP for Core's default DataSource definitions
    * [SYNCOPE-1086] - Avoid to read whole entities to check ETag
    * [SYNCOPE-1087] - Avoid to read input entities if no notification or audit are requested
    * [SYNCOPE-1088] - Store authorizations with access tokens
    * [SYNCOPE-1093] - Add some feedbacks when linking not existing groups/resources to existing user
    * [SYNCOPE-1096] - Download button should be disabled while populating for the first time a binary attribute
    * [SYNCOPE-1097] - Downloaded file for binary attribute better naming
    * [SYNCOPE-1100] - Provide JWT expiration information to self
    * [SYNCOPE-1103] - Option to disable Quartz instances across cluster
    * [SYNCOPE-1106] - Remove misleading getAttrMap and similar methods from TOs
    * [SYNCOPE-1115] - Display attributes for propagation tasks
    * [SYNCOPE-1117] - Make it more obvious that the jwsKey needs to be changed
    * [SYNCOPE-1118] - Update docs to explain what "anonymousKey" refers to
    * [SYNCOPE-1119] - Make it more obvious that the default admin password needs to be changed
    * [SYNCOPE-1120] - Use the standard Bearer Authorization header for JWT tokens
    * [SYNCOPE-1124] - Support functions for internal JEXL engine
    * [SYNCOPE-1126] - Include realms into the Explore Resource feature
    * [SYNCOPE-1136] - Groups list reset always after realm change
    * [SYNCOPE-1138] - Update RelationshipTO to also report the "left" end of a relationship
    * [SYNCOPE-1143] - Fine-grained administration rights for Connector and Resources
    * [SYNCOPE-1146] - On-the-fly creation of unmatched users logging via SAML 2.0
    * [SYNCOPE-1147] - Extend SAML 2.0 IdP mapping to Roles
    * [SYNCOPE-1148] - SAML-initiated self-registration
    * [SYNCOPE-1152] - Clear out unneeded anonymous authenticated services
    * [SYNCOPE-1153] - Push Tasks result to show "no operation" when operation is not enabled 
    * [SYNCOPE-1154] - Edit resource to show always in the same order in list of object provision rules
    * [SYNCOPE-1155] - Hard-coded /syncope-enduser HTTP subcontext
    * [SYNCOPE-1159] - Allow to set Realm for Push Tasks
    * [SYNCOPE-1164] - Complete mapping for Realm provisioning
    * [SYNCOPE-1165] - Switch the default password cipher algorithm from SHA1 to SSHA256
    * [SYNCOPE-1167] - Preliminary AnyType selection when adding new provision rule
    * [SYNCOPE-1171] - Skip Relationships page when no relationship types exist
    * [SYNCOPE-1172] - Error message of "Malformed Path" could be made a little clearer
    * [SYNCOPE-1173] - Replace List<String> dynGroups with List<MembershipTO> dynMemberships
    * [SYNCOPE-1176] - Edit provisioning rules menu is flat and not toggle
    * [SYNCOPE-1177] - Configuration Parameter deletion should ask for confirmation
    * [SYNCOPE-1182] - Use Remote Key in the Mapping to fetch external entities
    * [SYNCOPE-1183] - Realm attribute available (as a detail) to use as a column in the "realm view" object list
    * [SYNCOPE-1185] - Further validate SAML responses with CXF's SAMLSSOResponseValidator
    * [SYNCOPE-1192] - Provide latest GIT commit hash alongside with version number
    * [SYNCOPE-1194] - Sign the SAML SSO Service Provider Metadata
    * [SYNCOPE-1196] - Binary previewer also for configuration parameters
    * [SYNCOPE-1197] - Enduser console doesn't specify "SAML 2.0" as per the admin console
    * [SYNCOPE-1198] - Make the signature algorithm configurable for SAML SSO
    * [SYNCOPE-1200] - Allow to update user data during approval
    * [SYNCOPE-1201] - Allow AnyType-based conditions for DynRealms
    * [SYNCOPE-1202] - Support IdP Initiated SAML SSO
    * [SYNCOPE-1212] - Allow for easier Pull / Push processes customization
    * [SYNCOPE-1225] - Search funcionality in Schemas
    * [SYNCOPE-1228] - Parent should be passed once for Realm create
    * [SYNCOPE-1234] - SyncDelta pre-processing
    * [SYNCOPE-1237] - Copy table row element key to clipboard by clicking on its name in toggle menu
    * [SYNCOPE-1238] - Terminate Topology background checks once completed
    * [SYNCOPE-1242] - Simple way to see elements full text value in Palette Panels
    * [SYNCOPE-1243] - Add information to GroupTO about user and AnyObject membership counts
    * [SYNCOPE-1255] - Dynamic group/role create/update can result in timeout error in case of a great number of members
    * [SYNCOPE-1267] - Provide check of mimetypes before generate a binary attribute preview
    * [SYNCOPE-1274] - Report required and read-only payload properties in OpenApi spec
    * [SYNCOPE-1280] - Better job interrupt
    * [SYNCOPE-1292] - Use Remote Key during Pull to match internal entities
    * [SYNCOPE-1295] - Create a structured wizard to edit SCIM 2.0 configuration 
    * [SYNCOPE-1299] - Manual reconciliation
    * [SYNCOPE-1300] - Resource: ignoreCase match
    * [SYNCOPE-1302] - New expression model in mapping for internal attributes to access user relationships
    * [SYNCOPE-1311] - Support to save ids generated by identity repositories upon create
    * [SYNCOPE-1322] - Get available tasks from workflow definition
    * [SYNCOPE-1323] - Upgrade to Wicket 8
    * [SYNCOPE-1324] - Have I Been Pwned password rule
    * [SYNCOPE-1328] - Need option to configure the encryption algorithm used to generate JWT.
    * [SYNCOPE-1329] - JWT: need support for asymmetric key

** Wish
    * [SYNCOPE-1161] - Option to clone a resource

** Task
    * [SYNCOPE-962] - Upgrade to Wicket 7.5.0
    * [SYNCOPE-1080] - Update swagger-jaxrs dependency to 1.5.13
    * [SYNCOPE-1204] - Upgrade Migration code and guide
    * [SYNCOPE-1208] - MIgrate to JUnit 5
    * [SYNCOPE-1262] - Upgrade to Swagger UI 3.0
    * [SYNCOPE-1327] - Enable build with Java 10
