Installation
This guide covers Portal installation, configuration, and migration procedures. Whether you’re installing Portal for the first time or upgrading from a previous version, follow the appropriate sections below.
Overview
Installation Type |
Description |
|---|---|
Basic Installation |
First-time Portal setup with initial configuration |
Migration |
Upgrade existing Portal to a new version |
Multi-App Setup |
Deploy Portal across multiple applications |
Important
For first-time installations, follow the Basic Installation section. For existing Portal installations, refer to Migration Notes.
Basic Installation
Prerequisites
Axon Ivy Designer or Engine
Understanding of Portal architecture
For production: Valid Axon Ivy Engine license
Portal Modules
The Portal application consists of 2 process modules:
Module |
Purpose |
|---|---|
portal-components |
Public UI components and APIs for reuse |
portal |
Portal-specific UI, templates, and pages |
For detailed module information, refer to Architecture.
For project deployment procedures, see project deployment.
Installation by Environment
Designer
Import Portal modules (portal and portal-components) or download from The Axon Ivy Marketplace to your Axon Ivy Designer.
Demo Mode (Engine Without License)
The engine automatically deploys the Portal application with pre-configured demo users:
Username |
Password |
Description |
|---|---|---|
admin |
admin |
Full Portal permissions, can access Admin Settings |
demo |
demo |
Can manage user absences |
guest |
guest |
Standard Portal user |
Warning
Demo users are for development/testing only. Do not use in production environments.
Production Mode (Engine With License)
The engine does not deploy Portal automatically. You must deploy and configure Portal manually.
Dashboard Configuration
For dashboard configuration methods (deployment files, Engine Cockpit UI, or Portal import), see Dashboard Configuration in the Deployment guide.
Multi-Application Setup
Portal supports multi-application deployment where Portal and your business applications run separately within the same security context, enabling unified task and case management.
Architecture:
Application 1 (Portal): portal + portal-components
Application 2+ (Your Apps): your projects + portal-components (only if using Portal UI components)
Important
All applications must be in the same security context for Portal to display tasks and cases from all applications.
For detailed multi-app architecture and step-by-step deployment instructions, see Deployment.
Migration Notes
This document informs you in detail about incompatibilities that were introduced between Portal versions and tells you what needs to be done to make your existing Portal working with current Axon Ivy Engine.
How To Migrate
Important
If you call any Portal API which is not mentioned in the API documentation, it may have changed or have been removed. Don’t forget to re-implement the APIs concerned in your own project.
To migrate the Portal, you need to migrate Axon Ivy first. Refer to the Axon Ivy Migration Notes. Changes in Axon Ivy could lead to problems if a customer project is not migrated properly.
In Designer
Replace all Portal projects with the versions of the new release.
Upgrade your projects to use the latest portal version by using the Convert Project feature. Please find more information here: Converting Projects
Follow detailed migration notes for each version below.
If customization needs copying code from Portal, merge changes between the two versions of the Portal for copied code.
In Engine
Convert database schema if needed.
Redeploy Portal projects and customer project.
Follow detailed migration notes for each version below.
Migrate 11.3.2 To 12.0.0
1. Custom field values for business details pages are migrated silently from the process link relative path to its IWebStartable ID. You don’t need to do anything, this is just for your information.
2. We implemented a new feature to adjusting column widths in the Task and Case widgets. This change may slightly impact the column widths of Task and Case widgets from previous versions. To manually adjust column widths, please refer to the Task widget configuraiton, and Case widget configuraiton guides.
Migrate 11.1.0 To 11.2.0
The AxonIvyExpress module is renamed to axonivy-express and becomes an item on the Axon Ivy Market, To migrate it you need to do the following steps:
Open Portal, go to Setting -> Express Management. Export all Express configurations.
Open the Cockpit, stop the PM AxonIvyExpress in your Portal application.
Deploy the axonivy-express module which gets from the Axon Ivy Market into the Portal application.
Restart Engine.
Open Portal, go to Setting -> Express Management. Import the configuration which is exported at the first step.
If you override
PortalStartTimeCleanObsoletedDataExpressionvariable, please update it to new Ivy CRON job pattern.Refer to Axon Ivy CRON job pattern: CRON Expression.
Example: Change
0 0 1 * * ?to0 1 * * *for job trigger 01:00 AM everyday.
Migrate 10.0.19 To 10.0.20
So far, Portal supports configuring process steps of Process chain with String or Array format. We deprecated the String format but still support it for backward compatibility. We recommend you use the Array format. You could change as follows:
Change
window.processSteps = "Create Investment Request,Approve Investment Request";towindow.processSteps = ["Create Investment Request", "Approve Investment Request"];Change
window.processSteps = "#{fn:join(data.steps.toArray(), ',')}";towindow.processSteps = #{portalComponentUtilsBean.convertToJSON(data.steps)};
Migrate 10.0.12 To 10.0.13
Override HTML dialog
UserWithEnvironmentInfois removed and no longer supported, useGlobalFooterInfodialog instead with the GlobalVariable.Override HTML dialog
PageHeaderandPageFooterare no longer supported, use callable instead.
Migrate 10.0.11 To 10.0.12
Portal no longer supports the override process approach for some subprocesses. Please follow the guidelines below to migrate your override subprocesses.
- Customize Forgot Password
Remove subprocess override of
ResetPasswordandSendPasswordResetEmail`from your project.Change the signature of your callable start as described below.
Subprocess
New signature
ResetPassword
portalResetPassword
SendPasswordResetEmail
portalSendPasswordResetEmail
- Document Processes
Remove subprocess override of
GetDocumentList,UploadDocument,DeleteDocument, andDownloadDocumentfrom your project.Change the signature of your callable starts as described below.
Subprocess
New signature
GetDocumentList
portalGetDocumentList
UploadDocument
portalUploadDocument
DeleteDocument
portalDeleteDocument
DownloadDocument
portalDownloadDocument
- Customize Logout Process
Remove subprocess override of
LogoutPageandLogoutfrom your project.Change the signature of your callable start as described below.
Subprocess
New signature
LogoutPage
portalGetLogoutPage
Logout
portalLogout
- Customize Change Password Process
Remove subprocess override of
ChangePasswordfrom your project.Change the signature of your callable start as described below.
Subprocess
New signature
ChangePassword
portalChangePassword
- Task Delegation
Remove subprocess override of
CalculateTaskDelegatefrom your project.Change the signature of your callable start as described below.
Subprocess
New signature
CalculateTaskDelegate
portalCalculateTaskDelegate
- Customize Menu Items
Remove subprocess override of
LoadSubMenuItemsfrom your project.Change the signature of your callable start as described below.
Subprocess
New signature
LoadSubMenuItems
portalLoadSubMenuItems
To hide default menu items, you can utilize variables. Here’s a link Show/hide default menu items that provides instructions on how to do so.
Update
indexfor each custom menu item.Refer to process
CustomLoadSubMenuItemsin the projectportal-developer-examplesfor an example of how to create custom menu items.
We changed the External Link configuration for the field
imageContent, refer to Portal Processes External Links for more information. Basically, you do not need any migration on your engine. In case you have overridden the variable Portal.Processes.ExternalLinks by deployment, update the fieldimageContentby removing the prefix like data:image/jpeg;base64, in your JSON variable Portal.Processes.ExternalLinks file.
Migrate 10.0 To 10.0.7
The ch.ivy.addon.portalkit.publicapi.PortalNavigatorInFrameAPI class is removed and no longer supported, use
com.axonivy.portal.components.util.PortalNavigatorInFrameAPI instead.
Migrate 8.x To 10.0
You need to do all steps starting at Migrate 8.x To ... up to and including
Migrate ... To 9.x
Migrate 9.3 To 9.4
PortalStyle, PortalKit and PortalTemplate have been replaced by portal-components and portal from 9.4, refer to Architecture.
If you have customized PortalStyle, please refer to Customization Portal Logos And Colors to override login background, favicon & logo images. If you have changed the CMS in
PortalStyle, please adapt theportalCMS accordingly.The
customization.cssfile has been removed, in case you use it in your project, please switch to using Engine Branding to customize stylingSubprocesses related to documents are moved to the independent project
portal-components. If you customized these processes, please override the correspond subprocess again and added your customization to it.Below is a list of deprecated processes in project
portaland new processes in projectportal-components.New subprocess
Deprecated subprocess
GetDocumentItems
GetDocumentList
UploadDocumentItem
UploadDocument
DeleteDocumentItem
DeleteDocument
DownloadDocumentItem
DownloadDocument
Some classes of the Portal have been moved to the independent project
portal-components. Please refer to below table to migrate them correctlyPortalKit
portal-components
ch.ivy.addon.portalkit.dto.RoleDTO
com.axonivy.portal.components.dto.RoleDTO
ch.ivy.addon.portalkit.dto.SecurityMemberDTO
com.axonivy.portal.components.dto.SecurityMemberDTO
ch.ivy.addon.portalkit.dto.UserDTO
com.axonivy.portal.components.dto.UserDTO
ch.ivy.addon.portalkit.ivydata.bo.IvyDocument
com.axonivy.portal.components.ivydata.bo.IvyDocument
ch.ivy.addon.portalkit.document.IvyDocumentTransformer
com.axonivy.portal.components.document.IvyDocumentTransformer
ch.ivy.addon.portalkit.enums.DocumentType
com.axonivy.portal.components.enums.DocumentType
ch.ivy.addon.portalkit.enums.BasicDocumentType
com.axonivy.portal.components.enums.BasicDocumentType
ch.ivy.addon.portalkit.enums.UploadDocumentCheckStatus
com.axonivy.portal.components.enums.UploadDocumentCheckStatus
Some components of the Portal have been moved to the independent project
portal-components. Please follow these steps to migrate them:Migration steps for the new User Selection component.
Migration steps for the new Role Selection component.
Migration steps for the new Document Table component.
Migration steps for the new Process Chain component.
Portal dashboard widgets only support the
CustomFieldsdeclared in thecustom-fields.yamlfile. If yourCustomFieldsare used in the dashboard widget, please follow the Custom Fields Meta Information to adapt the data.The
DefaultChartColor.p.jsonsubprocess has been removed, in case you use it in your project, please remove override this subprocess and switch to using Engine Branding to customize chart, data labels, legend color.Deploy
portal-migration-9.4.0.iarproject to your Ivy application and run it by access linkyour_host/your_application/pro/portal-migration/175F92F71BC45295/startMigrateConfiguration.ivpImportant
If you have many applications, deploy to only one application and run it by access the migration link, for example:
https://portal.io/Portal/pro/portal-migration/175F92F71BC45295/startMigrateConfiguration.ivpUse an administrator account to sign in
Run migration process only once
You must remove some process models:
portal-migration,PortalStyle,PortalKitandPortalTemplateafter successfully migrating.
Migrate 9.2 To 9.3
Deploy
portal-migration.iarproject to your Ivy application and run it by access linkyour_host/your_application/pro/portal-migration/175F92F71BC45295/startMigrateConfiguration.ivpImportant
If you have many applications, deploy to only one application and run it by access the migration link, for example:
https://portal.io/Portal/pro/portal-migration/175F92F71BC45295/startMigrateConfiguration.ivpUse an administrator account to sign in
Run migration process only once
We changed the way to navigate to Task Analysis component. Process
Start Processes/TaskAnalysis/start.ivpis moved to new placeStart Processes/PortalStart/showTaskAnalysis.ivp.We moved the configuration of announcement, thirdparty applications, default statistic charts, application favorite processes, public external links and express processes from the BusinessData tovariables.
Copy the PortalStart process from PortalTemplate to your project because we changed something relate to DefaultApplicationHomePage.ivp and PortalDashboardConfiguration.ivp. Then apply your customization to the PortalStart in your project.
Portal date filter such as TaskCreationDateFilter, CaseCreationDateFilter… messages
<p:messages for="..." />have been added for each calendar component to validate date format. If you use have any customized date filters in your project, update template accordingly.The callable process
DefaultChart.p.json,DefaultUserProcess.p.jsonhas been removed. They are replaced by the Variables configuration approach.
Migrate 9.1 To 9.2
Deploy
MigrateData.iarproject to your Ivy application and run it by access linkyour_host/your_application/pro/MigrateData/175F92F71BC45295/startMigrateConfiguration.ivpIf you have many applications, deploy to only one application and run it by access link
your_host/your_application/pro/MigrateData/175F92F71BC45295/startMigrateConfiguration.ivpExample:
https://portal.io/Portal/pro/MigrateData/175F92F71BC45295/startMigrateConfiguration.ivpImportant
Run migration process only once
We remove implementation of Portal multiple applications. So that you need to adapt some points below:
Adapt start process signature of
PasswordServiceinChangePassword.modif you overrode this callable.If you are using
ProcessStartCollector, replace constructorProcessStartCollector(application)withProcessStartCollector().If you have TaskLazyDataModel, CaseLazyDataModel customization, remove
setInvolvedApplications()method,setInvolvedUsernamein search criteria.
In PortalNavigatorInFrame.java, change the methods from non-static to static.
CaseDetails component in PortalTemplate is removed.
Deprecated callable processes:
OpenPortalSearch.mod,OpenPortalTasks.mod,OpenPortalTaskDetails.mod,OpenPortalCases.mod,OpenPortalCaseDetails.modprocess.Portal recommends using Axon Ivy HtmlOverride wizard to customize
Portal HTML DialogImportant
The callable process which is supporting to open customization dialog will be removed in the future, do not use it in the new project
We remove ivy-icon.css and replace current classes with new classes from Streamline icons, which can be found in the HTML Dialog Demo. So that you need to update your files that are using classes in ivy-icon.css.
If you have taskItemDetailCustomPanelTop, taskItemDetailCustomPanelBottom customization, follow How to override TaskItemDetail to add custom widgets.
If you have
caseItemDetailCustomToporcaseItemDetailCustomMiddleorcaseItemDetailCustomBottomcustomization, follow How to override CaseItemDetail to add these custom widgets.
Migrate 8.x To 9.1
Remove the
viewsfield in SubMenuItem.java. Adapt it if you overrode theLoadSubMenuItemscallable processAdd parameter
<ui:param name="viewName" value="TASK" />to your customizedPortalTasksTemplateto displayed breadcrumb of Task list.Add parameter
<ui:param name="viewName" value="CASE" />to your customizedPortalCasesTemplateto displayed breadcrumb of Case list.Ivy core has enhanced the Ivy URI, so Portal needs to make a migration. For each of your applications, execute the following steps:
Deploy process model
PortalUrlMigration.iarto your Ivy Application.run
migratePortalUrl.ivponce and wait until it is redirected to another page (i.e. the Homepage) without error.Remove the process model
migratePortalUrl.ivpafter successfully migrating.
HOMEPAGE_URL (single Portal app mode) and registered application link (multi Portal app mode) are not available anymore. To let Portal know where your new Portal home page is, you have to set default pages in your project. Follow this chapter to customize default-pages: Default Pages
Portal now uses CSS Variable instead of SASS. Therefore, you have to convert the SASS syntax to the new CSS variables or use online tools such as SASS to CSS Variables to convert it.
If the Engine Administrator activates the
Portal.Cases.EnableOwnersetting and you have a customized case list, customize this field to this case list, e.g. add filter, column configuration, header.Starting in 9.1, the Ivy engine uses a new mechanism to synchronize user data. Therefore, the Portal has to adapt some data related to users. Some data has to be migrated to work properly. Please follow these steps to migrate the existing data of your application:
Deploy process model
MigrateRelatedDataOfUserTo9.iarto your application.Run
migratePrivateChat.ivpto migrate private chat messages.Run
migrateGroupChat.ivpto migrate group chat.Run
migrateUserProcessesAndExternalLinks.ivpto migrate user processes and external links.Run
migrateExpressProcesses.ivpto migrate Express processes. Please skip this step if your application does not include Express.Restart Ivy engine.
Use
pageContentto define your section inBasicTemplate.xhtmlinstead ofsimplePageContent.TaskTemplate-7has been removed, change it toTaskTemplate-8.TaskTemplatehas been removed, too, change it toframe-8(provided by Ivy).The
MenuKindenum has one more entry: EXTERNAL_LINK. Use it if your item is an external link. Use CUSTOM if it is an internal link.The
PortalNavigatorInFrameAPI#navigateToPortalHomemethod is deprecated, redirect to ivy.html.applicationHomeRef() in your page instead.
Migrate 8.x To 9.x
You need to do all steps starting at Migrate 8.x To ... up to and including
Migrate ... To 9.x
Release notes
This part lists all relevant changes since the last official product releases of Axon Ivy.
Changes in 12.0.11
Enhanced the document preview feature for the task and case detail. If you have DocFactory in the same security context, you can preview Word(doc, docx), Excel(xls, xlsx) and email(eml) documents.
Enhanced the Document Table component by adding the lazy loading functionality to the Document Table component, enabling efficient data loading through pagination.
Changes in 12.0.9
Introduced Renaming Document feature for the task and case detail. You can rename document in document table of task and case detail page, and the activity will be logged in history notes.
Enhanced the document preview feature for the task and case detail. If you have DocFactory in the same security context, you can preview Word(doc, docx), Excel(xls, xlsx) and email(eml) documents.
Changes in 12.0.6
Introduced the Portal Setting
Portal.Cases.EnablePinnedCaseandPortal.Tasks.EnablePinnedTaskto enable the pinning feature for the case and task widgets on the dashboard.
Changes in 12.0.4
Introduced the Portal Setting
Portal.Cases.BehaviourWhenClickingOnLineInCaseListto toggle between accessing case details or business details when clicking on a case in the case widget on the dashboard, global search, related cases, and the process widget in combined mode.
Changes in 12.0.1
Introduced the document preview feature for the task and case detail. You can preview images(png or jpeg), plain text(txt or log) and pdf documents.
Introduced the Portal Setting
Portal.Document.EnablePreviewto control visibility of the preview document icon in Portal.
Changes in 12.0.0
The old statistic chart is removed, use the new Statistic Chart instead.
Introduce the component IFrameTaskConfig to configure IFrame tasks. Refer to Configure IFrame Template for more information.
The full task list page and full case list page have been redesigned to align with the concept of a dashboard widget. It now functions as a dashboard with a single, full-width widget. To configure it, you can adjust it like any other widgets.
Support multiple case owners. The single case owner sort feature is removed.
Changes in 11.2.0
The
ch.ivy.addon.portalkit.publicapi.ApplicationMultiLanguageAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.ApplicationMultiLanguageAPIinstead.The
ch.ivy.addon.portalkit.publicapi.CaseAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.CaseAPIinstead.The
ch.ivy.addon.portalkit.publicapi.PortalGlobalGrowInIFrameAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.PortalGlobalGrowInIFrameAPIinstead.The
ch.ivy.addon.portalkit.publicapi.PortalNavigatorAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.PortalNavigatorAPIinstead.The
ch.ivy.addon.portalkit.publicapi.ProcessStartAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.ProcessStartAPIinstead.The
ch.ivy.addon.portalkit.publicapi.RoleAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.RoleAPIinstead.The
ch.ivy.addon.portalkit.publicapi.TaskAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.TaskAPIinstead.The
com.axonivy.portal.components.util.PortalNavigatorInFrameAPIclass is removed and no longer supported, usecom.axonivy.portal.components.publicapi.PortalNavigatorInFrameAPIinstead.Introduced the sort feature for the process dashboard widget. User can sort the processes by index, alphabetical order or by custom order.
Introduced the
taskIdparam for the componentic:com.axonivy.portal.components.ProcessViewerto highlight the current step in the Process Viewer.Portal Legacy dashboard has been removed.
The
AxonIvyExpressmodule is renamed toaxonivy-expressand becomes an item on the Axon Ivy Market.
Changes in 10
Introduced the
Applicationfilter and theApplicationcolumn in the following places: full task list, full case list, dashboard task list, dashboard case list, and task analysis.
Changes in 9.4
Combined projects
PortalStyle,PortalKit, andPortalTemplateto one project namedportal.Introduced the
Portal.Tasks.BehaviourWhenClickingOnLineInTaskListPortal setting to set behaviour when clicking on a line in task list, task widget in new dashboard and related tasks in case details, each user can change it via user profile.Introduced the
Portal.StatisticChartScalingIntervalPortal setting to set the interval in seconds to do periodic statistic chart scaling requests.Introduced the
Portal.LoginPage.ShowFooterPortal setting to control visibility of the footer on the login page.Introduced the
Portal.Theme.ModePortal setting to set the default theme mode: Light or Dark.Introduced the
Portal.Theme.EnableSwitchThemeModeButtonPortal setting to control state of the switch theme button on the top-bar.Introduced new
Task ID,Task Name,Case IDandCase Namefilter in the Portal full task list and case list.Introduced the
Process Viewerpage, user can get the visual viewer of the process start. See details Show Process ViewerIntroduced the
Formatting language settingto format values, for example the decimal separator is displayed differently in different regions of the world.Removed subprocess
DefaultChartColor.p.json, introduced some Portal variables for customizing the default chart color.Introduce some components in new
portal-componentsproject.
Changes in 9.3
No need to update PortalGroupId variable when you change group id of Portal.
Changes in 9.2
Included new TaskState such as
Destroyed,Failed,Join failedandWaiting for eventin Portal Task list, also in Task State filter.Included new CaseState
Destroyedin Portal Case list, also in Case State filter.Introduced Workflow Events table, user who has permission 🔑WorkflowEventReadAll can see all
WORKFLOW_EVENTS.Introduced the
Portal.HomepagePortal setting to set the default homepage, each user can change it via user profile.Introduced new approach to customize Portal Case Item details. Now, your case information in Case details page and Case Info dialog is the same
Introduced new approach to customize Portal Task Item Details.
Introduced new Portal Setting
Portal.ShowButtonIconto control visibility of icon of button in Portal.Introduced new variable named
PortalLoginPageDisplayto show Login page or hide it then show error page instead.No multiple applications anymore, Portal now only works in current application. It means administrator can not add new Ivy application.
Statistic charts support multiple names for each supported languages.
Portal supports multilingual user favorites
Portal supports logos in SVG format.
Changes in 9.1
Refactored style customization approach. From now on, Portal use CSS Variable as technology to customize CSS.
Introduced new Portal Setting
Portal.ShowButtonIconto control visibility of icon of button in Portal.Introduced new Portal dialog with icon decorator.
TaskTemplate-7, TaskTemplate and TwoColumnTemplate have been removed.