Invantive Data Access Point is configured through an `appsettings.json` file. The application-specific part of the configuration file is shown below.
## Examples
The following JSON is an example, with standardized configuration component contents replaced by "...":
```json
{ ...
, "DataAccessPoint":
{ //
// ID.
//
"Id": "MY-ID"
//
// Description.
//
, "Description": "Invantive Data Access Point sample"
//
// Name of the node.
//
, "NodeName": "XYZ1234"
//
// Whether to log language detection extensively.
//
, "LogLanguageDetection": false
//
// Whether to redirect HTTPS.
//
, "RedirectHttps": true
//
// Name of the session cookie.
//
, "SessionCookieName": ".Invantive.Dap.Session"
//
// Name of the authentication cookie.
//
, "AuthenticationCookieName": ".Invantive.Dap.Auth"
//
// Timeout in minutes of the session.
//
, "SessionIdleTimeoutMin": 10
//
// Default Cloud language code.
//
, "DefaultLanguageCode": "nl"
//
// The general phone number.
//
, "GeneralPhoneNumber": "+31 88 00 26 500"
//
// The general email address.
//
, "GeneralEmailAddress": "
[email protected]"
//
// The community forums URL.
//
, "CommunityForumsUrl": "https://forums.invantive.com"
//
// Available languages.
//
, "SupportedLanguageCodes": [ "en", "es", "fr", "nl" ]
//
// Disk cache root directory (obsolete since 25.0).
//
, "DiskCacheRootDirectory": "/mnt/my-app/cache/in/disk"
//
// Disk cache root directory (release 25.0).
//
, "UserHttpDiskCacheRootDirectory": "/mnt/my-app/cache/in/disk"
//
// Public disk cache root directory (shared between users).
//
, "PublicHttpDiskCacheRootDirectory": "/mnt/my-app/cache/in/public/disk"
//
// Incremental data root directory.
//
, "IncDataCacheRootDirectory": "/mnt/my-app/cache/inc"
//
// Permanent cache root directory.
//
, "PermanentDataCacheRootDirectory": "/mnt/my-app/cache/in/permanent"
, "ApplicationDataFolder": "/mnt/my-app/code/App_Data"
//
// Invantive Data Access Point.
//
, "allowAuthUse": true
, "allowTokenUse": true
, "allowTransformUse": false
, "alloLogoffUse": true
, "allowResultsUse": false
, "allowConsoleUse": true
, "allowHintOnlineSqlEditorUse": false
, "allowSupportUse": false
, "allowPresetUse": true
, "oemApplicationName": "My Application"
, "oemApplicationStartUrl": "menu.html"
, "includeMessageCodeInError": true
, "includeMessageTextInError": false
, "includeTechnicalTextInError": true
, "includeFunctionalTextInError": true
, "allowShowApplicationVersion": false
, "allowShowUsage": false
, "includeCallstackInError": false
, "oemApplicationIcon128Url": "images/logo-small.png"
//
// Invantive monitoring configuration.
//
, "Monitoring": ...
, "KeyStorage": ...
//
// Elastic APM
//
, "ElasticApm": ...
//
// Log HTTP requests for Invantive Data Access Point
// to a CloudWatch log group.
//
, "CloudWatch": ...
//
// Configuration to prevent hack attacks using scans.
//
, "AttackPrevention": ...
//
// Heartbeat end point configuration.
//
, "HeartbeatEndpoint": ...
//
// General IP validation.
//
, "IpValidation": ...
//
// SpamHaus IP blocks.
//
, "SpamHaus": ...
//
// Request filtering.
//
, "RequestFiltering": ...
//
// Extended test end point configuration.
//
, "TestEndpoint": ...
}
}
```
## Definition
References are made to configuration components standardized across all Invantive technology web applications, although not all configuration components must have been implemented in all web applications:
- [[Amazon CloudWatch Configuration]]
- [[Attack Prevention Configuration]]
- [[Elastic APM Configuration]]
- [[Heartbeat Endpoint Configuration]]
- [[IP Validation Configuration]]
- [[Key Storage Configuration]]
- [[Application Setting Components/Monitoring Configuration]]
- [[Request Filter Configuration]]
- [[SpamHaus Configuration]]
- [[Test Endpoint Configuration]]
- [[Web Application Configuration]]
```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://invantive.com/schemas/DapConfig.schema.json",
"title": "DapConfig",
"description": "Invantive Data Access Point configuration.",
"type": "object",
"additionalProperties": false,
"properties": {
"Id": {
"type": ["string", "null"],
"description": "Gets the ID."
},
"Description": {
"type": ["string", "null"],
"description": "Gets the description."
},
"RedirectHttps": {
"type": "boolean",
"description": "Gets whether to activate HTTP to HTTPS redirect.",
"default": true
},
"LogLanguageDetection": {
"type": "boolean",
"description": "Gets whether to log language detection extensively.",
"default": false
},
"SiteName": {
"type": "string",
"description": "Gets the site name.",
"default": "Invantive Data Access Point"
},
"ApplicationDataFolder": {
"type": ["string", "null"],
"description": "Gets the application data folder."
},
"UserHttpDiskCacheRootDirectory": {
"type": ["string", "null"],
"description": "Root directory containing the HTTP disk cache files for the current user."
},
"PublicHttpDiskCacheRootDirectory": {
"type": ["string", "null"],
"description": "Root directory containing the HTTP disk cache files for publicly available data (shared between users)."
},
"IncDataCacheRootDirectory": {
"type": ["string", "null"],
"description": "Root directory containing the incremental data cache files."
},
"PermanentDataCacheRootDirectory": {
"type": ["string", "null"],
"description": "Root directory containing the permanent data cache files."
},
"nodeName": {
"type": ["string", "null"],
"description": "Gets the node name."
},
"parameterNameRefreshToken": {
"type": "string",
"description": "Name of parameter to communicate refresh token.",
"default": "X-Refresh-Token"
},
"allowPresetUse": {
"type": "boolean",
"description": "Whether to allow use of presets.",
"default": false
},
"allowShowApplicationVersion": {
"type": "boolean",
"description": "Whether to show application version in default page.",
"default": false
},
"allowShowUsage": {
"type": "boolean",
"description": "Whether to show any usage instructions at all in default page.",
"default": false
},
"oemApplicationName": {
"type": ["string", "null"],
"description": "OEM application name."
},
"oemApplicationStartUrl": {
"type": ["string", "null"],
"description": "OEM start URL.",
"format": "uri"
},
"oemApplicationIcon128Url": {
"type": ["string", "null"],
"description": "OEM icon 128x128 URL.",
"format": "uri"
},
"autoForwardToOemApplicationStartUrl": {
"type": "boolean",
"description": "Whether to auto-forward to the OEM application start URL. When false, the user is forwarded only when the console is not available.",
"default": false
},
"allowConsoleUse": {
"type": "boolean",
"description": "Whether to allow use of console.",
"default": false
},
"allowResultsUse": {
"type": "boolean",
"description": "Whether to allow use of results.",
"default": false
},
"alloLogoffUse": {
"type": "boolean",
"description": "Whether to allow use of logoff.",
"default": false
},
"allowTransformUse": {
"type": "boolean",
"description": "Whether to allow use of transform.",
"default": false
},
"allowAuthUse": {
"type": "boolean",
"description": "Whether to allow use for authentication.",
"default": false
},
"allowTokenUse": {
"type": "boolean",
"description": "Whether to allow use of OAuth token.",
"default": false
},
"allowHintOnlineSqlEditorUse": {
"type": "boolean",
"description": "Whether to allow display of hint on Online SQL Editor use.",
"default": false
},
"allowSupportUse": {
"type": "boolean",
"description": "Whether to allow use of Invantive Support and display of it.",
"default": false
},
"includeMessageCodeInError": {
"type": "boolean",
"description": "Whether to include a message code in error messages.",
"default": false
},
"includeMessageTextInError": {
"type": "boolean",
"description": "Whether to include all message texts in error messages.",
"default": false
},
"includeTechnicalTextInError": {
"type": "boolean",
"description": "Whether to include all technical message texts in error messages, such as SQL errors.",
"default": false
},
"includeFunctionalTextInError": {
"type": "boolean",
"description": "Whether to include all functional message texts in error messages, such as business errors.",
"default": false
},
"includeCallstackInError": {
"type": "boolean",
"description": "Whether to include a call stack in error messages (only when it concerns a development workstation).",
"default": false
},
"SessionCookieName": {
"type": ["string", "null"],
"description": "Gets the session cookie name."
},
"SessionIdleTimeoutMin": {
"type": ["integer", "null"],
"description": "Gets the session timeout in minutes."
},
"DefaultLanguageCode": {
"type": "string",
"description": "Gets the default language code in ISO 639-1 format."
},
"SupportedLanguageCodes": {
"type": ["array", "null"],
"items": { "type": "string" },
"description": "Gets the supported language codes in ISO 639-1 format."
},
"KeyStorage": {
"$ref": "./defs/KeyStorageConfig.schema.json",
"description": "Gets the key storage configuration."
},
"webApplicationSetting": {
"anyOf": [
{ "$ref": "./defs/WebApplicationSetting.schema.json" },
{ "type": "null" }
],
"description": "Gets the web application setting."
},
"CloudWatch": {
"$ref": "./defs/CloudWatchConfig.schema.json",
"description": "Gets the AWS CloudWatch configuration."
},
"ElasticApm": {
"$ref": "./defs/ElasticApmConfig.schema.json",
"description": "Gets the Elastic APM configuration."
},
"AttackPrevention": {
"anyOf": [
{ "$ref": "./defs/AttackPreventionConfig.schema.json" },
{ "type": "null" }
],
"description": "Gets or sets the attack prevention configuration."
},
"GoogleTagManagerId": {
"type": ["string", "null"],
"description": "Google Tag Manager ID."
},
"UseGoogleTagManager": {
"type": "boolean",
"description": "Get or sets whether to use Google Tag Manager."
},
"MatomoContainerId": {
"type": ["string", "null"],
"description": "Matomo Tag Manager ID."
},
"MatomoSiteId": {
"type": ["string", "null"],
"description": "Matomo site ID."
},
"UseMatomoTagManager": {
"type": "boolean",
"description": "Get or sets whether to use Matomo Tag Manager."
},
"UseMatomoTracking": {
"type": "boolean",
"description": "Get or sets whether to use Matomo tracking pixel."
},
"GeneralPhoneNumber": {
"type": ["string", "null"],
"description": "Gets or sets the general phone number."
},
"GeneralEmailAddress": {
"type": ["string", "null"],
"description": "Gets or sets the general email address.",
"format": "email"
},
"CommunityForumsUrl": {
"type": ["string", "null"],
"description": "Gets or sets the community forums URL.",
"format": "uri"
},
"HeartbeatEndpoint": {
"anyOf": [
{ "$ref": "./defs/HeartbeatEndpointConfig.schema.json" },
{ "type": "null" }
],
"description": "Gets or sets the heartbeat endpoint configuration."
},
"TestEndpoint": {
"anyOf": [
{ "$ref": "./defs/ExtendedTestEndpointConfig.schema.json" },
{ "type": "null" }
],
"description": "Gets or sets the extended test endpoint configuration."
},
"IpValidation": {
"anyOf": [
{ "$ref": "./defs/IpValidationConfig.schema.json" },
{ "type": "null" }
],
"description": "Gets or sets the generic IP address checks configuration."
},
"SpamHaus": {
"anyOf": [
{ "$ref": "./defs/SpamHausConfig.schema.json" },
{ "type": "null" }
],
"description": "Gets or sets the SpamHaus configuration."
},
"Monitoring": {
"$ref": "./defs/MonitoringConfig.schema.json",
"description": "Gets the monitoring configuration."
},
"RequestFiltering": {
"$ref": "./defs/RequestFilterConfig.schema.json",
"description": "Gets the request filtering configuration."
}
},
"required": ["nodeName"]
}
```