Configuration JSON schema
The Create command receives a full configuration JSON template template as an input parameter. All the other commands may work with just the configuratorInformation section.
For all the upcoming sections, settings that are used by an action are marked as (✅) while unused settings are marked as (⬜️).
Configurator Information
The Configurator Information section contains information needed to connect to the (Azure) SQL database server. This section is used for all actions. The Delete, Upgrade, ImportData, and ExportData actions need only this section to run. The Upgrade action may need additional settings though.
JSON template:
{
"configuratorInformation": {
"databaseProvider": "MSSQL",
"databaseServerName": "",
"databaseLoginUserName": "",
"databaseLoginUserPassword": "",
"port": 1433
}
}
Parameters:
| Name | Data type | Required? | Default value |
|---|---|---|---|
| databaseProvider | Enum = {MSSQL, MariaDB} | No | MSSQL |
| databaseServerName | string | true | localhost |
| databaseLoginUserName | string | false | |
| databaseLoginUserPassword | string | false | |
| port | number | false | 1433 |
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1) | databaseProvider |
| (2) | databaseServerName |
| (3) | databaseLoginUserName |
| (4) | databaseLoginUserPassword |
| (5) | port |

Examples using MSSQL database provider
If your database server is installed on localhost, you can leave the
databaseServerNamesetting empty:"configuratorInformation": { "databaseProvider": "MSSQL", "databaseServerName": "", "databaseLoginUserName": "databaseuser", "databaseLoginUserPassword": "OhCQd0GRD72LjMUw2pIh" }Corresponding configuration on UI:

If you want to connect to the SQL server using Windows integrated authentication, you need to leave
databaseLoginUserNameanddatabaseLoginUserPasswordsettings empty:"configuratorInformation": { "databaseProvider": "MSSQL", "databaseServerName": "", "databaseLoginUserName": "", "databaseLoginUserPassword": "" }Corresponding configuration on UI:

If you are using an SQL server installed on another machine which is always the case in production, you need to specify the SQL server name and credentials (or leave the credentials empty if you are using Windows integrated authentication):
"configuratorInformation": { "databaseProvider": "MSSQL", "databaseServerName": "WIN-EC1LAPCPS79\\MSSQLSERVERSW", "databaseLoginUserName": "databaseuser", "databaseLoginUserPassword": "OhCQd0GRD72LjMUw2pIh" }Corresponding configuration on UI:

Examples using MariaDB database provider
You need to provide the MariaDB server name, credentials, and port number.:
"configuratorInformation": { "databaseProvider": "MariaDB", "databaseServerName": "dqtglobeteam", "databaseLoginUserName": "admin", "databaseLoginUserPassword": "OhCQd0GRD72LjMUw2pIh", "port": 3306 }Corresponding configuration on UI:

General information configuration
JSON template:
"tenantConfiguration": {
"clientName": "",
"defaultLanguage": "",
"tenantId": "",
"safewhereAdminIdleTimeout": 20,
"passwordAdmin": ""
}
Parameters:
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| clientName | string | true | ✅ | ✅ | |
| defaultLanguage | string | true | ✅ | ✅ | |
| tenantId | string | true | ✅ | ⬜️ | |
| passwordAdmin | string | true | ✅ | ⬜️ | |
| safewhereAdminIdleTimeout | string | false | 20 | ✅ | ⬜️ |
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1) | tenantId |
| (2) | clientName |
| (3) | defaultLanguage |
| (4) | passwordAdmin |
| (5) | safewhereAdminIdleTimeout |

Examples
Input settings for an instance:
"tenantConfiguration": { "clientName": "SWSECONDMACHINE", "defaultLanguage": "da", "tenantId": "identifytenant", "safewhereAdminIdleTimeout": 97, "passwordAdmin": "OhCQd0GRD72LjMUw2pIh" }Corresponding configuration on UI:

