Overview

1 Sensitive Data Scanning

The main components of the sensitivity.io Sensitive Data Scanner module are the scanner and the scanner executor.

The scanner executor is a multi-threaded scanner (asynchronous, use thread pool and futures). Their APIs are very similar.

The following apply to both (we will refer to the scanner).

The scanner provides:

  • convenience scan API: do a full scan or stop at the first threat;
  • automatic masking of found threats (compliance rules applied), by calling sensitivityio_sds_threat_info_get_masked_matched_text();
  • core (user configurable) API: SDK clients can implement their own threat handler and, very importantly, if supported, in their own programming language.
  • as a general rule, you can create unlimited numbers of scanners, each with their own license and settings or you can start your application with a single scanner and modify the settings afterwards. However there’s a very important NOTICE to this: when you change the license or settings for that scanner and multiple instances of the scanner are running scan jobs, these settings and license changes will be propagated to all scan jobs if any.

License and Settings

License/settings loaders are then used to load them, then the scanner register is sent to loaders and then it is possible to scan.

There are 2 ways to get the License and Settings files into the SDK:

Option 1 - using the automatic retrieval from the SDK/Demo App:

  • Login into the Control Panel;
  • Go to Projects, then create a new Project;
  • Create a Custom Protection Profile (or use existing) and Assign it to the Project created above;
  • Create 2 local files: license.json and settings.json and store them on the disk;
  • Select them as License and Settings files in the input boxes;
  • Fill in the credentials: Account Id, Account Key and Project Id then press “Retrieve”. After you pressed retrieve, the sensitivity.io Sensitive Data Scanner will automatically load the license and settings files;
  • Start scanning files or directories.

Option 2 - manually download the configuration files:

  • Login into the Control Panel;
  • Go to Projects, then create a new Project;
  • Create a Custom Protection Profile (or use existing) and Assign it to the Project created above;
  • Create a new Application/Installation that will be your local SDK run;
  • From the newly created installation, download the License and Settings file, save them in .json extension;
  • Load them into the demo app or your integration;
  • Start scanning files or directories.

Note

  • The Scanner executor SDK provides futures. We can offer a code example of Future watchers used in Qt based test apps, but they are not provided by the SDK. They are Qt specific and users should find or implement a similar mechanism in their language/libraries;
  • Special care must be taken by programmers using languages that have garbage collector in order to proper release SDK components (something they may not be used to and may appear strange to them).