Version: 2020.3.2

inPoint.CloudSync

inPoint.CloudSync is a service to synchronize documents saved in Microsoft Office 365 or Microsoft Teams with a counterpart archived in inPoint.

Configuration

For installing the msi have a look at the installation documentation.

The settings are defined in the file appsettings.json. All these settings are automatically filled by the setup.
Default: "C:\Program Files (x86)\HS Europe\inPoint.CloudSync\appsettings.json"

Full Sample

{
"O365": {
"Instance": "[O365_INSTANCE]",
"Tenant": "[O365_TENANT]",
"ClientId": "[O365_CLIENTID]",
"ClientSecret": "[O365_CLIENTSECRET]",
"ClientCertificate": "[O365_CLIENTCERT]",
"NotificationUrl": "[O365_NOTIFICATIONURL]"
},
"Urls": {
//"inPointCloudSync": "[CLOUDSYNCURL]",//default is to read from central registry (override only when needed)
//"inPointIdentity": "[IDENTITYURL]", //default is to read from central registry (override only when needed)
//"inPointCore": "[COREURL]" //default is to read from central registry (override only when needed)
},
"Host": {
"Certificates": {
"Default": {
"Path": "[CERTPATH]",
"Password": "[CERTPASSWORD]",
"Subject": "[CERTSUBJECT]",
"Store": "[CERTSTORE]",
"Location": "[CERTLOCATION]"
}
}
},
"Serilog": {
// https://github.com/serilog/serilog/wiki/Configuration-Basics
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"WriteTo": [
{
// https://github.com/serilog/serilog-sinks-file
"Name": "File",
"Args": {
"path": "c:\\temp\\inPoint.CloudSync_.log",
"fileSizeLimitBytes": 1000000000,
"retainedFileCountLimit": 21,
"rollingInterval": "Day",
"buffered": true,
"outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message}{NewLine}{Exception}"
}
}
]
}
}

O365 - Connect to Office 365

This section defines how the service will connect to Microsoft Azure AD (Microsoft O365 or Microsoft Teams). See the Connect to Office 365 in the installation documentation.

Instance

The instance of Azure AD. Default: https://login.microsoftonline.com/{0}

Tenant

The tenant in Azure AD. This is a guid similar to this sample 5529cdf5-e60e-4945-9ad0-e13a5a6be8cb. It' visible in the Application Details in Azure AD as well.

ClientId

The application ID of inPoint.CloudSync from registering it in Azure AD. It' visible in the Application Details in Azure AD as well.

ClientSecret

The client secret or password generated in Azure AD. If using ClientSecret, the value for ClientCertificate must be empty!

ClientCertificate

The client certificated in Azure AD, which has to be generated or installed on the server first. If using ClientCertificate, the value for ClientSecret must be empty!

NotificationUrl

If the server itself is not reachable from the internet, it's required to use some kind of proxy or forward to allow notifications from Microsoft to reach inPoint.CloudSync. The configured URL must forward all request to the installed service with the path /api/notification at the end.

Urls - Connect to inPoint

This section defines how the service exposes itself and how it will connect to inPoint. See the Connect to inPoint in the installation documentation.

All the Urls can be empty, because they can be read from the registry.
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\HS Europe\Config\Urls

inPointCloudSync

This is the URL which the service will be using for itself.

inPointIdentity

The url to inPoint.Identity.

inPointCore

The url to inPoint.Core.

Host - SSL-Certificate

This section configures the ssl-certificate which is used for hosting the service. It can be configured using an certificate in the file-system or in the list of the user or computer certificates. See how to Configure the web-service in the installation documentation.

Path

This is the path (full or relativ) when using an certificate in the file-system.

Password

This is the password of the certificate in the file-system.

Subject

The subject of the certificate from the computer or user certificates (e.g. the full qualified name of the server).

Store

The name of the store of the certificate. Use My when the certificate is saved in "Personal"

Location

Which certification store is used.

  • LocalMachine for machine certificates (make sure that the windows user who runs the service has access).
  • CurrentUser for the user certificates.

Serilog - Logging

inPoint.CloudSync uses a comprehensive structured logging system. The default is to log only warnings and errors to 'c:\temp\inPoint.CloudSync_YYYMMDD.log' (where 'YYYMMDD' is the current date).

For more details look at Serilog and the File sink

Logging levels

The MinimumLevel configures the logging levels for all inPoint.Core systems;

  • Default are the inPoint.Core application logs
  • Microsoft are the internal Microsoft ASP.NET logs
  • System are the internal Microsoft .NET logs

Usually changing the Default level (application logging) should be enough.
Available logging levels:

LevelUsage
VerboseVerbose is the noisiest level, rarely (if ever) enabled for a production app.
DebugDebug is used for internal system events that are not necessarily observable from the outside, but useful when determining how something happened.
InformationInformation events describe things happening in the system that correspond to its responsibilities and functions. Generally these are the observable actions the system can perform.
WarningWhen service is degraded, endangered, or may be behaving outside of its expected parameters, Warning level events are used.
ErrorWhen functionality is unavailable or expectations broken, an Error event is used.
FatalThe most critical level, Fatal events demand immediate attention.

Setting the logging level

When you need to analyse an issue you should:

  • raise the MinimulLevel/Default from Warning to Debug
  • change the WriteTo/RollingFile/buffered to false in order to immediately save to the log file (otherwise it's buffered and you'll have to stop the Service to see the latest logs)

NOTE: do not forget to restore to their original values as these settings will negatively impact performance!