#######################################################################################
# File name  :application.properties                                                  #
# Description: configuration file for the ABSSolute Server using Springboot.          #
#              When changes are made to the properties, restart the client            #
#              in order to make them effective.                                       #
#                                                                                     #
# Author     : ALT                                                                    #
# Version    : 9.05.04                                                                #
#######################################################################################
# Properties.Version = 2.0                                                            #
#######################################################################################
#Who Changed # Version # Change description                                           #
#######################################################################################
#    ALT     # 9.05.04 # Added support for Springboot framework, renamed file.        #
#    RBO     # 9.05.04 # Added jwt.secret for Spring Security                         #
#    APA     # 9.07.02 # Make ABSsolute server listen on HTTPS                        #
#-------------------------------------------------------------------------------------#
#######################################################################################

#######################
# Springboot related  #
#######################

# The port on which the embedded Tomcat web server will listen for requests.
# Must be an integer number, highly recommended to be greater than 1000 otherwise it might require administrator/sudo rights to start the application!
# Default value: 50117
abs.restEndpoint.port=50117

### Embedded Tomcat HTTPS ###

# Set below property to true for the Embedded Tomcat to serve only on HTTPS instead of HTTP
#security.require-ssl=true

# The name of the keystore from which the Embedded Tomcat loads the certificate to expose for its clients
# Should be in PKCS12 format (.p12 extension)
#server.ssl.key-store=abssolute_server_certificate.p12

# The keystore password from the PKCS12 file
#server.ssl.key-store-password=changeit

# Optional, only if the PKCS12 keystore has multiple aliases in it, specify which alias to use
#server.ssl.key-alias=abssolute laundry business solutions

### END of Embedded Tomcat HTTPS ###

#Private key used to sign and verify jwt tokens
jwt.secret=UY0cn59B0GgK1t687ap3nIWdv593pMnj5mo9f

#######################
# Standard            #
#######################

# Host name of the server running the Application server. Can be either a DNS
# name or an IP address.
NSHost=localhost

# TCP/IP Port number the Application server listens on for new connections.
# Default value: 50111
NSPort=50111

# TCP/IP Port number the Application server uses internally. Every instance 
#should have it's own unique PortNumber.
PortUniqueServer=5001

# Host name of the server running the Report Server Application. Can be either 
#a DNS name or an IP address.
NSReportServerHost=localhost

# RMI port from report server for special clients request for rpt exports plus
# other custom checks done on report server.
# Default value: 50121
NSReportServerRMIPort=50121

# Report Server port used for normal printing or with preview.
# Default value: 50122
NSReportServerHTTPPort=50122

# Compression of data flow between ABSSolute client and Application server
# Values:[ plain | compressed | disable | jz ]
SOCKETFACTORYTYPE=jz

# Port usage restriction between client and server. Only one port needs to
# be defined.
# Default value: 50115
RMISERVERSOCKETPORT=50115

# Port usage for sending diagnostic data from server to client.
# Default value: 50116
RMIDIAGNOSTICPORT=50116

# Enables or disables the process that is writing logs into the database.
DATABASELOGGING=NO

# Keep alive time for disconnects client sessions in minutes.
APPConnTimeoutMin=30

# Time in seconds for cancelling printer spooling requests if not finished.
# Zero (default) means no timeout monitoring is performed.
TimeoutForReporting=0

# Startup delay of the server in seconds. Should be set to "0" when the Database
# is NOT installed on this same physical server.
Delay=0

#######################
#Database related     #
#######################

# Host name of the server running the Oracle/MsSQL Server Application. Can be 
# either a DNS name or an IP address. Used only when using thin driver.
DBServerName=localhost

#Port number of Oracle Listener when using thin driver
DBPortNumber=1521

# Value of TNS names entry when using OCI or SID value when connecting thin
DBSID=ABS1

# Database ABSSolute schema name 
DBUser=ABSSOLUTE

# Database ABSSolute schema password
DBPassword=ABSSOLUTE

# URL connection string. When provided, is used exclusively for thin driver and overwrites information from DBServerName:DBPortNumber:DBSID
# Accepted formats:
# jdbc:oracle:thin:@<host>:<port>:<sid>
# jdbc:oracle:thin:@<host>:<port>/<sid>
# TNS details string: jdbc:oracle:thin:@<(DESCRIPTION=(ADDRESS=(PROTOCOL=....)>
# TNS string must be used for RAC databases and should not contain spaces or other special characters
# In order to use Application Continuity feature, TNS connection string is mandatory and should contain parameters: RETRY_COUNT, RETRY_DELAY, CONNECT_TIMEOUT, and TRANSPORT_CONNECT_TIMEOUT
# Set CONNECT_TIMEOUT to a high value to prevent login storms such as 90s or 120s. Do not set (RETRY_COUNT + 1) * RETRY_DELAY or CONNECT_TIMEOUT larger than your response time SLA
DBThinURL=

