Configurations - advanced
Basic configurations are done via the administration console. However, there are more options to change the configurations. DMS consists of three server components: coreserver (also called DMS), identityserver and notificationserver.
General settings for all components are specified in the appsettings.json, located in the server folder of the installation folder.
Specific settings are specified in component-specific appsettings.json files. An example is the logfile below. Note that when settings exist double (i.e. in the generic appsettings.json as well as in the component-specific versions), the generic appsettings.json are leading.
Example for a specific appsettings.json file (i.e. the DMS or coreserver):
In the table below there is an overview of the setting keys, their default values, and a short explanation of the setting key. These keys are available for each server (coreserver, identityserver and notificationserver).
| Setting key: (default) value | Explanation |
|---|---|
| path:c:\\logs\\dmslog-.log | Path to log file. |
| rollingInterval:Day | Every day a new file is created. |
| rollOnFileSizeLimit:true | Also when size limit is reached a new file will be created. |
| fileSizeLimitBytes:1000000000 | Size limit for creating a new file on the same day. |
Below is an example of the current, generic appsettings.json file (valid for all server components). It is not recommended to copy sections from the generic appsettings.json file to the component-specific files. Editing configurations is normally only done in the generic appsettings.json.
In the table below there is an overview of the setting keys, their default values, and a short explanation of the setting key. These keys are generic , and valid for all server components.
| Setting key: (default) value | Explanation |
|---|---|
| Serilog:Using:Serilog.Sinks.Console, Serilog.Sinks.File | Basic logsettings as fallback or default when settingsfile is not there for one of the servers. |
| MinimumLevel:Default:Warning | For all logging methods, this sets the detail of the logging. |
| Diagnostics:LogRequestsLongerThan:5000 | With this setting a log line will be added if a request takes longer then 5 seconds. |
| ElasticApm:Enabled:false, ServiceName:DMS Core server, ServiceVersion:2026.1,CentralConfig:true, ServerUrls:http://localhost:8200, LogLevel:Information | Settings to configure elasticAPM, this enables advanced logging to be shown through the webinterface Kibana More information about this can be found on elasticAPM. |
| Storage:AssemblyName | If you create your own assembly to handle storing files, put the assembly name here |
| Storage:ClassName | From your own assembly, place the classname here. |
| DatabaseOptions: DataSource:mongodb://localhost:27017/DMS | Connectionstring mongo for alternative mongo database. |
| DatabaseOptions:DataSourceUserName | The mongo user name. |
| DatabaseOptions:DataSourcePassword | The mongo password |
| DatabaseOptions:AuthenticationMethod:0 | The Mongo authentication method. Use 0 for No authentication, 1 for database authentication and 2 for windows (LDAP) authentication. |
| UseSSL:false | Indicates if ssl / tls should be used to connect to Mongo. Set this parameter to true if the Mongo instance requires Ssl / Tls connection. |
| UseSSLSelfSigned:false | Indicates if Mongo is configured with a self signed certificate and thus does not performcertificate validations. |
| UseDpApi:false | DPAPI is used in windows environments for encryption of the Mongo user password (in case of database authentication (authenticationmethod 1)). |
| Caching:Enabled:false | When true, caching content server side. |
| Caching:ExpirationTimeInMin:120 | After two hours, cached items are invalidated / stale and will be renewed, when retrieved. |
| IdentityServer:InstanceName:JewelDMSIdentity | Name of the service. |
| IdentityServer:InstanceDisplayName:JewelDMSIdentity | Name visible in service console. |
| IdentityServer:Urls:http://localhost:5500 | Local connectionstring. |
| IdentityServer:Authority:http://localhost:5500 | Address used between services usually same as url. |
| IdentityServer:PublicAuthority:http://localhost:5500 | Connectionstring to be used via IIS. |
| IdentityServer:HostedOnMultipleEndpoints:true | When true it allows for multiple endpoints to host the service. |
| IdentityServer:EnforceKestrel:true | Enforces the use of kestrel. |
| IdentityServer:Signing: | In case no certificate installed or thumbprint used, fall back to default certificate. |
| RequireHttpsMetadata:false | If https is required for the authority, false only in development environments. |
| EnableCaching:true | Not used for identityserver. |
| EnablePrincipalCaching:true | Caching credentials big performance win when true. |
| CacheDuration:10 | After 10 minutes cache is invalidated |
| AuthenticationRequestTokenDuration:7 | A token requested will valid for 7 days |
| ApiName:api | Name of the api resource used for authentication against introspection endpoint. |
| ApiSecret: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | The "key" is your user ID, and the "secret" is your password to communicate with identityserver |
| ClientId:jeweldbserver | Client communicating with identityserver. |
| AutoAuthorizeOnAuthentication:false | Only used in development, user is always authenticated. |
| ExternalProvider: | Here, external authentication providers can be added. |
| NotificationServer:Hub:/NotificationHub | Entry point, used by signalR. |
| NotificationServer:HubV2: /NotificationHubV2 | Entry point, used by signalR, v2 interface. |
| Swagger:PublicAuthority:http://localhost:5500 | Url to use when connecting to swagger. |
| HowClientShouldSendFiles:MinFileSizeToSendIndividually:256 Kb | Minimal size of content to be send to the server. |
| HowClientShouldSendFiles:MaxBatchSize:1 Mb | Maximum size of content to be send to server. |
| DocumentSplit:MaxVersions:20000 | Mongo documents are limited in size. To make sure that size is not reached, we split documents at forehand. E.g. a baseline contains max number of 20000 versions. |
| DocumentSplit: | When all the numbers listed in the DocuementSplit section are reached, a baseline document is split up. |
Content caching
To enable content caching, go to appsettings.json and set caching to true. Now, if a request for content is being made, DMS will return it from memory if available, offloading mongoDB.