Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.4.0] - 2022-07-07

Added

  • Add monitoring endpoint to count disconnected websockets

  • Add Kubernetes compatible health checks

Fixed

  • Minor bug fixes spotted by static code analyses

Changed

  • Add incremental delay when retrying on server error response from third party service

  • Add timeout when connecting on websocket, so that it won’t wait forever on failing connection

[2.3.1] - 2022-06-13

Added

  • Add support for app users with multiple clientIds in v2 cti-app-context endpoint

[2.3.0] - 2021-04-07

Added

  • Add support for app users with multiple clientIds

Changed

  • Update to JDK 17

  • Update to EE4j/Jakarta 9.1

  • Update to Microprofile 5.0

  • Update OpenLiberty image

[2.2.2] - 2021-12-13

Changed

  • Bump OWASP ESAPI dependency

[2.2.1] - 2021-12-09

Changed

  • Improve resilience when receiving 5xx responses from third parties by retrying a number of times to perform the API call

[2.2.0] - 2021-10-25

Added

  • New eventUriMappings resource allowing GET and PUT methods

[2.1.3] - 2021-06-02

Changed

  • Update openliberty image

[2.1.2] - 2021-02-10

Fixed

  • Updating refresh token in database when receiving it as part of an access token refresh

[2.1.1] - 2020-11-25

Changed

  • Updating clientId and clientSecret in addition to access and refresh token when reposting same user

[2.1.0] - 2020-10-15

Added

  • Add ExternalApiEndpoint resource to v2 resources

[2.0.6] - 2020-09-04

Changed

  • Improve logging

Fixed

  • AppUserContext entity not refreshed in v1 WAR when changed via v2 WAR

[2.0.5] - 2020-05-22

Fixed

  • AppUserContext entity not refreshed in v1 WAR when changed via v2 WAR

[2.0.4] - 2020-05-20

Fixed

  • Remove handler v1 dependency from resource v2 package

[2.0.3] - 2020-05-19

Fixed

  • Add missing sl4j error logging messages which were mistakenly removed

[2.0.2] - 2020-05-19

Fixed

  • Double Websocket startup listener causing race conditions when establishing Websocket connections

  • Map javax.ws.rs.NotFoundException to 404 status instead of 500

  • Print REST response of external API calls.

  • Exception not correctly logged in archived file logs

[2.0.1] - 2020-04-30

Fixed

  • Refresh token should be refreshed also on non 401 resource responses

[2.0.0] - 2020-04-20

Changed

  • New security mechanism introduced with v2 resources

Deprecated

  • Resources with non versioned URLs are deprecated, only v2 URLs will be available in the future

[1.15.4] - 2020-04-01

Changed

  • Improve error logging when receiving non 200 responses

[1.15.3] - 2020-01-27

Fixed

  • Fix case sensitivity when searching for xelion user in database, is case insensitive now.

  • Fix issue when updating existing user in appuser context.

Fixed

  • Fix refresh token of Exchange user was not updated, when app was posting new one.

[1.15.2] - 2020-01-27

Fixed

  • Fix refresh token of Exchange user was not updated, when app was posting new one.

[1.15.1] - 2019-11-06

Fixed

  • Singleton TimerService was causing deadlock, changed it to Stateless

[1.15.0] - 2019-11-05

Changed

  • Use Java 11 for compilation and in open-liberty web server

Fixed

  • Concurrency and timer issues when connnecting and disconnecting from websockets

[1.14.1] - 2019-09-26

Changed

[1.14.0] - 2019-09-10

  • Added support for HTTP patch, delete, put external API calls.

  • Changed CrmIntegrationResource post user validation against Xelion server; is no longer case sensitive

[1.13.0] - 2019-07-12

  • Filter websocket notifications which contain same calleePhoneNumber and callerPhoneNumber

  • Change client_secret to optional when non websocket modus (e.g. exchange integration) is used

[1.12.2] - 2019-07-05

  • Encode spaces in query params passed to external APIs as '%20' instead of '+'

[1.12.1] - 2019-06-13

  • Fixed object used by timer was not serializable

[1.12.0] - 2019-06-13

  • In AdminWebSocketResource changed response by adding whole RestEventUriMapping object

  • Renamed oauth and oauthconnector project and package names to cti

[1.11.5] - 2019-06-11

  • Fixed wrong database ID when creating model object

[1.11.4] - 2019-06-03

  • Added support for Microsoft x-www-form-urlencoded way of refreshing tokens

[1.11.3] - 2019-06-03

  • Fixed stackoverflowerror when validating long string