Instance's database connection configuration
JSON template:
"tenantDatabaseConfiguration": {
"isMultiSubnetFailover": false,
"databaseConfiguration": {
"server": "",
"schema": "",
"loginUserName": "",
"loginPassword": "",
"dbAuthenticationType": "SQLServerAuthentication"
},
"auditConfiguration": {
"providerType": "SQLDatabase",
"host": "",
"loginName": "",
"password": "",
"port": 1433,
"connectionTimeout": 60,
"cosmosDBMaxIdleTime": 120000
},
"sessionStateConfiguration": {
"sessionStateMode": "InProc",
"timeOut": 60
}
}
Enable multi subnet fail over parameters
Note: This setting is not supported for the MariaDB database provider. The guideline below is intended for the MSSQL database provider, so please skip this section if you are currently using the MariaDB database provider.
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| isMultiSubnetFailover | boolean | false | false | ✅ | ⬜️ |
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1) | isMultiSubnetFailover |

Example
"tenantDatabaseConfiguration": {
"isMultiSubnetFailover": true
}
Corresponding configuration on UI:

Database configuration parameters
Note: The guideline below is intended for the MSSQL database provider, so please skip this section if you are currently using the MariaDB database provider, the loginUserName and loginPassword are generated automatically.
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| schema | string | false | ✅ | ⬜️ | |
| server | string | false | localhost | ✅ | ⬜️ |
| loginUserName | string | false | false | ✅ | ⬜️ |
| loginPassword | string | false | false | ✅ | ✅ |
| dbAuthenticationType | Enum = {SQLServerAuthentication, WindowsAuthentication} | false | SQLServerAuthentication | ✅ | ⬜️ |
When the dbAuthenticationType setting is "SQLServerAuthentication", processing rules for the other optional settings are:
Index Name Required? Description (1) schema false If you leave it empty, it will take the value of tenantConfiguration.tenantId(2) server false If you leave it empty, it will take the value of configuratorInformation.databaseServerName(3) dbAuthenticationType true Must be "SQLServerAuthentication" in this case (4) loginUserName false A username is generated automatically using the schema name as the prefix (5) loginPassword false A random password is generated automatically Their respective settings on the UI are:

An example of the tenant database configuration using SQL database authentication is:
"tenantDatabaseConfiguration": { "isMultiSubnetFailover": true, "databaseConfiguration": { "server": "WIN-EC1LAPCPS79\\MSSQLSERVERSW", "schema": "identifytenant", "dbAuthenticationType": "SQLServerAuthentication" } }The respective configuration on the UI is:

When the dbAuthenticationType setting is "WindowsAuthentication", processing rules for the other optional settings are:
Index Name Required? Description (1) schema false If you leave it empty, it will take the value of tenantConfiguration.tenantId(2) server false If you leave it empty, it will take the value of configuratorInformation.databaseServerName(3) dbAuthenticationType true Must be "WindowsAuthentication" in this case (4) loginUserName false Specify the username for the selected database server. For domain users, it should be in the format "domain\\user". If the user’s login credentials do not exist in the database, they will be added automatically. (5) loginPassword true Enter the password of the above user. 
An example of the tenant database configuration using Windows authentication is:
"tenantDatabaseConfiguration": { "databaseConfiguration": { "server": "WIN-EC1LAPCPS79\\MSSQLSERVERSW", "schema": "identifytenant", "loginUserName": "WIN-EC1LAPCPS79\\anyiduser1", "loginPassword": "OhCQd0GRD72LjMUw2pIh", "dbAuthenticationType": "SQLServerAuthentication" } }The respective configuration on the UI is:

