Settings
The following list of settings are available for the Nextcloud Exchange Connector. Depending if you're running this in a container or stand-alone service, the actual implementation of these settings may differ.
In all cases, if you modify settings; restart the container or service in order for the settings to take effect.
Overview of settings
Category |
Setting |
Value |
Description |
Connection- |
DatabaseConnectionString |
database_connection_string |
Database connectionstring |
Service |
NextcloudBaseUrl |
nextcloud_url_with_protocol |
Nextcloud server URL |
Service |
NextcloudServiceUsername |
admin_username, |
Nextcloud Service account username |
Service |
NextcloudServicePassword |
admin_user_app_password, |
Nextcloud service account password |
Service |
ExchangeType |
1 |
Exchange Type: 1 = Cloud (Microsoft 365/Exchange Online), 2 = Exchange On-Prem |
Service |
ExchangeOnPremUrl |
domain_url |
Exchange on-premise URL to EWS gateway. |
Service |
ExchangeOnPremDomain |
domain_test, |
Exchange on-premise domain |
Service |
ExchangeOnPremUsername |
domain_username, |
Exchange on-premise username service |
Service |
ExchangeOnPremPassword |
domain_password, |
Exchange on-premise password service |
Service |
MicrosoftAppId |
azure_app_id, |
Azure App ID |
Service |
MicrosoftTenantId |
azure_tenant_id, |
Azure Tenant ID |
Service |
MicrosoftClientSecret |
azure_app_client_secret, |
Azure App Secret |
Service |
OsVersion |
Useragent, |
Useragent (identify calls) |
Service |
ApplicationVersion |
1.0.0, |
- |
Service |
BatchLimit |
50 |
Amount of items to be processed (batches/calls) |
Service |
DatabaseEncryptionKey |
database_encryptionkey, |
Database encryption key, used to store app-token Nextcloud user. |
Service |
SharedSecret |
xxx |
Shared secret - used to transfer user consent app-tokens from Nextcloud to service. |
Service |
IntervalRefreshInMinutes |
1 |
Refresh after X minutes, when a run is done (parsed all users). |
Service |
MaxParallelProcessingUsers |
5 |
- |
These settings are all required to be set:
- Database Connection String.
- Nextcloud configuration (base url, service account- username and password).
- Defining the Exchange Type (
1
= Microsoft 365 / Exchange Online,2
= On-Premise). - If point 3 is set to
1
, set: MicrosoftAppId, MicrosoftTenantId, MicrosoftClientSecret.. - If point 3 is set to
2
, set: ExchagneOnpremUrl, ExchangeOnPremUsername, ExchangeOnPremPassword - Database Encryption Key.
- Shared Secret (notice, this must align with the shared secret set in Sendent Sync it's Nextcloud app).
Container
If you're running the Nextcloud Exchange Connector as a container, you can pass the settings as environment variables in your docker-compose.yml file. When configuring settings from the reference table above, make sure you include category
and setting
to target the specific setting.
For example: if we wish to set the SharedSecret
, it's part of the Service
category. So the environment variable is Service__SharedSecret
.
In your docker-compose.yml file, the settings would look as the following:
...
environment:
- Service__NextcloudBaseUrl=https://mycloud.mydomain.com
- Service__NextcloudServiceUsername=my_service_account
- Service__NextcloudServicePassword=my_service_account_secret
...
For the full reference docker-compose.yml file see this article.
Stand-alone service
In case you're running the Nextcloud Exchange Connector as a stand-alone service (without a container), for example in IIS, the appsettings.json
file in the root directory of the binaries must be modified.
The appsettings.json file contains the following. Modify this file that it reflects your organization it's settings.
"ConnectionStrings": {
"DatabaseConnectionString": ""
},
"AllowedHosts": "*",
"Service": {
"CompanyName": "",
"NextcloudBaseUrl": "",
"NextcloudServiceUsername": "",
"NextcloudServicePassword": "",
"ExchangeType": 1,
"ExchangeOnPremUrl": "",
"ExchangeOnPremDomain": "",
"ExchangeOnPremUsername": "",
"ExchangeOnPremPassword": "",
"MicrosoftAppId": "",
"MicrosoftTenantId": "",
"MicrosoftClientSecret": "",
"OsVersion": "",
"ApplicationVersion": "",
"BatchLimit": 50,
"DatabaseEncryptionKey": "",
"SharedSecret": "",
"IntervalRefreshInMinutes": 1,
"MaxParallelProcessingUsers": 5,
"ForceRefreshCredentialsUsersStartUp": false
}