The server connect to a repository. This repository have it's application settings in the form of an ini file named rdrrXaaa.ini where X is the application letter, usually in modern time an A. This file follows a standard Windows old style structure where you have [SECTIONS] and in these sections you have SETTINGS=val. Instead of making our own settings for the server, we use this file with different sections for the different version of the server. Development Server have a [DEVSERVER] section for all it's settings.  The live server has [SERVER]. If you want other section names you can start the server with parameter --prefix=mysectionname

The order these things are read is command line then settings. This means if you start the server with a parameter that also is set i the ini settings, the command line will override the ini setting.

The server settings

AuthFieldLevel The field used for security levels in server. 
AuthFieldPassword The field used for matching password given by the login process. How the password sent is matched depends on another setting named AuthMethod.
AuthFieldExclude The login method automatically add all fields except password field when logging in to sessiondata. To avoid fields that you do not want, you can set then here as a , seperated list. Default is: "Dummy,Help Level,Level ,Screen Style ,Name"
AuthFieldUsername The field to lookup match for the username part of the login.
AuthLevelDefault The default level assigned to a person logging in where no level field is set.
AuthHashType The hash type to used if hash is set at the authentication method. Support MD5, SHA1, SHA256, SHA384 and SHA512. This is the hash methods you should use when saving the password. Add saltpre + password + saltpost and do the hash on it and save the value to the password field. Then this is done when password is given and this is what is checked against the password field in the database. This way we never store any passwords in palintext.
AuthMethod What method to use to validate passwords. Default is plaintext, but you should not use that if you can avoid it. Support plaintext and hash.
AuthSaltPost The extra string added after the password before making a hash when authentication method is hash
AuthSaltPre The extra string added before the password before making a hash when authentication method is hash
AuthTable Table to use for authentication. Default is Users that also is used by DataEase for Windows applications.
BasicAuthActive Tell system to accept basic authentication on the server. You can have both session and basic turned on, but if the is set to 1 and there is a Authorization heeader set, this takes preference to session.
BasicAuthFailedBody >= 6474
The body part of the execdql used to produce output when a basic authentication failed.
BasicAuthFailedDQL >= 6474 An execdql that is run if a basic authentication failed. Data entry 1 will hold the username tried and data entry 2 the reason for failure.
BasicAuthFieldLevel The field used for security levels for basic authentication calls to the server. 
BasicAuthFieldPassword The field used for matching password given by the login process for basic authentication. Basic only support palintext passwords at the moment.
BasicAuthFieldUsername The field to lookup match for the username part of the basic authentication.
BasicAuthLevelDefault The default level assigned to a call set with basic authentication and where no level field is set.
BasicAuthTable Table to use for basic authentication.
DefaultFolderCreateSecurity Default set for root folder for creating. Default is 4 that means Medium3.
DefaultFolderDeleteSecurity Default set for root folder for deleting. Default is 1 that means High.
DefaultFolderReadSecurity Default set for root folder for reading. Default is 8 that means all can read.
DefaultFolderSecurityIsRecursive This tells if the settings in the root folder should be applied to all folder below without it's own settings. The default is 1 meaning true. To turn of set value to 0 meaning false.
DefaultFolderUpdateSecurity Default set for root folder for updating. Default is 4 that means Medium3.
DefaultUserIsLoggedIn This can be 0 or 1 where 1 logged in. The development server is always logged in and the live server have default 0 not logged in.
DefaultUserName The default users name given to a new session. This is always Developer for development server and default blank for live server.
DefaultUserSecurity The security given to new sessions. This can be used to make it possible for any user of the application to do operations on tables without logging in. In development server this is always 1=High. On live server this is default 8 = None.
Gives the name of the memo field that is used for dql body in execdql using either @name or #id for looking it up. Default is "DQLScript".
Gives the name of the memo field that is used for dql code in execdql using either @name or #id for looking it up. Default is "DQLBody".
Gives the name of the field that is used to lookup #id in execdql. The field have to be a numeric field. Default is "DQLId".
Gives the field name used to lookup the @name used in execdql. The field have to be a text field. Default is "DQLName".
Gives the execdql table name for @name and #number calling execdql. Default is "$$DQLStore$$".

List of extensions of files that are excluded in any folder of the application. The input string elements are separated by a , or ;. The format supported for the exclude elements are *.ext, .ext and fullname.ext.

Ex. ExcludeFiles=*.dql,*.csv,*.exp,workinprogress.html