Audit configuration parameters
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| providerType | Enum = {(SQLDatabase or MariaDb), MongoDb, CosmosDb} |
true | SQLDatabase or MariaDB |
✅ | ⬜️ |
| host | string | false | ✅ | ⬜️ | |
| loginName | string | false | ✅ | ⬜️ | |
| password | string | false | ✅ | ⬜️ | |
| port | number | false | 1433 | ✅ | ⬜️ |
| connectionTimeout | number | false | 60 | ✅ | ⬜️ |
| cosmosDBMaxIdleTime | number | false | 120000 | ✅ | ⬜️ |
When the providerType setting is "SQLDatabase", processing rules for the other optional settings are:
Index Name Required? Description (1) providerType true Must be "SQLDatabase" in this case (2) host false You don't need to specify value for it. The default value is always taken from databaseConfiguration.serverof the tenant database configuration(3) loginName false You don't need to specify value for it. The default value is always taken from databaseConfiguration.loginUserNameof the tenant database configuration(4) password false You don't need to specify value for it. The default value is always taken from databaseConfiguration.loginPasswordof the tenant database configuration(5) port false You can specify a value for it or leave it empty. The default value is 1433 (6) connectionTimeout false You can specify a value for it or leave it empty. The default value is 60 seconds 
An example of the configuration section using SQL database is:
"tenantDatabaseConfiguration": { "auditConfiguration": { "providerType": "SQLDatabase", "port": 1433, "connectionTimeout": 60 } }When the providerType setting is "MongoDb", processing rules for the other optional settings are:
Index Name Required? Description (1) providerType true Must be "MongoDb" in this case (2) host false You don't need to specify value for it. The default value is always taken from databaseConfiguration.serverof the tenant database configuration(3) loginName false Specify the username for the selected database server. For domain users, it should be in the format domain\\user. If the user’s login credentials do not exist in the database, they will be added automatically. If you leave it empty, the default value will be taken from databaseConfiguration.loginUserNameof the tenant database configuration(4) password false Enter the password of the above user. If you leave it empty, the default value will be taken from databaseConfiguration.loginPasswordof the tenant database configuration(5) port false You can specify a value for it or leave it empty. The default value is 27017 (6) connectionTimeout false You can specify a value for it or leave it empty. The default value is 60 seconds 
An example of the configuration Audit log using MongoDb database as below:
"tenantDatabaseConfiguration": { "auditConfiguration": { "providerType": "MongoDb", "host": "safewhere.mongo.cosmos.azure.com", "loginName": "safewhereuser", "password": "pasword_of_safewhereuser", "port": 27017, "connectionTimeout": 60 } }When the providerType setting is "CosmosDb", processing rules for the other optional settings are:
Index Name Required? Description (1) providerType true Must be "CosmosDb" in this case (2) host true Specify the HOSTof an Azure Cosmos DB account(3) loginName true Specify the USERNAMEof Azure Cosmos DB account(4) password true Specify the PRIMARY PASSWORDorSECONDARY PASSWORDof the account(5) port false You can specify a value for it or leave it empty. The default value is 10255 (6) cosmosDBMaxIdleTime false You can specify a value for it or leave it empty. The default value is 120000 seconds 
To use the CosmosDB, you must create a CosmosDB account on the Azure portal. Navigate to the Connection String tab to get the required information for the Identify Configurator.

An example of the configuration Audit log using Cosmos database as below:
"tenantDatabaseConfiguration": { "auditConfiguration": { "providerType": "CosmosDb", "host": "dqtcosmosdb.mongo.cosmos.azure.com", "loginName": "dqtcosmosdb", "password": "BVasdsaw123123masgeaasdAdCsYcvdT6LH0Q==", "port": 3306, "cosmosDBMaxIdleTime": 60 } }When the providerType setting is "MariaDb", processing rules for the other optional settings are:
Index Name Required? Description (1) providerType true Must be "MariaDb" in this case (2) host false You don't need to specify value for it. The default value is always taken from databaseConfiguration.serverof the tenant database configuration(3) loginName false You don't need to specify value for it. The default value is always taken from databaseConfiguration.loginUserNameof the tenant database configuration(4) password false You don't need to specify value for it. The default value is always taken from databaseConfiguration.loginPasswordof the tenant database configuration(5) port false You can specify a value for it or leave it empty. The default value is 3306 (6) connectionTimeout false You can specify a value for it or leave it empty. The default value is 60 seconds 
An example of the configuration Audit log using MariaDb database as below:
"tenantDatabaseConfiguration": { "auditConfiguration": { "providerType": "MariaDb", "port": 3306, "connectionTimeout": 60 } }
Session state configuration parameters
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| sessionStateMode | Enum = [InProc, SQLServer or Custom] |
false | InProc | ✅ | ⬜️ |
| timeOut | number | false | 60 | ✅ | ⬜️ |
Note: When using the MSSQL database provider, you have two options to configure session state: InProc and SQLServer. When using the MariaDB database provider, you have two options to configure session state: InProc and Custom.
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1) | sessionStateMode |
| (2) | timeOut |

