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"] } ```