Migrating to Unblu Spark 8
In addition to the new features introduced with Unblu Spark 8, there are several changes that you need to be aware of when migrating from Unblu 7.
No direct migration from Unblu 6 to Unblu Spark 8
Because of the changes made to the configuration system, it isn’t possible to migrate directly from Unblu 6 to Unblu Spark 8. You must migrate to Unblu 7 first.
Support for enterprise snippet removed
Earlier versions of Unblu provided an entry point to deliver JavaScript code, referred to as the "enterprise snippet", that initialized Unblu. This entry point was primarily intended for customers with on-premises application server deployments that used the SecureFlow Manager (SFM).
The enterprise snippet and the corresponding entry point have been removed in Unblu Spark 8. Customers that still use the entry point must adapt the configuration of the SecureFlow Manager to point to the URL of the Unblu visitor.js
or visitor.min.js
file instead.
No support for version 3 of the Unblu mobile SDKs
Unblu Spark 8 drops support for version 3 of the Android and iOS mobile SDKs.
No support for deployment on an application server
Earlier versions of the Unblu Collaboration Server could be deployed on-premises in two different ways:
-
On a Java application server such as IBM WebSphere Application Server or Apache Tomcat
-
In a Kubernetes or OpenShift cluster
Unblu Spark 8 no longer supports deployment on a Java application server. If you want to run Unblu on-premises, you must deploy it in a cluster.
Changes to supported database versions
The database versions Unblu Spark 8 runs on are different from those supported by Unblu 7. Review the list of supported database versions in Compatible databases before you start migrating.
MariaDB is no longer supported.
Changes to the Floating and Embedded JavaScript APIs
There have been a number of changes to the Floating and Embedded JS APIs:
-
Some elements have changed, for example the
ConversationInfo
interface. -
Some elements have been removed, for example the
Invitation
interface. -
There are also new components that provide support for Unblu Spark 8 features.
You should review your use of the Unblu JavaScript APIs and make sure it’s compatible with version available in Unblu Spark 8.
Refer to the references of the Floating JS API and Embedded JS API for more detailed information.
Changes to redirect validation
Validating the URLs users are redirected to is an important feature that provides a minimum level of security when using Unblu. You can specify patterns to filter permissible redirect URLs with the configuration properties com.unblu.redirectFilter.black and com.unblu.redirectFilter.white. The order in which the lists are evaluated is specified in com.unblu.redirectFilter.order.
In Unblu Spark 8, the default order in which URLs are evaluated against the patterns has been reversed. The default value of com.unblu.redirectFilter.order is now WHITE_BLACK
: the URL is first compared to the whitelist, then to the blacklist. URLs that pass the whitelist filter can thus still be blocked by the blacklist.
If you relied on the default value of com.unblu.redirectFilter.order for redirect validation, you must now explicitly set the property to BLACK_WHITE
.
For more information, refer to Managing redirects in Unblu.
Node migration improvements
In version 7 of Unblu, onboarding, reboarding, and offboarding processes weren’t migrated if the conversation they were related to had to be migrated to a different cluster node. If a participant was in the middle of a process when their conversation was migrated to a different node, they had to restart the process. This was particularly annoying for lengthy boarding processes, possibly involving multiple bots.
In Unblu Spark 8, boarding process are migrated along with the conversation they’re related to. As a result, the following text and configuration properties are no longer needed and have been removed from the product:
-
com.unblu.conversation.lifecycle.conversationBoardingMigrationAckMessageTime
-
com.unblu.conversation.message.boardingProcessImminentMigrationAcknowledgeMessage
-
com.unblu.conversation.message.boardingProcessImminentMigrationAcknowledgeButton
Dialog bot events
With the introduction of version 4 of the Unblu web API, all dialog bots use outbound web API events instead of webhooks. Each event has its own response schema. Only the response schema for offer events, BotBoardingOfferResponse
, has a well-defined body. For all other bot dialog events, you can respond with an empty JSON response.
For more information, refer to Dialog bots.
Changes to conversation configuration inheritance
In earlier versions of Unblu, conversations received a copy of the configuration and text properties of the conversation template they were created from.
In Unblu Spark 8, you can specify whether conversations should inherit changes made to the configuration and text properties of the template they’re based on after the conversation was created.
During migration, this feature is enabled for all conversation templates. However, the feature is only applied to conversations created after migration. Conversations created before the migration aren’t affected. They retain the configuration and text properties that were copied from the template when they were created.
For more information, refer to Conversation configuration inheritance.
Migration to new configuration entities
Unblu Spark 8 introduces new configuration entities for configuration and text properties. These configuration entities are then referenced by the entities that use the configuration. If two entities have the same configuration, they can reference the same configuration entity.
When you migrate from Unblu 7 to Unblu Spark 8, the new configuration entities are migrated and created dynamically in the background. There’s no additional step in the migration.
For more information, refer to New configuration entities.
Changes to file uploads
Unblu 7 uploaded files with the content type multiform/data
. Unblu 8 uses the content type application/octetstream
instead.
If you have a web application firewall (WAF) rule in place to divert file uploads to another application, such as an antivirus scanner, that rule will no longer work with Unblu 8. Instead, you must implement and configure a file interceptor to process the uploaded file and return the result to Unblu Spark.
For more information on file interceptors, refer to File interceptors.
Changes to configuration and text properties
-
A number of configuration and text properties have been renamed. For a complete list of the renamed properties and their new names, refer to Renamed configuration and text properties in Unblu Spark 8.
-
The default values of some configuration properties have changed. Many changes are related to the colors used in the Unblu UIs. Some of these changes are because the default value references another configuration property that’s been renamed.
For a list of the configuration properties with new default values, refer to Configuration properties with new default values.
-
The configuration property com.unblu.identifier.internalServerBaseUrl no longer defaults to the value of com.unblu.identifier.publicServerBaseUrl if it isn’t set. If you use features that use
internalServerBaseUrl
and haven’t set its value, set its value to that ofpublicServeBaseUrl
explicitly. -
A number of configuration and text properties have been removed from Unblu Spark 8. For a complete list of the dropped properties, refer to Dropped configuration and text properties.
To log how the configuration properties are migrated, set com.unblu.logging.level.com.unblu.core.server.core.storage.configuration.ConfigurationObjectServiceHelper
to TRACE
.
Renamed enum values
The following enum values have changed:
-
The invitation type
CONVERSATION_REQUEST
is now calledASSIGNMENT_REQUEST
. -
The activity category
LAYERS_COLLABORATION
is now calledCOLLABORATION_ON_LAYER
.
Changes to web API endpoints
Unblu Spark 8 includes version 4 of the web API. Compared to version 3, a number of endpoints have changed.
The following endpoints have been removed:
-
/accounts/isAccountNameAvailable
-
/addresses/*
(all endpoints in the/addresses
path have been removed) -
/authenticator/changePassword
-
/authenticator/changePasswordAgainstPolicy
-
/authenticator/checkSuperAdminPasswordFile
-
/authenticator/getAuthenticatedUserDisplayName
-
/authenticator/getAuthenticatedUserName
-
/authenticator/getCompactUser
-
/authenticator/getUserId
-
/authenticator/getUserPermissions
-
/authenticator/getUserRole
-
/authenticator/isAuthenticated
-
/authenticator/isRegisteredUser
-
/authenticator/isSUperAdmin
-
/authenticator/sendPasswordResetMail
-
/authenticator/setNewPassword
-
/availability/isAgentAvailable
-
/avatars/create
-
/bots/acceptDialogOffer
-
/bots/declineDialogOffer
-
/cannedresponses/getCannedResponsesAvailableForChat
-
/cannedresponses/getWritableConfigurationScopes
-
/cannedresponses/getWritableConfigurationScopesAvailableForChat
-
/contacts/*
(all endpoints in the/contacts
path have been removed) -
/conversationhistory/searchMessages
-
/domains/getAccountDomainsAsString
-
/fileinterceptors/validateMimeTypeRegex
-
/messageinterceptors/approveMessage
-
/messageinterceptors/rejectMessage
-
/services/*
(all endpoints in the/services
path have been removed) -
/teams/getByParentId
-
/teams/getChildTeamIds
-
/teams/getTeamOfCurrentUser
-
/teams/teamIsChildOfOtherTeam
-
/users/doesUserLoginExist
-
/users/isSuperUser
-
/users/isUsernameAvailable
-
/users/updateWithPassword
-
/webhookcalllogs/*
(all endpoints in the/webhookcalllogs
path have been removed)
The following endpoints have been replaced:
-
/accountsecrets/getCurrentAccountSecret
has been replaced by/accounts/{accountId}/getAccountSecret
. -
/apikeys/getDefaultForAccountId
has been replaced by/apikeys/getDefault
. -
/call/
endpoints have been replaced by endpoints with the same name in the/calls/
path. -
/conversationhistory/getRecordedMinutes
has been replaced by/accounts/getRecordedMinutes
and/global/getRecordedMinutes
. -
/externalmessengers/pingCustomChannel
has been replaced by/externalmessengers/sendPing
. -
/persons/searchByState
has been replaced by/persons/searchAgentsByState
and/persons/searchVisitorsByState
-
/suggestionsources/pingOutboundEndpoint
has been replaced by/suggestionsources/{suggestionSourceId}/sendPing
. -
/users/createUserWithRandomPassword
has been replaced by/users/createWithRandomPassword
-
/users/userHasPassword
has been replaced by/users/{userId}/hasPassword
. -
/users/updateAndRemovePassword
has been replaced by/users/{userId}/removePassword
. -
/users/updatePassword
has been replaced by/users/{userId}/setPassword
. -
/users/updateUserWithRandomPassword
has been replaced by/users/{userId}/setRandomPassword
. -
All
/*/getQuotaUsage
endpoints have been replaced by/accounts/getQuotaUsage
which lets you specify the entity—the API key or domain, for example—that you’re interested in. -
All
//pingWebhook
endpoints have been replaced by/
/{EntityId}/sendPing
. For example,/bots/pingWebhook
has been replaced by/bots/{dialogBotId}/sendPing
.
For more detailed information, including about the differences between old and new endpoints, refer to the Unblu web API reference.
See also
-
For information on the new features in Unblu Spark 8, refer to What’s new in Unblu Spark 8