Example
Input value
InProcforsessionStateMode:"tenantDatabaseConfiguration": { "sessionStateConfiguration": { "sessionStateMode": "InProc", "timeOut": 60 } }Corresponding configuration on UI:

Input value
SQLServerforsessionStateMode:"tenantDatabaseConfiguration": { "sessionStateConfiguration": { "sessionStateMode": "SQLServer", "timeOut": 60 } }Corresponding configuration on UI:

Input value
CustomforsessionStateModewhen using MariaDB database provider:"tenantDatabaseConfiguration": { "sessionStateConfiguration": { "sessionStateMode": "Custom", "timeOut": 60 } }Corresponding configuration on UI:

Instance's IIS configuration
JSON template:
"tenantIISConfiguration": {
"generateDefaultValues": true,
"serverIpAddress": "127.0.0.1",
"port": 443,
"domainName": "",
"siteName": "",
"sitePool": "",
"adminPool": "",
"runtimePool": "",
"servicePool": "",
"bindCertificate": true,
"requireServerNameIndication": false,
"useHttpSecurityHeaders": true,
"identifySecuritySettingsXMLConfiguration": "",
"safewhereAdminSecuritySettingsXMLConfiguration": ""
}
Parameters:
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| generateDefaultValues | boolean | false | true | ✅ | ⬜️ |
| serverIpAddress | string | false | 127.0.0.1 | ✅ | ⬜️ |
| port | number | value | 443 | ✅ | ⬜️ |
| domainName | string | true | ✅ | ⬜️ | |
| siteName | string | true | ✅ | ⬜️ | |
| sitePool | string | true | ✅ | ⬜️ | |
| adminPool | string | true | ✅ | ⬜️ | |
| runtimePool | string | true | ✅ | ⬜️ | |
| servicePool | string | true | ✅ | ⬜️ | |
| bindCertificate | boolean | false | true | ✅ | ⬜️ |
| requireServerNameIndication | boolean | false | false | ✅ | ⬜️ |
| useHttpSecurityHeaders | boolean | false | true | ✅ | ⬜️ |
| identifySecuritySettingsXMLConfiguration | string | false | true | ✅ | ⬜️ |
| safewhereAdminSecuritySettingsXMLConfiguration | string | false | true | ✅ | ⬜️ |
Corresponding configuration on UIs:
| Index | Name |
|---|---|
| (1) | generateDefaultValues |

| Index | Name |
|---|---|
| (1) | serverIpAddress |
| (2) | port |
| (3) | domainName |
| (4) | bindCertificate |
| (5) | requireServerNameIndication |
| (6) | siteName |
| (7) | sitePool |
| (8) | adminPool |
| (9) | runtimePool |
| (10) | servicePool |

| Index | Name |
|---|---|
| (1) | useHttpSecurityHeaders |
| (2) | identifySecuritySettingsXMLConfiguration |
| (3) | safewhereAdminSecuritySettingsXMLConfiguration |

Example
If
generateDefaultValuesis true, based ontenantIdsome settings will auto-generate such asdomainName,siteName,sitePool,adminPool,runtimePool,servicePooland default values ofbindCertificate,requireServerNameIndicationaretrue:"tenantIISConfiguration": { "generateDefaultValues": true, "serverIpAddress": "127.0.0.1", "port": 443, }Corresponding configuration on UI:

