Beside the direct use of the Endpoint API, there will be a few SDKs for different frameworks and languages available.
These SDKs shouldn’t simply implement just the API for the client, but also implement some more features, like device-id-matching, etc.
Congether File Management
Congether will create manifest-informations for each individual installation of your application. This informations can contain for example device-identifier or requires access to privacy-settings.
All this informations must be persisted on the local device. To create a universal and platform-independent way to do this, the so called “Congether-File” was created. Each Congether-SDK with access to the file-system (e.g. .NET or NodeJS) will use a directory called “Congether-File-Directory”, which is stored in following file-system-directory.
Windows: C:\ProgramData\congether
Linux/Unix/Mac OS: /usr/share/congether
This directory will contain a subdirectory for each application with the application-identifier as it’s name. In this directory, there will be stored a “.congether”-file, which contains several application-level informations (e.g. Installation-ID, privacy-policy, etc.).
The directory also contains a file ‘.manifest’, which is the latest manifest, which has been received from the Congether Endpoint-API.
The root-directory (e.g. C:\ProgramData\congehter) will also contain a “.congether”-file, in which the unique device-id will be stored.
Sharing informations between applications
The device-id is shared between several installations and applications, which is using Congether. This means, each SDK with a file-directory-access, has to read the “.congether”-files, for the device (root-directory) and the application (application-directory).
By sharing the device-id and read it from the specific Congether-File, you are able to have an extended device-management.
Caching
The second part of the SDKs is caching. The desktop-SDKs will try to cache for example the manifests and also the Tracer-Events, you’re trying to send to Congether Tracer. This will help to reduce the amount of network- and service-requests. It will also make it possible to write events offline at send them, by the time your network is available.
Privacy Pre-Handling
The SDKs manages and stores the selected user-setting, which privacy-mode is active. Therefore, the SDKs should if possible do a privacy pre-handling before any request to fill the “Endpoint-Info” properly.
If an SDK doesn’t support Privacy Pre-Handling, each request and every “Endpoint-Info” will be handled by the given privacy-mode. This will be performed immediately at the Congether Endpoint-API before the request will be processed.
Following requirements describe a accurate privacy pre-handling.
Privacy Mode: Accepted
No actions required
Privacy Mode: Pseudonymization
- Remove the Device-ID
- Cut the Hostname (if available) to maximum two (2) characters
Privacy Mode: Anonymize
- Remove the Installation-ID
- Remove the Device-ID
- Clear the Hostname