| Apache Syncope - CHANGES |
| Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0 |
| -------------------------------------------------------------------------------- |
| |
| Release Notes - Syncope - Version 3.0.0-M0 |
| ================================================================================ |
| |
| ** Sub-task |
| * [SYNCOPE-1413] - Remove CLI |
| * [SYNCOPE-1414] - Remove GUI Installer |
| * [SYNCOPE-1418] - Convert webapps to Spring Boot |
| * [SYNCOPE-1421] - New Enduser UI |
| * [SYNCOPE-1426] - Remove Eclipse IDE plugin |
| * [SYNCOPE-1458] - Keymaster for Configuration Parameters |
| * [SYNCOPE-1459] - Keymaster for Service Discovery |
| * [SYNCOPE-1460] - Keymaster for dynamic Domain management |
| * [SYNCOPE-1494] - Basic maven build to verify compilation correctness |
| * [SYNCOPE-1495] - Remove deb packages |
| * [SYNCOPE-1496] - Add integration tests for DBMSes via Docker |
| * [SYNCOPE-1552] - Allow WA audits to be stored in Syncope |
| * [SYNCOPE-1553] - Fetch WA auth modules & map to properties during bootstrap |
| * [SYNCOPE-1555] - Allow WA as SAML2 IdP to fetch metadata over REST |
| * [SYNCOPE-1556] - Allow WA as OIDC OP to fetch JWKS over REST |
| * [SYNCOPE-1557] - Complete policies manipulating with authentication modules and mappings information |
| * [SYNCOPE-1558] - Configure WA delegated authn module to SAML IdPs via REST |
| * [SYNCOPE-1559] - Allow WA Google Auth MFA settings to become reloadable |
| * [SYNCOPE-1562] - Handle OTP records for GoogleAuthN MFA |
| * [SYNCOPE-1566] - Manage device registration records for GoogleAuthMFA |
| * [SYNCOPE-1570] - Support U2F device registration via REST APIs |
| * [SYNCOPE-1571] - Support U2F MFA tokens/requests via REST APIs |
| * [SYNCOPE-1577] - Support CAS-enabled client applications |
| * [SYNCOPE-1578] - Protected SRA Routes: OAuth 2.0 / OpenID Connect 1.0 |
| * [SYNCOPE-1579] - Protected SRA Routes: SAML 2.0 |
| * [SYNCOPE-1580] - Design WA REST APIs to configure configuration properties |
| * [SYNCOPE-1582] - Protected SRA Routes: CAS |
| * [SYNCOPE-1584] - Allow Syncope to manage WA authentication events |
| * [SYNCOPE-1587] - Enable Web AuthN support for WA |
| * [SYNCOPE-1588] - WA attributes consent management |
| * [SYNCOPE-1595] - Support themes per client application |
| * [SYNCOPE-1599] - Support Duo Security for MFA |
| * [SYNCOPE-1625] - Support impersonation for Web Access |
| * [SYNCOPE-1638] - Remove Netbeans IDE plugin |
| * [SYNCOPE-1682] - WA: support CAS Attribute Resolution |
| |
| ** Bug |
| * [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 |
| * [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-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 |
| * [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 |
| * [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 |
| * [SYNCOPE-1461] - MySQL: Segmentation fault with query using JSON_TABLE |
| * [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-1483] - maven-enforcer-plugin: API incompatibility fails the build |
| * [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 |
| * [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-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 |
| * [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-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 |
| * [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 |
| * [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-1612] - "Operation is taking too long" warning while adding/editing a connector/resource |
| * [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 |
| * [SYNCOPE-1626] - rename package org.apache.syncope.common.keymaster.client.zookeper to zookeeper |
| * [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-1632] - Graphical issue on must change password view |
| * [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 |
| * [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 |
| * [SYNCOPE-1671] - Wrong JobDelegate column name in scheduled task table |
| * [SYNCOPE-1672] - Can't retrieve Java classes when add java implementation for Password Rule, Account Rule and Reportlet on Console |
| * [SYNCOPE-1676] - Wrong header color in reset password enduser |
| * [SYNCOPE-1677] - Code editor in Console wraps short lines |
| * [SYNCOPE-1683] - Show connector overridden properties in resource wizard in tabular topology during create |
| * [SYNCOPE-1684] - NotFoundException thrown when enabled/disabled audit from console |
| * [SYNCOPE-1690] - NPE when add search condition in topology explore resource |
| * [SYNCOPE-1691] - Schema labels not used for attribute column headers |
| |
| ** New Feature |
| * [SYNCOPE-129] - Delegation |
| * [SYNCOPE-160] - Authentication features |
| * [SYNCOPE-957] - Multiaccount |
| * [SYNCOPE-1019] - Template mechanism for Enduser UI |
| * [SYNCOPE-1220] - Support Groovy implementations in the Netbeans IDE plugin |
| * [SYNCOPE-1348] - REST: replace bulk operations with batch requests |
| * [SYNCOPE-1367] - Add some accessibility features to Enduser |
| * [SYNCOPE-1368] - Add some accessibility features to Console |
| * [SYNCOPE-1369] - User requests |
| * [SYNCOPE-1395] - Leverage PostgreSQL's jsonb type |
| * [SYNCOPE-1401] - Leverage MySQL JSON type |
| * [SYNCOPE-1455] - New component: sra (API gateway) |
| * [SYNCOPE-1456] - New component: Keymaster |
| * [SYNCOPE-1506] - Merge Users |
| * [SYNCOPE-1511] - Configure audit events create/update/etc of users, groups, etc |
| * [SYNCOPE-1529] - French (CA) translation for Admin Console |
| * [SYNCOPE-1545] - Web Access |
| * [SYNCOPE-1680] - Support Simple MFA as an MFA Provider in WA |
| * [SYNCOPE-1681] - Support LDAP Google Auth Tokens/Accounts in WA |
| * [SYNCOPE-1688] - Console: saved queries |
| |
| ** Improvement |
| * [SYNCOPE-1336] - Add pagination for approvals forms |
| * [SYNCOPE-1341] - Domain should be configurable parameter for syncope-enduser docker image |
| * [SYNCOPE-1355] - Document how to access services when using Docker Compose |
| * [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 |
| * [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 |
| * [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 |
| * [SYNCOPE-1465] - Add executor information to Task and Report executions |
| * [SYNCOPE-1466] - Add context to user, group and any object metadata information |
| * [SYNCOPE-1468] - Allow for configurable org.quartz.jobStore.misfireThreshold |
| * [SYNCOPE-1473] - Provide a PropagationActions to maintain a conservative membership policy management |
| * [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-1519] - SchemaDataBinderImpl#update optimization |
| * [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 |
| * [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 |
| * [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 |
| * [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-1614] - Convert SyncopeService into Spring Boot's InfoContributor |
| * [SYNCOPE-1615] - Convert LoggerService into Spring Boot's loggers actuator |
| * [SYNCOPE-1624] - Toggle panel improvements |
| * [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 |
| * [SYNCOPE-1652] - Align AccessPolicy with CAS DefaultRegisteredServiceAccessStrategy |
| * [SYNCOPE-1653] - Align AttrReleasePolicy with CAS ReturnAllowedAttributeReleasePolicy |
| * [SYNCOPE-1658] - Allow to view the topology in table format |
| * [SYNCOPE-1661] - Add sidebar layout customization thorugh JSON file to enduser |
| * [SYNCOPE-1666] - Security Answer encryption |
| * [SYNCOPE-1667] - Propagation Policy |
| * [SYNCOPE-1668] - Provide Entity Cache report and management |
| * [SYNCOPE-1669] - Create pull results for remediations |
| * [SYNCOPE-1670] - Support Graceful shutdown |
| * [SYNCOPE-1673] - Use Passay for password validation and generation |
| * [SYNCOPE-1674] - Optimize User, Group and Any Object lifecycle events management |
| * [SYNCOPE-1678] - Allow for non-recursive search operations |
| * [SYNCOPE-1679] - Allow to search by Auxiliary Any Type class assignment |
| * [SYNCOPE-1685] - Allow JEXL expression to evaluate to Object |
| * [SYNCOPE-1687] - Allow to configure External Resources not to pre-fetch objects during propagation |
| * [SYNCOPE-1689] - Consolidate Provision, Mapping and Items into single JSON column |
| |
| ** Task |
| * [SYNCOPE-1258] - Upgrade to Font Awesome 5 |
| * [SYNCOPE-1332] - Java 11 language features |
| * [SYNCOPE-1381] - Support user request from Enduser UI |
| * [SYNCOPE-1400] - Support MySQL 8 |
| * [SYNCOPE-1402] - Upgrade to Validation API 2.0 |
| * [SYNCOPE-1410] - Prepare code tree for 3.0 architecture |
| * [SYNCOPE-1435] - Upgrade to Bootstrap 4 / AdminLTE 3 |
| * [SYNCOPE-1464] - Upgrade to Apache Netbeans Maven dependencies |
| * [SYNCOPE-1486] - Upgrade maven-checkstyle-plugin to checkstyle 8.24 |
| * [SYNCOPE-1489] - Reorganize Travis CI to run the build suite in stages |
| * [SYNCOPE-1497] - Upgrade to Wicket 9 |
| * [SYNCOPE-1585] - Streamline existing components with WA |
| * [SYNCOPE-1618] - Use Constructor-level dependency injections |