Server Configuration File

SanteDB dCDR and iCDR use a file-based configuration system to control the behaviors of the host process, synchronization, etc. Variables within the host configuration file are required to start up the core services of the SanteDB server.

The configuration options in the configuration file differ from those which control business behavior in that they are system settings. As such:

  • Changes to the configuration file require a restart of the host process,

  • Because changes require a restart - NO REST API may modify settings within the configuration file, since a REST API would be (in effect) controlling service uptime

    • The dCDR interfaces do allow minor modifications of configuration via web-interfaces.


The overall configuration file structure is illustrated in the code block below:

<SanteDBConfiguration xmlns:xsi="" 
              <!-- Section Registration -->
       <section xsi:type="SectionType">

The SanteDB configuration files are identical in structure on the iCDR, dCDR (on Windows, Linux, Android, etc.). This commonality between platforms and frameworks is why SanteDB does not leverage the default .NET app.config or config.json structures.

The namespace definitions used in the configuration file allow plugins to isolate their configuration types. The default SanteDB configuration namespaces are:



SanteDB Core



The configuration must contain two sections:

  • Header - Which contains the <sections> element and identifies to the configuration engine which IConfigurationSection instances are being used (see Configuration Wiki Page)

  • Configuration Sections - Which contain the <section> element and configure the actual plugins in SanteDB.

Sections Element

The <sections> element identifies the types of IConfigurationSection you're deployment uses. The section element contains one or more <add> elements with a type reference:

    <add type="SanteDB.Core.Configuration.DiagnosticsConfigurationSection, SanteDB.Core.Api, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.AppletConfigurationSection, SanteDB.Core, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.ApplicationServiceContextConfigurationSection, SanteDB.Core.Api, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.Data.DataConfigurationSection, SanteDB.Core.Api, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Caching.Memory.Configuration.MemoryCacheConfigurationSection, SanteDB.Caching.Memory, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.RestConfigurationSection, SanteDB.Core, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.ClaimsAuthorizationConfigurationSection, SanteDB.Core, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.SecurityConfigurationSection, SanteDB.Core, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Messaging.HDSI.Configuration.HdsiConfigurationSection, SanteDB.Messaging.HDSI, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Persistence.Data.ADO.Configuration.AdoPersistenceConfigurationSection, SanteDB.Persistence.Data.ADO, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.OrmLite.Configuration.OrmConfigurationSection, SanteDB.OrmLite, Version=, Culture=neutral, PublicKeyToken=null" />
    <add type="SanteDB.Core.Configuration.AuditAccountabilityConfigurationSection, SanteDB.Core.Api, Version="/>

At minimum, your configuration file should contain/use the following configuration sections documented on this section.

Configuration Sections

Last updated