# ONS configuration string. Optional property, to be used for manual ONS configuration, if needed. 
# When set to "auto" then client-side ONS daemon configuration will be used (ons.config file). When property is set then remote configuration will be used. Default value is null.
# Format to set the property for remote configuration: 
# 		a list of <name>=<value> pairs separated by a new line character (\n). <Name> can be one of the following: nodes, walletfile, or walletpassword.
# The property should at least specify the ONS configuration nodes attribute as a list of <host>:<port> pairs separated by a comma
# Example: nodes=racnode1:6200,racnode2:6200\nwalletfile=/oracle12/onswalletfile
ONSConfigString=

# Default network protocol 
DBNetworkProtocol=tcp

# Used for specify how the update scripts should be run on the database. If it
# is specified PROCEDURE then the update scripts are run on the database using
# the PACK_SCRIPT package, else without PACK_SCRIPT.
# Values: [ PLAIN | PROCEDURE ]
DBUpdateType=PROCEDURE

# Definition of Oracle home location to locate the tnsnames.ora
# Linux Example: OracleHome=/abs/instantclient_11_1
OracleHome=C:\\Oracle\\product\\19.0.0\\client_1

# Default location of database dump files when exporting with Admin Tool
# Linux Example: DefaultDumpFileDirectory=/abs/dumps_files
DefaultDumpFileDirectory=c:\\oracle\\dumps_files

# Set the maximum number of physical sessions in the database connection pool
# Default value=15
DBMaxNumberofSessions=25

# Set the minimum and initial number of physical sessions in the database 
# connection pool.
# Default value=5 and 0 for RAC setup
DBMinNumberofSessions=5

# Check and apply interval time for the database connection pool properties in
# seconds.
DBPropertyCheckInterval=120

# Maximum time in seconds a session can be idle and in use by an application
# server process.When set the connection pool manager will release idle the 
# session after given time period in seconds.Idle sessions with outstanding
# transactions will not be affected
# Default value=0
DBAbandonedConnectionTimeout=0

# Maximum time in seconds a session can be used by an application server process. 
# When set the connection pool manager will release the session and roll-back all
# current (and running!) transactions after given time period in seconds.
# Only change this value if you know what you are doing!
# Default value=0
DBTimeToLiveTimeout=0

# The time a session request will wait before it ''times out'' when connection in
# the pool is not available.
# Default value=30
DBConnectionWaitTimeout=30

# Clean up idle physical sessions not used by an application server process 
# from the database connection pool after given time period in seconds  
# Sessions can be cleaned up to minimum value set by DBMinNumberofSessions
# Default value=600 and 10 for RAC setup
DBConnPoolTimeOut=600

#######################
# Debug               #
#######################

# Part of TRANSACTIONDEBUG mechanism.
# This property will enable/disable the TRANSACTIONDEBUG mechanism, that will log SQL statements
# in server\log\ExecutedTransactionsLog_. 
# Values: [ YES | NO ]
TRANSACTIONDEBUG=NO

# Part of TRANSACTIONDEBUG mechanism.
# Using the application.properties value TRANSACTIONDEBUGSYSTEMUSER, you can enable
# this logging only for a specific System User ( Name ). This will result in a
# log file only showing queries originated by this specific System User.
# So for logging only queries executed by user TLE, specify 
# TRANSACTIONDEBUGSYSTEMUSER=TLE
TRANSACTIONDEBUGSYSTEMUSER=

# Part of TRANSACTIONDEBUG mechanism.
# Using the application.properties value TRANSACTIONDEBUGEXCLUDE, you can exclude 
# tables from being logged. Excluded tables should be separated using  ; To 
# exclude ABSLOG and sequence updates ( from dual ), you can specify 
# TRANSACTIONDEBUGEXCLUDE=ABSLOG;DUAL
TRANSACTIONDEBUGEXCLUDE=

# Part of TRANSACTIONDEBUG mechanism.
# Using the application.properties value TRANSACTIONDEBUGINCLUDE, you can specify
# to only include specific tables and the ignore all other tables from being logged. 
# Included tables should be separated using  ; To 
# include only DELIVERYSCANS, you can specify 
# TRANSACTIONDEBUGINCLUDE=DELIVERYSCANS
TRANSACTIONDEBUGINCLUDE=

# Part of TRANSACTIONDEBUG mechanism.
# Using the application.properties value TRANSACTIONDEBUGSHOWDETAILS, you can specify
# if you want to include details of all executed statements. These details are written real-time
# When not enabled, only the top overviews will be logged once the TRANSACTIONDEBUG mechanism is stopped
# Default: NO
TRANSACTIONDEBUGSHOWDETAILS=NO

# Part of TRANSACTIONDEBUG mechanism.
# Using the application.properties value TRANSACTIONDEBUGSHOWDETAILSASROW, you can specify
# if you want to show the details ( when enabled ) in row format or not. The row format shows the details info in CSV format.
# This is handy for viewing the actually passed parameters.
# Default: NO
TRANSACTIONDEBUGSHOWDETAILSASROW=NO

# Part of TRANSACTIONDEBUG mechanism.
# Using the application.properties value TRANSACTIONDEBUGSHOWDETAILSBEFOREEXECUTION, you can specify
# if you want to show the details ( when enabled ) before the statement is actually executed. This can be useful to troubleshoot statements that 
# execute an unpredictable long time and where you cannot wait for completion. The details will of course not include the execution time or result set. 
# Once the statement is finished, the remaining details ( when enabled ), will be logged also, using the same ID. you must enable the TRANSACTIONDEBUGSHOWDETAILS property as well for this to work. It cannot be used in combination with TRANSACTIONDEBUGSHOWDETAILSASROW.
# Default: NO

# Part of TRANSACTIONDEBUG mechanism.
# Will log the row count for each executed statement.
# Values: [ YES | NO ]
# Default: NO
TRANSACTIONDEBUGSHOWROWCOUNT=NO

# Part of TRANSACTIONDEBUG mechanism.
# Will log the actual result set in csv format for each executed statement
# Values: [ YES | NO ]
# Default: NO
TRANSACTIONDEBUGSHOWRESULTSET=NO

# Part of TRANSACTIONDEBUG mechanism.
# Will log a maximum of the specified rows of the actual result set for each executed
# statement. If you want to show the full result set, specify value -1.
# Values: number>0 or -1
# Default: 100
TRANSACTIONDEBUGSHOWRESULTSETMAXLIMIT=100

# Part of TRANSACTIONDEBUG mechanism.
# Use this if you only want to log grouped executions lasting longer than a specific number of milliseconds
# Values: number>=0 milliseconds
# Default: 0
TRANSACTIONDEBUGSHOWGROUPEDEXECUTIONTIMEMIN=0

# Part of TRANSACTIONDEBUG mechanism.
# Use this if you only want to log grouped executions that contain more than a specific number of executions
# Values: number>=0
# Default: 0
TRANSACTIONDEBUGSHOWGROUPEDCOUNTMIN=0

# Part of TRANSACTIONDEBUG mechanism.
# Use this if you want to limit the amount of logged rows in the grouped views
# Values: number>=0
# Default: 500
TRANSACTIONDEBUGSHOWGROUPEDMAXENTRIES=500

# This property is used for logging of API GATEWAY transactions into the WebServiceLog table
# Possible values: YES | NO
# Default: 'NO'
TRANSACTIONDEBUGGATEWAYWEBSERVICELOG=NO

# When 0 the functionality is off and when it is 1 in the server log will be added
# information about which form is closed or opened by which user
# Values: [ 0 | 1 ]
ServerLogLevel=0

# Logs (to System.out printStream) report server queries for report server cluster mechanism.
# Values:[ false | true ] 
# Default Value: false
ReportServerLogging=

# Logs via log4j the execution time (in milliseconds) for all methods in managers, services and singleton beans
# Values:[ NO | YES ] 
# Default Value: NO
MethodExecutionTimeLogging=NO

# Logs information related to the database activity (blocking sessions, locked objects, long running queries)
# Values:[ NO | YES ] 
# Default Value: NO
DatabaseDebugging=NO

# Determines the interval the database activity is being logged; only taken into account when DabaseDebugging=YES
# Values: number > 0 (seconds)
# Default Value: 300 (seconds) = 5 minutes
DatabaseDebuggingMonitoringInterval=300

# Logs the current thread dump of the application server
# Values:[ NO | YES ] 
# Default Value: NO
ThreadDumpLogging=NO

# Determines the interval the thread dump of the application server is being collected; only taken into account when ThreadDumpLogging=YES
# Values: number > 0 (seconds)
# Default Value: 300 (seconds) = 5 minutes
ThreadDumpMonitoringInterval=300

#######################
# Legacy              #
#######################

# Local path for legacy system. (it is for DOS)
BtrieveDataPath=

# It's used to make sure that an ABSSolute server is connected to the correct database. 
# This environment check is comparing the value of Environment column from 
# DatabaseSettings table with the value of the property Environment 
# set in server.properties. 
Environment=Production

# This field is used for the on-line file license implementation
# In order to prevent a license from the test environment on the production environment,
# this value is checked against the value in the license file and in the database settings table.
# Values: [ Production | Test ]
# Default: Production
EnvironmentStage=Production

# Used only for debug purposes; works in conjunction with server parameter -SSDEBUG
# Defines the path for the file from which the values of the system settings will be used for current plant.
SystemSettingDebug=

# Google API Key used to display the routes in client application from Route Status Control dialog
CLIENTGOOGLEAPIKEY=

# JxBrowser Key used to display the route on a Google Map in Route Status Control Dialog
JxBrowserLicenseKey=1BNDIEOFAYWD6O72U627F3E37F9026ZXGK24J5BP8Y6TU4KVQC1W1GXJ2AJG6L32WW9Z1K

# These properties are used to enable the REST API documentation page, it's recommended to disable these properties in Production
springdoc.swagger-ui.enabled=false
springdoc.api-docs.enabled=false

# This property indicates whether commits should be allowed or rejected for system users that do not have necessary access level rights
# Possible values: Y[es] | N[o]
# Default: 'N'
AllowCommitsInReadOnlyMode=N

##############################
#  Springboot configuration  #
#       DO NOT CHANGE!       #
##############################
spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER
spring.main.allow-circular-references=true