JSONHeader This is the HTTP header for ContentType used for all returned JSON responses from the server. This will give the browser/remote the application/json type and the default charset used when generating data. The default if nothing is set is "application/json; charset=utf-8" meaning the data returned is of type JSON and the default char set is utf-8. All JSON returned from the server is always utf-8 so do not change this as the JSON still will be utf-8.
To turn on logging on the server. The value 1 or 0 for on or of. Default is off.
The file to log to if you want to store the log to a file. If it have a value that will turn on logging to file. It will create the file if it do not exist and append to it if it do.
Log all request. Value 0 or 1, default is 0 meaning off.
Log all responses. Value 0 or 1. default 0 meaning off.
Log session events like create a new session and save session to file. Value 0 or 1. default 0 meaning off.
Do logging to the console of the server. This mean you can see what is happening live on the console of the started server. Value 0 or 1. default 0 meaning off.
Log all values like request, response and session plus a lot more info of inner events doing on as well. Value 0 or 1. default 0 meaning off.
PrismBoolAsJSONBool Make choice no/yes to be bool in prism. Data sent as json bool and tdf only show bool type. All other interfaces sends bool instead of yes no.
PrismDateTimeAsISO Tell if we want data and time fields in server to be sent to client as ISO formatted strings instead of as is in DataEase.
The format sent from the server on read is YYYYMMDD. Sending dates to server support both YYYYMMDD and YYYY-MM-DD format.
PrismNumberAsJSONNumber Tell if we want number to be sent as numbers or as strings from prism. When numbers are returned from prims they are formatted as whit decimal separators and triplet separators. When working in web you might want to to this in the web browser based on users locale.
Values are 1 for return as number and 0 for return as defined in prism.
Tell if the server should do a re-scan of WebServer table if a page is not found. This setting should be on for a development environment and off for a live server. The default is 0 for live and 1 for dev. This setting can also be set on startup to allow a live server to act as a dev server when needed.
ServerAutoStart Start the server automatically when app i opened in DfW by setting value to 1
ServerAutoStop Stop the server automatically when DfW is closed by setting value to 1
ServerPort The port used by default of the server. If no port is given, a random port between 8000-8999 will be automatically assigned by DfW.
ServerRestart Used by DfW to set if server should automatically restart on exit. To do this set value to 1.
ServiceDQL >= 6474 An execdql that is run in a schedule set by ServiceDQLTimeout
ServiceDQLTimeout >= 6474 The timeout in minutes between each run on the service DQL. Default is 0 meaning never. 60 is 1 hour and 1440 is 24 hours.
SessionTimeout The default session timeout used for logged in users in minutes. Default is 1440 minutes (24h).
SqlConnectOnStart >= 6541
Tell is the server should do all connections before starting the server or connect on first use. Values are 1 or 0 where 1 is true and 0 is false. Default is 0.
SqlDefault >= 6541
Name of a default session. If not set, the firs in the SqlSessions list will be the default.
SqlSessions >= 6540

A list of session names that each will have a own section in the rdrrxaaa.ini file with how to connect the the sql server. The list can be separated by space, comma or semicolon.

Keys in section used for connection are:

SessionName - if you want other name of your section than the one given in SqlSessions. If not the name from SqlSession is used.

ServerName - the name of the ODBC definition. If none is given, the sessionname is used as this usually are the case with ODBC.

DatabaseName - the database to use on the sql server. You can also set this in ODBC definition as default database as you then do not have to specify the database name in you SQL statements. If the database name is set in ODBC, you do not have to add it here as it then is read from the ODBC definition.

Username - Username used for logging into the server

Password - Password used to logging into the server


The folder server will look for files first. If not set this will be the DataEase application folder. You can set it relative to the application folder by not have a : in second position.

Ex. WebRoot=static your folder for files are DEAppFolder\static

WebRootExcludeDEFiles Value 0=off and  1=on: means to exclude all files used by DataEase database from beeing loaded in server. These are files like .dbm and .tdf Default is 1 but if you have set a web root other than default you can turn it off to save load on the server.

Name of table to use for web related data.

The other versions will be updated as they are available.

The security levels and numeric values

0 This is a level that can be used on folder security to disallow the use. This can be uses in live server to turn off function that should not be available at all.
High 1 The super user in DataEase that can do all. This is also the default security for delete in folder security for root.
Medium1 2
Medium2 3
Medium3 4 The is the default set in DataEase tables for update, modify and delete in table def. It is also the default for folder default folder security for update and create
Low1 5
Low2 6
Low3 7 This is the lowest security that can be set on DataEase tables. It is also the security level for read records in DataEase tables.
8 Is a level that means all can do. This is often used for files that all can read in a library. This is the default security level for folder read

We might add the possibility to redefine the names of the levels at a later point. We will also add groups.

The locale settings for date and time

In DataEase you can now add settings in RDRRxAAA.INI for data and time formats. This is also used for the server. Here are the supported settings. All of the is set under the section [LOCALE].

DateSeparator The character used to separate different parts of a date. You can use and single character, ascii code or SPACE
DateStandard Set the order of data. Can be 1, 2 or 3. 1=MM/DD/YY 2=DD/MM/YY and 3=YY/MM/DD
DecimalSeparator The character used to separate decimal part from whole part of a number. You can use and single character, ascii code or SPACE
TimeSeparator The character used to separate different parts of time. You can use and single character, ascii code or SPACE
TripletSeparator The character used to split numbers into triplets. You can use any single character, ascii code, SPACE or NONE. NONE will remove the separator from numbers so you can get normal numbers like 1234567.89 instead of 1 234 567,89.

Mind that this now is also what is used by the DataEase application in the client and not just for web.