Axpert Release Notes February 2023
Axpert Release Notes February 2023
Axpert Web
RELEASE NOTES
FEBRUARY 2023
Axpert – Release Notes
Table of Contents
Chapter 1. What’s New in 11.2.1 ................................................................................... 4
Note for upgrade ....................................................................................................... 4
Axpert Configuration Studio for runtime ................................................................... 4
Axpert Rules ............................................................................................................. 6
Introducing Process Execution Engine (PEG) .......................................................... 7
Add and Remove fields in the existing form on the run site ..................................... 8
Add and Remove Form with button click on the run site ........................................ 10
Toggle for Set Defult view introduced from List View ............................................. 12
Zoom in using google map to cover nearby areas ................................................. 13
Check Box component to be displayed in the List View ......................................... 15
Created on, created by, modified on, modified by introduced as part of listview columns 15
Validation error messages based on language selected during login .................... 15
UI SCSS Custom Hook file along with Bootstrap 5 SCSS compiler ...................... 16
Easy signin template based on projects ................................................................. 16
Separate Sign In page to accept username and password.................................... 16
Internal SSO key creation and automatic login ...................................................... 17
Redis Connections at application level ................................................................... 18
Chapter 2. What’s new in 11.1.1 ................................................................................. 19
SSO integration through Azure AD ......................................................................... 19
Enhanced Keep me sign-in functionality ................................................................ 19
Save and print in mobile app .................................................................................. 19
UI Configuration ...................................................................................................... 19
Chapter 3. What’s new in 11.1 .................................................................................... 21
Axpert Configuration on web .................................................................................. 21
Application Properties ............................................................................................. 22
List View Designer for Smartviews ......................................................................... 23
Capture signature in Axpert .................................................................................... 23
Download files from Iviews ..................................................................................... 24
Chapter 4. What’s new in 10.9 .................................................................................... 26
Server Based Licensing for Axpert Web Applications ............................................ 26
Modern SmartView’s ............................................................................................... 28
Notifications for Long Running Webservice’s ......................................................... 33
File Upload in TStruct ............................................................................................. 35
Login ....................................................................................................................... 37
User Manual ........................................................................................................... 48
Auto Save Draft Enhancements ............................................................................. 50
Hybrid Application ................................................................................................... 50
Customization ......................................................................................................... 50
Application Level Compressed Mode ..................................................................... 52
Breadcrumb Title .................................................................................................... 52
Export to Excel option in TStruct Grid .................................................................... 52
Chapter 5. What’s New in 10.8? .................................................................................. 53
Note for upgrade ..................................................................................................... 53
AES Encryption ....................................................................................................... 53
HTTPS support ....................................................................................................... 53
Slick home page ..................................................................................................... 53
Attachments ............................................................................................................ 53
<configSections>
<section name="botDetect" requirePermission="false"
type="BotDetect.Configuration.BotDetectConfigurationSection, BotDetect" />
</configSections>
• To avoid this error, move the code snippet as the first element under the configuration section.
For example
<?xml version=”1.0” encoding=” utf-8”?>
<configuration>
<configSections>
<section name="botDetect" requirePermission="false"
type="BotDetect.Configuration.BotDetectConfigurationSection, BotDetect" />
</configSections>
This will open a page with options to customize forms, fields, rules and process definitions. You can
create a new form or edit an existing form.
Customize fields with Custom field option. Add or modify the existing field as per the requirement.
On click of Add new field, a new page opens up to define the field.
Axpert Rules
In Axpert we can define rule during the field creation in a form. But when we are hosting an application
on cloud server, it will be used by multiple customers. Based on customer requirement we can enable
the rules. The users can set their own logic to the forms using Axpert rules option.
In the run site, go to Options→ Configuration Studio→ Rules. Define, edit or remove rules here.
User can define multiple rules for a form. It also provides form control option as shown
Process definitions are introduced to help create one process by linking N number of forms on Axpert.
To define a process, go to Options→Configuration studio→Process Definition
Add and Remove fields in the existing form on the run site
A new feature has been introduced to add and remove fields in the existing form.
To enable this feature, introduce a user defined button in the form with “Add new field” script in the
form on developer site. Define a Script in Dev site as shown.
Go to run site and open the form where the button was created. You will now be able to create a new
field by clicking on this button.
Insert the necessary details and submit. Go to the run site and refresh the form.
A pop up appears, click on confirm to delete the field from the form.
Visit the run site and reload the tstruct to see the field removed.
Add and Remove Form with button click on the run site
A new feature has been introduced to add a form using button click.
To enable this feature, introduce a user defined button in any form with “Add new form” script. Define
a Script in Dev site as shown.
This will open up a tab, give the new form name and caption and click on OK
A new form screen appears, where you can drag and drop fields as desired.
To delete a field in the new form, click on the edit button on top of the field and click on the delete
button at the bottom of the pop up.
Click on Add View and enter name for the view, make desired changes in filters, columns and set the
default view using the toggle button. Apply filters and Save the view.
Google map has to be zoomed in when located. It should show nearby areas.
In Advanced settings create a google maps zoom key.
In the form define a field named latlongmap that will display the map on the run time. Set the field
width to 4000.
Created on, created by, modified on, modified by introduced as part of listview
columns
❖ Suppose an error code added as -- Error code: #1001, Error Message: Field values
should not be same.
❖ Suppose Validation Expression added as: IIF (fldA#fldB,{T},{#1001})
❖ When user enter the data same in fldA and fldB then error message will pop up as
'Field values should not be same'
Configuration:
• Create HTML page in CustomPages directory with name as
{{connectionName/projectName}}.html
Example 1: projectName.html
• In web.config enable “landingPageHTML” configuration by setting value as “true”
• The custom html should be wrapped around in following code:
<template class=”templateAgContent”> … </template>
• HTML Should compulsorily have “axCustomLoginControl” class to custom linked controls along
with “data-id” attribute with value as REAL FIELD id as below
List of Important Controls:
▪ Username Control: axUserName
▪ Passwsord Control: axPassword
▪ Remember Me Control: signedin
▪ Submit Button: btnSubmit
▪ Forgot Password Link: lblForgot
Example:
▪ <input class=”axCustomLoginControl” data-id=”axUserName” type=”text” name=”Username”
/>
▪ <input class=”axCustomLoginControl” data-id=”axPassword” type=”password”
name=”Password” />
▪ <input class=”axCustomLoginControl” data-id=”signedin” type=”checkbox” />
▪ <button class=”axCustomLoginControl” data-id=”btnSubmit” href=”#”>LOG IN</button />
▪ <a class=”axCustomLoginControl” data-id=”lblForgot” href=”#”>Lost your Password?</a>
• To open the SignIn page for the required project open the website with first URL parameter as
{{connectionName/projectName}}
Example: https://agilecloud.biz/run/aspx/signin.aspx?projectName
Note: Custom Html in Signin page will not have Background Image and Project Logo set in
Configuration Page, this has to be handled in this custom signIn page template itself.
During Sign in on the application, the page is enhanced to accept schema name and user name
Click on Next, then enter the password and click on Login. This is introduced considering the security
aspects of authentication.
Enable an API to validate the user id in the application with a pair of client / secret key and exchange
access token along with once (one-time random key)
Provide a redirect page with the token & nonce, where need to implement a logic to validate and
establish login.
Note:
• A web method is introduced as below with accepting project name, which can be called on
Hyperlink/Button click.
Ex.: getInternalSSOToken(_thisProj)
• This web method will call an RestAPI(GetInternalSSOKey) with parameters as project name
and username as below.
Ex.: "{"_parameters”: [{"getssokey”: {"axpapp": "trainee","username":"admin"}}]}"
• This will return the unique SSO key, and this can be used as query string along with
username, projectname and language for the project URL.
A new feature is added in configuration page to set the Redis connections at application level (which
is same as DB connections).
➢ Note:
▪ Once a Redis connection tested and established, those connection parameters along with
encrypted Redis authentication password is saved with connection name.
▪ This file saved as 'redisconns.xml'
▪ Multiple connections can be saved in this file with different connection names.
▪ Redis configuration connection file can be used in other supporting Binaries, Agile Connect
and Axpert Flutter Applications.
▪ Introduced SetToRedis overload parser function with parameters
'SetToRedis(connectionname,keyname,keyvalue)'
▪ Introduced GetFromRedis overload parser function with parameters
'GetFromRedis(connectionname,keyname)', where parameter 'connectionname' will be used
to get the Redis connection details which is stored in the file 'redisconns.xml'
➢ Along with this feature, there are some changes in 'web.config' as explained below. Also,
please note that these changes are required in application level considering security aspects as
well since we are keeping Redis password in readable format.
▪ Below 4 keys needs to be removed.
• <add key="redisIP" value="" />
• <add key="redisPass" value="" />
• <add key="axpLic_RedisIp" value="" />
• <add key="axpLic_RedisPass" value="" />
▪ Below 2 keys are added.
• <add key="redisCacheConnection" value="" /> (This key is using for application
related data cache in Redis)
• <add key="axpLicRedisConnection" value="" /> (This key is using for License
details cache in Redis)
• Example:
• <add key="redisCacheConnection" value="R1001" />
• <add key="axpLicRedisConnection" value="R1002" />
• Where values R1001, R1002 are the connection names which are created
through Redis connection setup in configuration page.
In Axpert 11 mobile application, assigning save and print action in submit button .
UI Configuration
Mobile Project Background: Set the background image for your project in Axpert mobile application.
If a new site is being set up and has no Axpert license the configuration option is shown. To configure
Axpert on the web, go to the run site of the designated server and find the Sign-in option.
Click on Axpert Configuration option.
The Axpert configuration page opens up. There are two types of license activation options available as
shown below.
1. Activate Online:
If you want to activate your license online, then click on the radio button next to it.
Enter the registration key in the text box and click on activate. On successful activation, License
information will be displayed as shown.
2. Activate Offline:
If you want to activate your license offline then choose the “Activate offline” option on the screen.
Enter the registration key in the box and download the registration file. The downloaded .reg file has to
be sent to the licensing team for activation requests.
In return, the licensing team will provide you with a configured license file. This file has to be uploaded
to the site using the “Upload license file” option.
Once the file is uploaded, the license will be activated and related license information will appear on the
screen.
Once the license activation is successful the database connection and demo will be enabled.
If the test connection is successful, click on apply. Enter a new connection name and click on OK.
Find the new connection in the DB connections list.
Try logging into the developer site to confirm successful creation.
DB Password Change
Click on Change password and enter the new password.
Click on Apply to change the existing password and wait for the “Password changed successfully”
message.
Try connecting to the DB by entering new password to ensure the change.
Application Properties
To enhance user experience in list view a design option is provided. Using this the columns can be
resized and moved as desired.
One can drag and drop items to rearrange or resize column width and click on OK
• Click on the icon to add the signature manually. Click on the right mark at the bottom to save
the signature successfully.
Download the file/attachments in IViews when provided the mapped path. To achieve this, below
iview configuations needs to be applied.
Note:
➢ If File Server and App Server are different systems, then File Server needs to be
authenticated for downloading or uploading the files with following Application Variables,
provided both servers should be in same domain.
• axp_mapusername
• Username for the domain
• axp_mappwd
• Password for the domain
• axp_domain
• Domain Name
Example:
DB Attachment
• select 'gddwn' transid_real,gddwn1id recordid,'dc2_image' fieldname,dc2_image
axp_attach,'gddwndc2_image'transid, 'true' isdbattach from gddwn2
Non DB Attachment
• select null transid_real,gddwn1id recordid,null
fieldname,replace(axpfilepath_img,'*','')||axpfile_img axp_attach,null transid, 'false'
isdbattach from gddwn1
DB + Non DB Attachment
• select 'gddwn' transid_real,gddwn1id recordid,'dc2_image' fieldname,dc2_image
axp_attach,'gddwndc2_image'transid, 'true' isdbattach from gddwn2
union all
select null transid_real,gddwn1id recordid,null
fieldname,replace(axpfilepath_img,'*','')||axpfile_img axp_attach,null transid, 'false'
isdbattach from gddwn1
Accordingly, Axpert Desktop, Web and Developer/build license have been categorised as
follows:
1. Evaluation License
2. Partner License
3. Desktop License
4. Web License
5. Site License
All the above License Editions are same as existing license edition except the following.
Desktop Edition (ALM Required).
This edition is same as previous version End user license Edition and this license edition
is considered as schema / project-based licensing.
• Any one machine in the end user LAN in case of desktop version and the web server in
case of web version will be registered with Agile. All machines need not be registered as
in the current practice.
• End users will be licensed based on any one or more of the following
o number of users
o number of TStruct, IViews
o expiry date
o number of transactions.
• Apps developed on Axpert need Axpert Desktop license to run the Apps as Desktop
Projects.
• Axpert Desktop license is DB Schema based license. Each Project
requires separate license activation
• Those projects can be browsed through Axpert Web Apps as well
• Any one machine in the end user LAN (this machine supposed to be run 24/7. So, ideal
machine would be DB Server) in case of Desktop Application and the Web Server or DB
Server in case of Web Application would be registered with Agile. For this purpose, ALM
needs to be installed in this machine.
• This is an App Server based license. Project/Schema wise license activation not
required.
• 'N' no. of Projects/Axpert web sites can be deployed in server by using this edition.
• In-Memory DB Redis connectivity is a must in App Server for this Edition.
• No. of active logins will be restricted across projects/schemas in case of limited user
licenses.
• All licensing parameters would be applied across the Projects deployed in Server.
1. This newly introduced Web license would be working based on below web.config keys
with proper values.
• <add key="axpLic_RedisIp" value=""/>
• Ex.: 127.0.0.1:6380
• <add key="axpLic_RedisPass" value=""/>
• Ex.: agile.01
• Note: [axpLic_RedisIp should be 127.0.0.1]
Modern SmartView’s
Smartviews are completely modernized with added features, performance impovements and
customizations:
View Tabs
Modern SmartView’s introduces a new functionality of saving user/admin defined views with
parameters, charts, filter, sort, row grouping, columns, highlight and action bar pins called
Views. Views for SmartViews can be created and saved by individual user and administrator.
• Screenshots:
• Before Template:
• After Template:
• Modern Buttons
• Classic Buttons
• Options Pinning
Required Options button can be pinned to TitleBar
Old Iview UI
Administrator can altogether disable Modern SmartViews feature and switch back to old
smartviews UI by adding Developer Option “Load Old Model Views”
Form Actions
• Import Data
If import data is taking more time than expected to import data, for example 30
minutes. Then users don’t need to wait for such long time and can continue working
on other tasks. Once the operation is completed then automatically notifications gets
shown in notification panel.
Note: For each field there will be a separate file path. If there is no expression set in
AxpFilePath_ field or AxpFilePath_ field not define, It will take axpImagePath as file path.
Functionality of the feature:
1. For every Attachment field there will be a one attach icon for attach files to the
corresponding field.
2. If the field width is not sufficient to show all the file names, then remaining file will move
inside a popover. And according to the number of remaining files it will show a hyperlink
inside current input field as num+ for opening corresponding popover.
• Below screenshots are showing the remaining files hyperlink as 1+ and popover
(which is showing the remaining files).
6. For a Current record only one file will be allowed with the same name.
Example: If previously uploaded MyPhoto.jpg file ,then it will not allow to attach same file
name with the same record. It will show File Already Exists .
7. If Uploading file already exists in the path it will give a alert and need to rename the file
and upload again.
Login
SSO Login
SSO authentications are in built in the AxpertWeb with followings such as OKTA, Office365,
Google Account & Face Book. User can choose multiple SSO Authentications based on
requirement.
Configurations:
1. Should be registered Client ID from each SSO in their developer sites examples
given individually.
2. Should be enabled below keys in web.config file in the webcode.
a. ssologin : okta,office365,google,facebook
Ex: <add key="ssologin" value="okta,office365,google,facebook"/>
b. ssoclientKey : oktaClientiId,office365ClientId,googleClientId,facebookClientID
Ex: <add key="ssoclientKey" value="0oacsbt8oZl24CEmQ4x6,bfff8cad-3c1c-
4c14-9499-2423c724f3b7,493358977849-
so1sc0tcs9gqrh4jiuaqs36jr9cns0cv.apps.googleusercontent.com,252601612604428"/
>
c. ssoclientsecretKey : Client Secret Id have the google and facebook only and
below is the example.
Ex: <add key="ssoclientsecretKey" value=",,ChzG0QxESuMZkQ--
mStkSj9z,2bdba09e6ba0e2f47225487344153b59"/>
d. ssoredirecturl : This is basically redirect URL after SSO authentication
Ex: <add key="ssoredirecturl" value="https://demo.agile-labs.com/"/>
Note : There should be a corresponding entry in axusers table for those login names
which are used to login to Apert Web through SSO authentications.
OKTA:
a. https://developer.okta.com/
b. Create Application
c. Web Application
d. Enter application name, Base URL, Login redirect URLs, Logout Redirect URLS
h. OKTA will not give a popup window to enter username & password, so in this case
username & password has to enter as normal login. but for other SSO login will show
the popup there has to be enter the username and password.
Office365:
a. https://portal.azure.com/
e. Choose redirect URL type as Web & enter the redirect URL
3. Google Account:
a. https://console.developers.google.com/
b. Login / Signup with Google account
c. Create New project
g. Application Name, logo, email, add scope if required more, application home page
url and Save
h. Select Credentials -- > Create Credentials --> OAuth client ID --> Select
Application Type as Web Application
4. Face book:
a. https://developers.facebook.com/
b. Login/ SingUp with facebook
c. Create App in My Apps
d. Enter app name, email id and click on create app id
f. Choose WEB and give Site URL and save and continue
g. FaceBook login settings --> Enable Embedded Browser OAuth Login & give a valid
OAuth Redirect URIs and Save Changes.
h. Settings --> Basic --> Copy App ID & App Secret keys and add in web.config in the
webcode
i. My Permissions and Features --> Email & Default -- incase app not work these
permissions shold be enabled.
Stay Sign in
Stay signed in has introduced in the product, to enable checkbox of stay signed in in sign in
page below web.config key should be enabled with value as "true"
Key:
• <add key="staysignin" value="true" />
User Manual
User Manual option can be enabled by adding Developer Option "User Manual" as true.
Intro of the feature:
User can able to access the files through web application which is saved in local folder
through User Manual option (located in right sidebar menu).
2. Go to Developer Options and select the Property as User Manual ,Property Value as
true and in Property Info field you can give the folder path which folder user want to
access.
3. If the path has not given Property Info field, then it will access the files from default
folder i.e “\\WebCode\CustomPages\userManual” .
2. If the Property Value is set false, then It will not display User Manual Option in right
sidebar menu.
3. Inside Property Info field, if user has given any path then it will take that path and listed
all the files in User Manual popup.
If the path is not given then it will take the default folder path which is
“\\WebCode\CustomPages\userManual” and listed all the files of this folder in User Manual
Popup.
Note: when a new tstruct is opened for which key is set in developer options, data will be pushed to
in-memory only if at least one field is changed.
Hybrid Application
Android & IOS Geolocation based on Configuration
Precise Geo Location can be enabled for hybrid application while adding Hybrid Application
as “Need Location Details?”
Enable/Disable the keyboard for autocomplete fields
Autocomplete fields can have keyboard enabled/disabled by setting Developer Option
“Show keyboard in Hybrid App”
Customization
Axpert interface page for Simple way of Customization
Various WebMethods are introduced to consume for custom pages like:
• GetGlobalVar
• TstructSaveData
• GetWidgetData
• GetIViewParams
• GetIViewData
• etc.
• Go to TStruct design mode and click on HTML (new button introduced) button
• Left is the existing HTML and copy and modify & past in right side and click on ok
button, then it will save in the DB
• After that open/load the TStruct these HTML will be affected in run mode.
Breadcrumb Title
Breadcrumbs switch can be enabled for SmartView’s and Forms from Global Settings.
HTTPS support
The home page & widget builders did not support HTTPS in earlier versions. This version can be
deployed in HTTPS environment.
Attachments
Forms can now have a field to upload attachments. This field will allow users to upload one or more
documents remove and change them. To create a field to enable users to upload attachments, the
field name should be prefixed with “axp_nga”. This feature is now enabled only Axpert Web and not
available in desktop. The attachments will be stored in file servers and not in database. The path in
which the file will be stored can be specified using application variables AxpImagePath. The file
server URL or server name can be provided in AxpImageServer.
Attachments made ithrough fields in forms/tstructs have to be downloaded. To do this add columns
transid, fieldname & recordid. These columns should contain the tstruct name, field name & record
id of the transaction. The contents from the given field and record will be shown in the “axp_attach”
column. Users will have options to download by clicking on any file that is displayed in the
“axp_attach” column.
Work flow
A new attribute named “From Mail Id” is introduced in work flow configuration. Axpert will send mails
to users for doing approvals. By default, these mails will be sent from the originating users mail id.
This can be changed by providing a mail id in this attribute. Now, user orgranizations could have a
common mail id to send mails from Axpert.
Grids as a frame
Set TStruct Grid Edit property to form. This property can be set through Advanced configuration. It
can be set for any form or all forms. In this mode, grids in forms will be shown as non grid with options
to add rows, remove rows and navigate through them.
The dropped down values may be grouped. Users can then select one or more values from each
group. This will be useful in making complex user selection that may be used to describe data more
accurately.
Grouped selection is enabled by providing the following columns in the SQL result for the drop down
field
a) Mslist – This column will contain the dropped down values that will be displayed for user
selection.
b) Groupby – All dropped down values that should be grouped and shown under one heading in
the drop down seleciton window will contain the same value in this column.
c) GroupOrder – This specifies the order in which the groups and its elements will be displayed
in the selection window. Lowest value first to the highest value.
d) Selected – This can be set to true if the value should be selected by default in the drop down
selection window.
To display the location on a map, introduce a field named “LatLongMap”. The field type should be text
area. This will work only in non grid DC. The map will be displayed in this field with the lat and long
pinned on the map. This needs to be integrated with google maps to work by providing the google
map API key. This can be provided in advanced config.
Select the property name as “Google Map API Key” for this form. Set the API key value in property
info. The property value should be set as “General”.
• Features
Features
This section provides more information on the features available in 10.7 release.
User interface
The user interface of the main page is standardized using material design. This version has been
simplified to user convenience.
Mobile Compatibility
Axpert is now fully compatible with mobile and can be easily accessed from either mobile browser or
Axpert Hybrid mobile app. You can also access into Axpert mobile application in few seconds. So now
in this version Axpert is more compatible with mobile.
List views
List views now have features to sort, search, filters same as smart views. Users can now sort and
search lists just like any report or view. It now has an inbuilt charting option.
In memory database
Keys are now listed based on forms and reports. So, users can clear the keys related one or more
related forms or reports. When changes need to be applied to a form, the keys related to only that form
can be cleared instead of clearing all keys from in memory. This version has simplified the in memory
database by providing the keys based on forms and report.
Grids in forms
Grids in forms are now having a new look with optimized space utilization. This enables users to see
more rows in the screen without having to scroll. So, this version has optimized space utilization.
• Features
• Enhancements
Features
This section provides more information on the features available in 10.6 release.
Axpert on PostgreSQL
Axpert is now compatible with postgreSQL database as it is one of the powerful opensource databases
providing responsive framework. This database is highly reliable, robust and offers a great performance.
Enhancements
This section provides more information on the enhancements made in Axpert 10.6 release.
(Note: Axpert loads the new form only when you try to open it from the menu or from the search bar or
from the list view.)
(i) Cross site scripting (XSS) - This is a code injection attack from the client side. This type of attack
occurs when the victim visits the web page or web application that executes the malicious code. Such
attacks are common in forums and message boards that prompts you to enter comments.
(ii) SSL cookies without secure flag set - When you set a secure flag on cookie, browsers do not
submit the cookie in any requests that uses an unencrypted HTTP connection. This prevents the
attacker to perform the attack. You can set the secure 'httpCookies' flag in web.config file following path
'//configuration/system.web/' as <httpCookiesrequireSSL='true/>.
(iii) OPTIONS Method Enabled - This provides the list of methods that are supported by the web
browser allowing attackers to intensify their efforts. It is recommended to disable OPTIONS Method on
the web server. You can disable this method in web.config file in following path
'//configuration/system.web/' by adding 'authorization' as <authorization><deny verbs="OPTIONS"
users="*"/><deny verbs="TRACE" users="*"/><deny verbs="HEAD" users="*"/></authorization>
(iv) BREACH attack - This is basically an attack against HTTP. This attack can hack the sensitive
information in as little as 30 seconds. To prevent hacking the sensitive information, turn off HTTP
compression in IIS. To disable HTTP compression, refer to https://docs.microsoft.com/en-
us/iis/configuration/system.webserver/httpcompression/ or http://dotnetmentors.com/aspnet/how-to-enable-
http-compression-in-asp-net-website.aspx.
(v) RC4 cipher suites detected - This attack is against TLS that allows an attacker to recover a limited
amount of plaintext when RC4 encryption is used. To counteract this attack, stop using RC4 in TLS.
For more information on how to disable RC4, refer to https://docs.microsoft.com/en-us/windows-
server/identity/ad-fs/operations/manage-ssl-protocols-in-ad-fs#disable-rc4.
(vi) Disclosure of webserver version - Web server often displays what type of server it is, its version
no. and the operating system. Attackers use this information and exploit the target web server. It is
therefore recommended to limit the information displaying on the server.
(vii) Application error message - These messages may expose sensitive information about an
application's internal workings to an attacker. To avoid this attack, configure your application properly
to log errors to a file and redirect to custom error pages, so configure paths properly in httpErrors and
customErrors with mode='On'.
(viii) Unencrypted login request - Unencrypted Login Request is stealing the user credentials such as
usernames and passwords that are sent unencrypted to the server for the request. To prevent hacking
the credentials, use Secure Socket Layer (SSL).
(ix) Missing or insecure content-security-policy (CSP) header - CSP is an additional layer of security
that is used to prevent XSS and data injection attacks.To enable this header, goto
//configuration/system.webServer/httpProtocol/customHeaders path and add the following syntax:
<add name="Content-Security-Policy" value= "script-src 'unsafe-inline' 'unsafe-eval' http:
https:; style-src 'self' 'unsafe-inline'; font-src *;img-src * data:; default-src *;" />
• Smartviews
• Wizard based DC
Features
SmartViews
Smartviews are the revamped version of iviews. You can now view any reports in smart views, that has
an attractive user interface design allowing users to perform the following functions:
• Creating filters
• Grouping
• Sorting
• On the fly formatting and so on.
Using filter option, you can customize the visibility of your reports by creating a filter, which screens the
data that the report brings back from your datasource. You can generate a custom report by picking
selected report columns. The introduction of Dynamic expandable search bars with the magnifying glass
icon acts as an effective space saver and provides an effective UX. This search bar is a retractable
textbox that expands on hovering/clicking and retract back when the interaction with the search bar
ends.
3. In the Filters window, enter values in the selected field columns for which you wish to create a
filter and click the Create Filter button.
3. In the Column drop down, select the columns that you wish to perform row grouping.
4. In the Function drop down, select one of the arithmetic functions to be performed on the selected
column.
5. In the Source drop down, select the column that will be used for computation.
1. In the search box, type Formsand click . The Forms report appears.
2. Click the Create Form button. The Form Properties window appears.
3. Fill the basic details of the form such as form name, caption, and enable the basic properties such
as workflow and so on.
Form Elements and Form properties windows appear simultaneously as shown below. When
you save the form for the first name, TStruct gets created along with the DC as highlighted in the below
image.
5. Click the Custom Actions drop down and select one of the available options as shown below: For
e.g. you can select Add Field, so that an input field property window appears.
6. Enter the relevant field values in the input field and click the Save & Add New button.
A new row of input field adds to the Form Elements window as shown below. Similarly, you can
add the required fields to the form.
7. Click the Save button under Options drop down of the Form Elements window.
8. Under Custom Actions drop down of the Form Elements window, click the Apply button to save the
structure. The saved structure appears in the Forms Report as shown below:
9. To navigate to the run mode of the form, click Open Design Mode button against the form name for
which you wish to enter data.
• SQL Scripts
While applying a patch, these results and traces are stored under PackAppliedResults file.
Developer Notes
The APMConfig.INI file contains all config parameters related to APM, web server details along with
the folders where web code exists, apps along with the DB connection details running in this instance.
2. In the Axpert Package Manager window, click the Apply button against the packages available for
download.
3. In the Select Projects window, select the projects for which you wish to apply the package content
and click the Apply button.
Wizard based DC
Use this feature to navigate across data containers (DC's) as an individual page so that users can pay
their attention in detail for better understanding. For multiple DCs, navigations can be made using next
and previous buttons. Cancel button helps users who are looking for a way out.
1. Navigate to the design mode of a form and open the TStruct Design properties window.
2. Move the slider right in the Wizard DC option and save the form.
Developer Notes
The introduction of axp_appsearch view helps users to search data periodically, as and when the new
menu items are added and can retrieve dynamic records.
Security Enhancement
In this release, web service methods are hidden from displaying on the service description page. For
e.g., if you type http://localhost/TestService.asmx on your browser, system was displaying the list of
services and was allowing to test them. Now, as a security enhancement these methods are hidden so
that none off the internet will be able to call these methods. To hide the service description page, remove
Documentation protocol from the list of available protocols.
Developer Notes
The below sample code illustrates an e.g. of removing the documentation protocol.
<webServices>
<protocols>
<remove name="Documentation"/>
</protocols>
</webServices>
• Split window
• Advanced Settings
Features
Collapsible sidebar navigation
You can now view the menu as a fixed positioned scrollable sidebar, which means the sidebar is fixed
in place as you scroll down the page. This sidebar provides a more concise design with
expandable/collapsible sections as it can handle couple of levels. You can expand/collapse menu items
using Menu icon. The colorful icon against each menu item improves the look and feel of the application
drastically.Additionally, previous and next buttons are placed for opening the recently closed items. The
introduction of refresh icon refreshes the sidebar menu with the newly added forms/reports to the
application, thereby avoiding the session logout.
Split Window
Any forms/reports in Axpert are associated with hyperlinks. Using this feature, you can now split any
individual forms/reports vertically or horizontally. This enables user to view more data in a single page
without actually navigating it to a new page. The user can split a page by clicking on the split button on
the right top corner or on the left bottom corner of the client area.
Advanced Settings
In this feature, you can control the display of forms/reports available in the application using Advanced
Settings option.
Navigation
To access the Advanced Settings window, navigate to the Settings icon on the right corner of the client
area and click Advanced Settings option.
Field Description
Property Use this field to select a property. The following values are
available to select:
• Align Text–Select this option to align the text left or right.
Field Description
Property Value Use this field to select a property value based on the selected
property.
• 30 min
• 1 hour
• 2 hour
• 5 hour
• 10 hour
• none
Field Description
• Default – This option overrides the content in the existing
frame.
• Newpage–Select this option to open the hyperlink in
reports in a new page.
• Popup – Select this option to open the hyperlink in
reports as a popup.
• Split–Select this option to open the hyperlink on the right
side in the same page.
Enhancements
Refresh Home page Data
You can now replenish your home page with the most recent Redis data. Whenever you modify any
data in widgets, you can view the updated data in home page by clicking the Refresh icon against each
widget to load the latest data. When you refresh a widget, the data refreshes for everyone who has
access to that widget provided they reload the page to view the updated data.
By default, time for refreshing the cached widget data has been set as 30 minutes and can modify the
time if required. For example, if the user makes an attempt to change the Auto Refresh time as 10
minutes or less than that, system now alerts the user by prompting a message stating “performance will
be affected”.
Smart Refresh
This feature automatically clears the data in Redis at regular intervals. Whenever any changes are
made into the source data, Redis cache gets refreshed. For example, if you are changing the source
data for every five minutes, data in Redis also gets refreshed for the same time span, thereby improving
the scalability of systems.
To use this feature, you must define a variable {axp_axpertlog} in the application variables screen and
set its property as true and, additionally, establish a relationship between parent TStruct and child
TStruct in AxRelations table. For example, define an input field in the parent TStruct (form) and create
a parent dependent field in the child TStruct (form). From now on, any changes made in the parent
TStruct will get reflected in the child TStruct as well and vice versa.
To disable this feature, you must add a field "axp_real_time_cache" by setting its property as {F} in the
master transaction. If you set the property as {T}, then it will behave as a default auto refresh.
System validates whether any page is assigned to the user. If not, it validates whether
the role, to which the user is associated with, is assigned a page else the page that is set as a
Default HomePage is assigned to the user.
• XML configuration for Node to retain data in dbconfig.js while updating Axpert applications.
• Tree view for reports – You can open hierarchical data as a tree in reports.
• Mapping data from one widget to another by passing parameters.
• Dynamic widgets – One of the powerful widgets that allows you to open any hyperlink data
of a widget without actually displaying it in a new window.
It is recommended to download the latest version of Axpert files before starting the migration
process.
The following steps describe how to upgrade Axpert application from a prior release to the latest
release.
2. On the left pane of the Axpert Manager window, click Upgrade Version under Axpert Application
option.
3. On the right pane, under Connect to application section, perform the following:
(i) From the Application name drop down, select the application that has to be upgraded.
(ii) In the Application Username field, enter the user name.
(iii) In the Password field, enter the password.
• Pages
• Configuring Node.js
• TreeView
Pages
The introduction of page designer in Axpert enriches the user experience in accessing the application.
Axpert Pages is a collection of data that allows users to take informed decisions.
Whether it is placing widgets/iviews/forms or letting people quickly access key information - you can
publish it as a landing page
Creating Pages
The user associated with the relevant access role (say admin) can create one or more pages for an
application.
To create a page, follow the steps mentioned below:
1. Login to an application.
2. Click the page designer icon on the right corner of the landing page.
The page designer window appears.
3. Click the icon on the right corner of the Designer Canvas section. The Create new
page dialog appears.
4. In the Name box, enter a name for the new page.
5. Move the slider right if you wish to set the page as Default HomePage else move the slider left to
set it as No.
6. Select the relevant menu or sub menu under which the new page has to appear.
7. Click the Ok button.
8. Select a responsive template and click the Ok button.
Customizing Pages
Use the property sheet to modify the various properties of the page such as changing the template,
authorization, modifying the page name and so on.
To access the property sheet, click on the relevant page name in the Designer Canvas section.
You can also place one or more widgets, reports and forms on the page by clicking and dragging the
respective items from the object browser pane.
After making all the changes, save the page and click the icon.
1. Navigate to the User Role form. The User Role page appears.
2. In the Homepage field, select the page that has to appear as a homepage.
3. Click the Save button.
The selected page appears as a home page for that particular user role.
2. Under the Login Username column, select a user for whom the page has to be assigned.
3. In the Homepage field, select a page that has to appear for the user.
4. Click the Save button.
Mapping Widgets
Mapping provides an easy way of linking widgets by passing the parameter value of one widget to
another. You can map the following types of widgets with any combination:
• IView
• KPI
• SQL Query
• Chart
For example, if you want to view the sales summary data of a company, based on certain conditions
such as financial year, regions, product and so on, you can achieve that through pages.
3. Click on the widget to open the property sheet of that particular widget.
4. Click the Mapping field under the Dependency section to open Parameter Mapping window.
5. Select one or more parameters that has to be mapped with the corresponding widget and click the
Ok button.
9. Click the Finance Year widget. You can see the data mapped for finance year widget appears in
regions widget.
Similarly, when clicked on the other widgets, data appears in the respective mapped widget.
Dynamic Widgets
IViews with hyperlinks can now be opened in one of the most powerful widgets called “Dynamic
Widget” instead of displaying it in a new pop-up window.
You can pass data to Dynamic widgets in the following ways:
• Place a Dynamic Widget in the Page Designer.
• For IView widgets, define hyperlinks for columns.
• For SQL widgets, define hyperlinks using the property sheet of a widget
• For widgets created using widget builder, add $target=inline syntax in hyperlink statements. For
example, 'h1=icars(make='|| manufacturer ||')$target=inline' as link
Configuring Node.js
Whenever you update an application using Installer, existing data in dbconfig.js file was getting
overridden. In order to retain the existing data in dbconfig.js file, XML configuration was introduced.
Going forward, all changes are to be done in dbconfig.xml instead of dbconfig.js.
For new applications, navigate to
AXPERT_HOME/AxpertWeb/node/config/dbconfig.xmlfile and edit the XML content.
For example, if you have changed the values of the host keys in your dbconfig.js file, copy
the same and place it in dbconfig.xml file as per the below format:
<host>127.0.0.1</host>
Another example in dbconfig.js file might be as follows:
axpMobileSPath (for mobile notifications):'C:\\inetpub\\wwwroot\\TAxpertScripts\\',
Now, copy C:\inetpub\wwwroot\TAxpertScripts\ into <axpMobileSPath> element.
In XML file, It should look like
<axpMobileSPath>C:\inetpub\wwwroot\TAxpertScripts\</axpMobileSPath>
Example 1:
<activeMobileApp>
<element h="1"></element>
</activeMobileApp>
Element values can be empty in dbconfig.xml, but if your dbconfig.js consists of some values, then
you must add those values inside the element tag as per the above syntax.
Example 2:
In dbconfig.js file, values are represented as follows:
activeMobileApp : ['bizops', 'hms']
You must represent the .js values in dbconfig.xml as shown below.
<activeMobileApp>
<element h="1">bizops</element>
<element h="2">hms</element>
</activeMobileApp>
Do not use single quotes (‘) or double quotes (“) inside the XML file while copying from dbconfig.js
The following table provides more examples on converting JSON parameters to XML format.
JSON XML
activeMobileApp : [“”] <activeMobileApp>
<element h="1"></element>
</activeMobileApp>
"activeMobileApp":["hr",”axpert”] <activeMobileApp>
<element h="1">hr</element>
<element h="1">Axpert</element>
</activeMobileApp>
"axpMobileSPath":"C:\\inetpub\\wwwroot\\ <axpMobileSPath>
TAxpertScripts\\" C:\inetpub\wwwroot\TAxpertScripts\</axpMobileSPath>
"worker_auto":true <worker_auto>true</worker_auto>
TreeView
Using this feature, you can display a hierarchical data as a tree in reports. By using the treeview, you
can drill down into the children of a tree item. To facilitate this, it is mandatory to have columns such as
particulars, root_type and root_class.
Tree nodes can be expanded to display the next level of child tree nodes. The user can expand the tree
node by clicking the (+) button displayed next to the tree node.
Additionally, Nodes can be expanded/collapsed via the user interface (using Expand All and Collapse
All buttons).
If you enable static run mode, fields placed in the design mode of a form will appear static in the run
mode. The screenshot below illustrates the static placement of fields if you enable Static Run Mode
option.
If you disable static run mode option, fields placed in the design mode of a form will auto arrange in
the run mode. The screenshot below illustrates the auto arrangement of fields if you disable Static
Run Mode option.
• Performance Improvement
Performance Improvement
In this release, overall performance of the Axpert web applications has been drastically improved by
reducing the time taken during form load, data load and data entry. To view the performance
improvement in backward compatibility versions as well, you must create a record in
{AXPWS_CONFIG} table with form name and version no.
{For example, if an Axpert App "BizERP" is created in Axpert version 10.3 or upgraded to 10.3, all form
load, data load and data entry would be rooted through new performance change features. In this case,
if a Solution Developer wants to load a particular form and it's data entry (say FormA, FormB etc.) are
in older versions (10.2, 10.1 etc) and due to some reason if he undergoes any definition issue or an
error due to some new performance logic, he needs to insert a record in "AXPWS_CONFIG" table as
given below.
(i) X-Frame-Options: It is a web header used to protect a website against clickjacking attacks. In these
attacks, the vulnerable site is loaded in a frame on an attacker-controlled site which uses opaque or
transparent layers to trick the user into unintentionally clicking a button or link on the vulnerable site.
Settings:
Set the X-Frame-Options to "SAMEORIGIN" if you feel the framing is needed in certain circumstances.
By using this, you can limit the ability to frame the site to pages from the same origin. If Axpert Web and
AxpertWeb Scripts are hosted in different server, then use ALLOW-FROM http://www.example.com
instead of SAMEORIGIN.
You can now specify the header in the Web.config file, using the <customHeaders> tag.
Example
Add the following syntax into the Web.config file in the path
/configuration/system.web/system.web.extensions/security/httpProtocol/customHeaders/
Syntax:
(ii) Remote Server Header: This attribute is added in IIS 10 to suppress sending the HTTP server
header to remote clients.
Note: If your IIS version is less than 10.0, delete removeServerHeader="true"attribute from request
filtering. Otherwise, IIS will not work.
Example
Add the following syntax into the Web.config file in the path
/configuration/system.web/system.web.extensions/security/
Syntax:
<requestFilteringremoveServerHeader="true">
(iii) X-Powered-By: This is a custom header in IIS. It indicates the framework in which the website is
running. Hence, it is advisable to remove this header from the response. By removing this, automatic
vulnerability scanners will not immediately know which version of software they are dealing with and
due to which the automatic vulnerability discovery gets harder.
Example
Add the following syntax into the Web.config file in the path
/Configuration/system.web/system.web.extensions/security/httpProtocol/customHeaders.
Syntax:
Example
Add the following syntax into the Web.config file in the path /Configuration/system.web/
Syntax:
<httpRuntimeenableVersionHeader="false" />