If
generateDefaultValuesis false, you need to specify values for IIS settings:"tenantIISConfiguration": { "serverIpAddress": "127.0.0.1", "port": 443, "domainName": "identifytenantcustom.safewhere.local", "siteName": "identifytenant sitename", "sitePool": "AppPool identifytenant", "adminPool": "Admin AppPool identifytenant", "runtimePool": "Runtime AppPool identifytenant", "servicePool": "Service AppPool identifytenant", "bindCertificate": true, "requireServerNameIndication": true }Corresponding configuration on UI:

Set value of
useHttpSecurityHeadersto true, if you want to use recommended security headers:"tenantIISConfiguration": { "useHttpSecurityHeaders": true, "identifySecuritySettingsXMLConfiguration": "", "safewhereAdminSecuritySettingsXMLConfiguration": "" }The value of the
identifySecuritySettingsXMLConfigurationproperty is a<system.webServer>XML block in Base64-encoded format. If you leave it empty, the default value will be used.The value of the
safewhereAdminSecuritySettingsXMLConfigurationproperty is a<system.webServer>XML block in Base64-encoded format. If you leave it empty, the default value will be used.
Corresponding configuration on UI:

XML configuration for
identifySecuritySettingsXMLConfiguration:
XML configuration for
safewhereAdminSecuritySettingsXMLConfiguration:
Otherwise, set value of
useHttpSecurityHeadersto false:"tenantIISConfiguration": { "useHttpSecurityHeaders": false }Corresponding configuration on UI:

Instance's certificates configuration
JSON template:
"tenantCertificateConfiguration": {
"sslCertificateConfiguration": {
"certificateSetupType": "UseDefaultCertificate",
"sslDomainName": "safewhere.local",
"filePath": "",
"password": "",
"certificateThumbprintInStore": ""
},
"signingCertificateConfiguration": {
"certificateSetupType": "UseDefaultCertificate",
"filePath": "",
"password": "",
"certificateThumbprintInStore": "",
"keyVaultMode": "Certificate",
"azureTenantId": "",
"applicationClientId": "",
"applicationClientSecret": "",
"azureKeyVaultUrl": "",
"certificateName": "",
"keyName": "",
"base64Certificate": ""
},
"pathToTrustedRootCertificateToImport": ""
}
Trusted Root CA certificate configuration
Parameters:
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| pathToTrustedRootCertificateToImport | string | false | ✅ | ⬜️ |
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1) | pathToTrustedRootCertificateToImport |

Example
Input value for pathToTrustedRootCertificateToImport:
"tenantCertificateConfiguration": {
"pathToTrustedRootCertificateToImport": "C:\\Program Files\\Safewhere\\Identify\\Certificates\\SafewhereCA.cer"
}
Corresponding configuration on UI:

SSL certificate configuration parameters
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| certificateSetupType | Enum = {UseDefaultCertificate, UseAutoGeneratedCertificate, ImportFromFile, SelectFromServerCertificateStore} | false | UseDefaultCertificate | ✅ | ⬜️ |
| sslDomainName | string | false | "safewhere.local" | ✅ | ⬜️ |
| filePath | string | false | ✅ | ⬜️ | |
| password | string | false | ✅ | ⬜️ | |
| certificateThumbprintInStore | string | false | ✅ | ⬜️ |
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1.1) | certificateSetupType = UseDefaultCertificate |
| (1.2) | certificateSetupType = UseAutoGeneratedCertificate |
| (1.3) | certificateSetupType = ImportFromFile |
| (1.4) | certificateSetupType = SelectFromServerCertificateStore |
| (2) | sslDomainName |
| (3) | filePath |
| (4) | password |
| (5) | certificateThumbprintInStore |