[1.11.2] - 2019-06-03

  • Fixed xelion context URL for API Token verification

[1.11.1] - 2019-06-03

  • Fixed xelionUserOid mandatory in cti-app-context resource

[1.11.0] - 2019-06-03

  • Added CtiAppContext resource

  • Added ExternalApiEndpoint resource

  • Add crmContext_id as unique database constraint in UserCredentialsEntity

[1.10.1] - 2019-05-28

  • Fixed encoding of query parameters in crmResourceURI

[1.10.0] - 2019-05-15

  • Removed Xelion events validation

[1.9.1] - 2019-04-26

  • Fix CreationDate not serializable exception when websockets automatically reconnect

[1.9.0] - 2019-04-16

  • Automatic Websocket reconnection if websocket is terminated on the remote

  • Added CRM integration creation date field

  • Added Usercredentials creation date field

[1.8.0] - 2019-03-28

  • Added new resources to the Admin API interface

    • admin/crm-integrations/id/crm-contexts/id/user-credentials - GET method

    • admin/users - DELETE method

  • Added "used" boolean column to database

  • Improved logging when deleting a resource

  • Fix "unused not persisted" bug when starting up application

[1.7.0] - 2019-03-18

  • Added support for EL expressions(e.g. template literals) in variables present in the crmResourceUri and crmResourcePayload fields

  • New field call duration added which can be used when calling external CRM APIs

  • Wrap error plain text messages in JSON message

  • Security improvement: Encryption of sensitive fields in database

  • Added new resources to the Admin API interface

  • Some bug fixes in websocket connections during startup

[1.6.2] - 2019-03-05

  • Fixes in connecting to websockets during startup

[1.6.1] - 2019-02-12

  • Fix URL path regression for Admin API interface

[1.6.0] - 2019-02-12

  • Added the following new resources and subresources

    • /users resource - supported methods GET, DELETE, PUT - allows to retrieve, delete and update information about a user

      • /users/<userid>/clientid/update action - method POST - allows to update the user Oauth 2.0 clientid

      • /users/<userid>/clientsecret/update action - method POST - allows to update the user Oauth 2.0 clientsecret

      • /users/<userid>/refreshtoken/update action - method POST - allows to update the user Oauth 2.0 refreshtoken

      • /users/<userid>/devicecode/update action - method POST - allows to update the user Oauth 2.0 devicecode

    • /xelion-environment resource - supported methods GET, PUT - allows to retrieve and update information about a xelion context

      • /xelion-environment/<xelionContextId>/admin/username/update - method POST - allows to update the xelion Admin username

      • /xelion-environment/<xelionContextId>/admin/password/update - method POST - allows to update the xelion Admin password/update

  • /crm-integrations POST method - userCredentials object is now optional and can therefore be omitted

  • /crm-integrations/<xelionContextId>/crm-contexts/<crmContextId>/user-credentials POST method - returns userIds and other info of created users

  • /crm-integrations/<xelionContextId>/crm-contexts/<crmContextId>/user-credentials Resource - added new GET method to retrieve information about the users e.g. the userId

[1.5.0] - 2018-11-14

  • Added POST session/login resource to retrieve an API authentication token

  • Following resources need an Authorization HTTP Header with the API token prefixed by "xelion " as value, e.g. (Authorization:"xelion xxxxxxxxxxxx"):

    • GET /crm-integrations

    • DELETE /crm-integrations

    • POST /crm-integrations/<xelionContextId>/crm-contexts/<crmContextId>/user-credentials

  • Removed HTTP support (REST services are now only available via HTTPS).

[1.4.0] - 2018-11-05

  • Added oauth-connector domain

  • Added SSL support

  • Removed DELETE by host/tenant combination

  • Bug fixes

[1.3.0] - 2018-10-25

  • POST /crm-integrations now returns a body with IDs. You can use in other requests to add new xelionUsers

  • Added new POST /crm-integrations/<xelionContextId>/crm-contexts/<crmContextId>/user-credentials Resource, which allows to add new users to an existing XelionContext and CrmContext

  • Added new GET /crm-integrations?xelionHost=<domain name or IP address>&xelionTenant=<tenantName> with which you can retrieve some information like relevant IDs

  • Added new DELETE /crm-integrations/<xelionContextId> which deletes the whole crmIntegration, including the xelionContext, crmContext, userCredentials and eventUriMappings

  • Old DELETE with host tenant combination is deprecated and if you’re not already using it, I will remove it next week. Please let me know if you are not ok with this.