Feature File

Defined in environment variable UC_ORACULAR_CLIENT_FEATURES as a semicolon-separated list of files
File is of the following format ( {ADD|REMOVE|MODIFY} feature[=value])

Note: If any file defined in UC_ORACULAR_CLIENT_FEATURES cannot be opened, the connection cannot be used in order to preserve security on the instance.

Possible values

MIN_VERSION=<version string>
-------------------------------
This is to ensure that if Oracular MOCA client is improved for a certain feature, that the use of that version is guaranteed.

FORCE_READONLY=<Y|N>
-------------------------------
If Y, then all statements are execute as try { <users statement> } finally { rollback catch(@?) }

AUTO_COMMIT_OFF=<Y|N>
-------------------------------
If FORCE_READONLY is Y then this setting is ignored, otherwise If Y then auto-commit will be off on the client and checkbox will be disabled. Two buttons are placed on the top for executing commit (MOCA Commit) and executing [commit] (DB Commit).

DML_FILTER_FILE=<files in $LESDIR/data.>
-------------------------------
File path can have environment variables. This will be a list of files with ";" delimiter so you can extend it.

DDL_FILTER_FILE=<files in $LESDIR/data.>
-------------------------------
File path can have environment variables. This will be a list of files with ";" delimiter so you can extend it.

CONTROL_SERVER_FILES=<Y|N>
-------------------------------
If Y, editing server files is controlled through specific roles. See below for roles.

CONFIRM_EACH_DML=<number>
-------------------------------
0 implies no confirmation
1 implies 1 confirmation
2 implies duplicate confirmation
On every confirmation the default option is No

CONFIRM_EACH_DDL=<number>
-------------------------------
0 implies no confirmation
1 implies 1 confirmation
2 implies duplicate confirmation
On every confirmation the default option is No

REQUIRE_INFO_FOR_DML_DDL=<name1|name2|...>
-------------------------------
When a DML/DDL statement is executed, this list is parsed, then you are prompted for each name as a textbox.
Typically it will be set to ISSUE#|COMMENT implying user will enter the ISSUE# and a comment.
This will be added as a comment before the command and will then show up in sys_audit.

READ_SETTINGS_EVERY_TIME=<Y|N>
-------------------------------
If Y then whenever the MOCA Client is about to execute something it will re-fetch these settings.
This is good for a PD environment where we can change settings on the server side and be sure that it will be respected.

LOG_TO_SYS_AUDIT=Y
-------------------------------
Forces the "Log to sys_audit" checkbox to be checked.
At the database level, you can disallow deletes or updates so there is a guarantee that everything is being tracked.

AUTO_ROLLBACK_ENABLED=<Y|N>
-------------------------------
If enabled, whenever you execute a DML statement with auto-commit off, a timer starts which counts down to a rollback when the time is up.
This can be used to force users to commit or rollback their changes in a timely manner.

AUTO_ROLLBACK_SECONDS=<number>
-------------------------------
The starting time if auto-rollback is enabled.

Example

In LES/data/registry, define value:
UC_ORACULAR_CLIENT_FEATURES=$LESDIR/data/MOCADEV_FEATURES.txt

In $LESDIR/data/MOCADEV_FEATURES.txt define values:
ADD MIN_VERSION=2014.1
ADD CONTROL_SERVER_FILES=Y
ADD DML_FILTER_FILE=
ADD DDL_FILTER_FILE=

A minimum version of 2014.1 will be enforced, and file editing will be controlled by the roles below.

Roles

Idea here is that if role exists then it is assumed that we need to use it.
i.e. if UC_OSSI_SRC_FILE exists then enforce it.
If it does not exist at all then it is not enforced.

The roles will be checked before every execution if READ_SETTINGS_EVERY_TIME=Y.

a. UC_OSSI_SRC_FILE - Allow editing files in $LESDIR/src. This also extends to the FILTER files mentioned above.
b. UC_OSSI_FEATURE_FILE - Allow editing of the feature file (see #a above) and the FILTER files.
c. UC_OSSI_ALLOW_DML - Allow executing a DML. If not allowed then also turn on the FORCE_READONLY to Yes.
d. UC_OSSI_ALLOW_DDL - Allow executing a DDL.

About Server dialog

Help -> About Server shows the features enabled on the current tab.