Example
If certificateSetupType = UseDefaultCertificate, you don't need to input values for other settings:
"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "UseDefaultCertificate" } }Corresponding configuration on UI:

If certificateSetupType = UseAutoGeneratedCertificate, you need to input value for
sslDomainName:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "UseAutoGeneratedCertificate", "sslDomainName": "anyid.eu" } }Corresponding configuration on UI:

If certificateSetupType = ImportFromFile, you need to input values for
filePathandpassword:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "ImportFromFile", "filePath": "C:\\Program Files\\Safewhere\\Identify\\Certificates\\safewhere.local.pfx", "password": "Test1234" } }Corresponding configuration on UI:

If certificateSetupType = SelectFromServerCertificateStore, you need to input values for
certificateThumbprintInStore:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "SelectFromServerCertificateStore", "certificateThumbprintInStore": "3C1FD735A4035E3B78D33444DE5327C393AA282E" } }Corresponding configuration on UI:

Signing certificate configuration parameters
| Name | Data type | Required? | Default value | Create | Replicate |
|---|---|---|---|---|---|
| certificateSetupType | Enum = {UseDefaultCertificate, UseAutoGeneratedCertificate, ImportFromFile, SelectFromServerCertificateStore, UseAzureKeyVault} | false | UseDefaultCertificate | ✅ | ⬜️ |
| filePath | string | false | ✅ | ⬜️ | |
| password | string | false | ✅ | ⬜️ | |
| certificateThumbprintInStore | string | false | ✅ | ⬜️ | |
| keyVaultMode | Enum = {Certificate, Key} | false | Certificate | ✅ | ⬜️ |
| azureTenantId | string | false | ✅ | ⬜️ | |
| applicationClientId | string | false | ✅ | ⬜️ | |
| applicationClientSecret | string | false | ✅ | ⬜️ | |
| azureKeyVaultUrl | string | false | ✅ | ⬜️ | |
| certificateName | string | false | ✅ | ⬜️ | |
| keyName | string | false | ✅ | ⬜️ | |
| base64Certificate | string | false | ✅ | ⬜️ | |
| useManagedIdentity | boolean | false | ✅ | ⬜️ |
Corresponding configuration on UI:
| Index | Name |
|---|---|
| (1.1) | certificateSetupType = UseDefaultCertificate |
| (1.2) | certificateSetupType = UseAutoGeneratedCertificate |
| (1.3) | certificateSetupType = ImportFromFile |
| (1.4) | certificateSetupType = SelectFromServerCertificateStore |
| (1.5) | certificateSetupType = UseAzureKeyVault |
| (2) | filePath |
| (3) | password |
| (4) | certificateThumbprintInStore |
| (5.1) | keyVaultMode = Certificate |
| (5.2) | keyVaultMode = Key |
| (6) | azureTenantId |
| (7) | applicationClientId |
| (8) | applicationClientSecret |
| (9) | azureKeyVaultUrl |
| (10) | certificateName |
| (11) | keyName |
| (12) | base64Certificate |
| (13) | useManagedIdentity |



Example
If certificateSetupType = UseDefaultCertificate, you don't need to input values for other settings:
"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "UseDefaultCertificate" } }Corresponding configuration on UI:

If certificateSetupType = UseAutoGeneratedCertificate, you don't need to input values for other settings:
"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "UseAutoGeneratedCertificate" } }Corresponding configuration on UI:

If certificateSetupType = ImportFromFile, you need to input values for
filePathandpassword:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "ImportFromFile", "filePath": "C:\\Program Files\\Safewhere\\Identify\\Certificates\\IdentifyDefaultSigning.pfx", "password": "Test1234" } }Corresponding configuration on UI:

If certificateSetupType = SelectFromServerCertificateStore, you need to input values for
certificateThumbprintInStore:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "SelectFromServerCertificateStore", "certificateThumbprintInStore": "3C1FD735A4035E3B78D33444DE5327C393AA282E" } }Corresponding configuration on UI:

If certificateSetupType = UseAzureKeyVault and keyVaultMode = Certificate, you need to input values for
azureTenantId,applicationClientId,applicationClientSecret,azureKeyVaultUrlandazureKeyVaultKeyName:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "UseAzureKeyVault", "keyVaultMode": "Certificate", "azureTenantId": "123456-5678-6545-88fd-f40123456123", "applicationClientId": "333333-210c-4907-9999-1142138f0391", "applicationClientSecret": "ft_1ap8r-skgktoef1-Yk-x~zs.ssdasw123df", "azureKeyVaultUrl": "https://safewheredqt.vault.azure.net/", "certificateName": "SafewhereCertificate" } }Corresponding configuration on UI:


If certificateSetupType = UseAzureKeyVault and keyVaultMode = Key, you need to input values for
azureTenantId,applicationClientId,applicationClientSecret,azureKeyVaultUrl,azureKeyVaultKeyNameandbase64Certificate:"tenantCertificateConfiguration": { "signingCertificateConfiguration": { "certificateSetupType": "UseAzureKeyVault", "keyVaultMode": "Key", "azureTenantId": "123456-5678-6545-88fd-f40123456123", "applicationClientId": "333333-210c-4907-9999-1142138f0391", "applicationClientSecret": "ft_1ap8r-skgktoef1-Yk-x~zs.ssdasw123df", "azureKeyVaultUrl": "https://safewheredqt.vault.azure.net/", "keyName": "SafewhereCertificate", "base64Certificate": "MIIDMzCCAhugAwIBAgIQP3kBSPwVT3SbkJzkhIKb9zANBgkqhkiG9w0BAQsFADAWMRQwEgYLVQQDEwtjdHR0ZXN0LmNvbTAeFw0yMDA3MTQxNTA3NThaFw0yMzA3MTQxNTE3NThaMBYxFDASBgNVBAMTC2N0dHRlc3QuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv/gGS9tfXR4tpvwk95Hfx2wL+FsYp9MViLxSvTgjv45DNTTrJmWRqdRLMAB3cOK/quykJYjmcOsds+2F2vnKhPnsfRHKaMA6ZuKgoVfLb+KBh7Hjt1ZsknFmPXh5cH+NflMgLCt8MFKef+huyA+hQ7qHEilS/URh3Z3/jkjte3H1D8Za3dKv8IKX2aDEloy0ckvqQ/u6IsSv5l3o1lX2d7tAZ/iF0TP2iyFnuhUnLtz84xK2myD6qEkpnH/rCBXgiGAtj42LtJGRFIoAhejDARd6LzlmxuojHRRAv7JNC12sdlknxxZnhLvx6vQyjZAUrj5U92LHr8CqGBvlRWuwsQIDAQABo30wezAPBgNVHQ8BAf8EBQMDB/+AMAkGA1UdEwQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFIpfeTotEcu8s5sNSW8tFGp+lg/fMB0GA1UdDgQWBBXKX3k6LRHLvLObDUlvLRRqfpYP3zANBgkqhkiG9w0BAQsFAAOCAQEAsRFmsucTcyMtWljuik9ZtnFbdnMD7jrt/RrUr2GQPb1vdxci8e1WOMEj1JwtJOlKTD5+HWRxgmR226H1N8Gj2HQuh2dK6+EtwuqZXXVEAlFhb1D4Lj8GUX7HtOkPtPEdocKwAjAEdMIn0TaevEf7tudiS1SukEbiosj2ERddjnz1P5gql2M2Dzg9he9iitwam1IB9wAuKY0f0J0Fli22qGCMszHqP8o2yfCBBvcd8RT1BaG0BAG6hNtOELSgX/YpKRCuEXOjFcQnV2adOtV4Cjw7Mwws0gprQGQDddUORoEJ7oRlfIRLz3cRvcASFfaJf1B6J973r9L/ZhJS58np5w==" } }Corresponding configuration on UI:

