# Workflow Configuration

## Configs Class

The `Configs` class is a configuration class that holds various settings and parameters for your application. These settings can be used to control different aspects of your application's behavior.

### Class Methods are divided into the following categories:

* [Logging  Configuration](#logging-configuration)
* [Date and Time Configuration](#date-and-time-configuration)
* [Compiler Configuration](#compiler-configuration)
* [Automatic Cleanup](#automatic-cleanup)
* [Thread Pool Configuration (To be Implemented)](#thread-pool-configuration)
* [Retry Handling (To be implemented)](#retry-handling)
* [Timeout Configuration (To be implemented)](#timeout-configuration)
* [Storage Configuration (To be implemented)](#storage-configuration)

***

### Logging Configuration

**Log Level**

Returns the log level for controlling the verbosity of log messages.

<pre class="language-javascript"><code class="lang-javascript">// Accessing the log level
var logLevel = Configs.logLevel;
return "Current log level:" + logLevel;
// value = INFO
<strong>
</strong><strong>/* Current log level: WorkFlowConfigItem(group=GENERAL, needsRestart=true,
</strong><strong>             value=INFO, revision=1, changedInProd=false, 
</strong><strong>            updated=2023-09-13T13:11:39.571122Z, updatedBy=)
</strong><strong>*/
</strong></code></pre>

~~**Log Pattern**~~ (To be implemented)

* Field: `logPattern`
* Type: String
* Description: A string pattern for formatting log messages.

```
// Some code
```

***

### Date and Time Configuration

**Date Format**

* Field: `dateFormat`
* Type: String
* Description: The date format used in your application.

```typescript
// Accessing the date format in string value
var dateformat = Configs.dateFormat;
return "date format :" + dateformat;
// value = yyyy-MM-dd HH:mm:ss

/* WorkFlowConfigItem(group=GENERAL, needsRestart=false, value=yyyy-MM-dd HH:mm:ss, 
                revision=1, changedInProd=false, 
                updated=2023-10-31T13:26:17.472188200Z, updatedBy=)
*/
```

**Date Time Zone**

* Field: `dateTimeZone`
* Type: String
* Description: The time zone for date and time operations.

<pre class="language-typescript"><code class="lang-typescript">// Accessing the log level
var datetimezone = Configs.dateTimeZone;
return "Date-Time Zone:" + datetimezone ;
// value = Asia/Jerusalem

/* Date-Time Zone: WorkFlowConfigItem(group=GENERAL, needsRestart=false, 
<strong>                value=Asia/Jerusalem, revision=1, changedInProd=false, 
</strong><strong>                updated=2023-09-13T13:11:39.571122Z, updatedBy=)
</strong><strong>*/
</strong></code></pre>

***

### Compiler Configuration

**Compiler Cache**

* Field: `compilerCache`
* Type: Integer
* Description: Compiler cache settings.

<pre class="language-typescript"><code class="lang-typescript"><strong>// Accessing the compiler Cache value as Integer
</strong>var cache = Configs.compilerCache;
return "cache:" + cache;
// value = 256

/* cache: WorkFlowConfigItem(group=COMPILER, needsRestart=true, 
                value=256, revision=2, changedInProd=false, 
                updated=2023-09-13T13:11:39.586737Z, updatedBy=)
*/
</code></pre>

**Compiler Debug**

* Field: `compilerDebug`
* Type: Integer
* Description: Compiler debug settings.

```typescript
// Accessing the Compiler debug value as integer
var debug = Configs.compilerDebug;
return "debug:" + debug;
// value=true
/* :WorkFlowConfigItem(group=COMPILER, needsRestart=true, value=true, 
                revision=1, changedInProd=false, 
                updated=2023-10-31T13:26:17.472188200Z, updatedBy=)
*/
```

**Compiler Safety**

* Field: `compilerSafe`
* Type: Integer
* Description: Compiler safety settings.

```typescript
// Accessing the Compiler safe value as integer
var safe = Configs.compilerSafe;
return "safe :" + safe ;
// value= true

/* WorkFlowConfigItem(group=COMPILER, needsRestart=true, value=true, 
                revision=1, changedInProd=false, 
                updated=2023-10-31T13:26:17.472188200Z, updatedBy=)
*/
```

***

### Automatic Cleanup

**Auto-Clean Up History**

* Field: `autoCleanUpHistory`
* Type: Boolean
* Description: A boolean to enable automatic cleanup of historical data.

```typescript
// Accessing the log level
var bool = Configs.autoCleanUpHistory;
return " " + bool ;
// value = true

/* WorkFlowConfigItem(group=CLEANUP, needsRestart=false, value=true, revision=2, 
        changedInProd=false, updated=2023-09-13T13:11:39.586737Z, updatedBy=)
*/
```

**Auto-Clean Up Limit**

* Field: `autoCleanUpLimit`
* Type: Integer
* Description: The limit for automatic cleanup.

```typescript
// Accessing the log level
var limit = Configs.autoCleanUpLimit;
return "limit:" + limit;
// value = 0

/* limit:WorkFlowConfigItem(group=CLEANUP, needsRestart=false, value=0, 
                revision=1, changedInProd=false, 
                updated=2023-09-13T13:11:39.571122Z, updatedBy=)
*/
```

***

### ~~Thread Pool Configuration~~

**ExecutionIteration Pool** (To be implemented)

* Core Pool Size: `executionCorePoolSize`
* Maximum Pool Size: `executionMaximumPoolSize`
* Keep-Alive Time: `executionKeepAliveTime`

```
// Some code
```

**Trigger Handling** (To be implemented)

* Core Pool Size: `triggersCorePoolSize`
* Maximum Pool Size: `triggersMaximumPoolSize`
* Keep-Alive Time: `triggersKeepAliveTime`

```
// Some code
```

***

### ~~Retry Handling~~

**Immediate Retry** (To be implemented)

* Threads Count: `immediateRetryPoolThreadsCount`

```
// Some code
```

**Scheduled Retry** (To be implemented)

* Threads Count: `scheduledRetryPoolThreadsCount`

```
// Some code
```

***

### ~~Timeout Configuration~~

**Timeout Scheduler** (To be implemented)

* Threads Count: `timeoutSchedulerPoolThreadsCount`

```
// Some code
```

***

### ~~Storage Configuration~~

**Memory-Mapped Storage** (To be implemented)

* Field: `storageMmapEnabled`
* Type: Boolean
* Description: A boolean to enable/disable memory-mapped storage.

```
// Some code
```

**Pre-Clear Disable** (To be implemented)

* Field: `storagePreClearDisable`
* Type: Boolean
* Description: A boolean to disable pre-clearing storage.

```
// Some code
```

**Close on JVM Shutdown** (To be implemented)

* Field: `storageCloseOnJvmShutdown`
* Type: Boolean
* Description: A boolean to control whether storage is closed on JVM shutdown.

```
// Some code
```

**Checksum Header Bypass** (To be implemented)

* Field: `storageChecksumHeaderBypass`
* Type: Boolean
* Description: A boolean to bypass checksum headers.

```
// Some code
```

**Enable Transactions** (To be implemented)

* Field: `storageEnableTransactions`
* Type: Boolean
* Description: A boolean to enable transactions for storage.

```
// Some code
```

**File Lock Wait** (To be implemented)

* Field: `storageFileLockWait`
* Type: Integer
* Description: Wait time for file locking.

```
// Some code
```

***

~~**Notes**~~ (To be implemented)

A string to store notes or additional information.

```typescript
// Some code
```
