Code Coverage and Protecting Intellectual Property |
VIRTUAL MACHINE |
Trail: PROIV Documentation > Developer > PROIV Developer > Code Coverage > Protecting Intellectual Property
IMPORTANT: the output of the code coverage process will contain details of the design of functions and the source code of the logic they use. Users of code coverage should take steps to avoid this information becoming available to third-parties.
The getting started guide describes the two phases of code coverage inside the Virtual Machine:
Generation of additional code coverage information during the build.
Capture of code coverage data while functions are executing.
Both of these are disabled by default. A third-party with access to the PROIV Dashboard could enable the capture of code coverage data. The captured code coverage data would only contain the names of the functions executed (no details or logic source code). This is because the additional code coverage information has not been generated. A third-party could also enable this via the PROIV Dashboard but they would have to rebuild your functions. They cannot do this unless they have an appropriate license (more than runtime) and access to the functions, which can be protected by PROIV security mechanisms (e.g. groups). If the third-party has access to your functions then you have explicitly revealed your intellectual property to them already.
A problem occurs if users release functions to third-parties that contain the additional code coverage information needed to see the details of functions during code coverage capture. This could allow third parties to access intellectual property by enabling code coverage capture. Here are some approaches to avoid this:
Don't have the generation of additional code coverage information enabled in the PROIV Dashboard for your main build process.
Don't use code coverage directly on your main development system. Make a copy to run code coverage on and generate the reports. Discard the copy afterwards.
PROIV export formats such as vpx or JSON will not include the additional code coverage information.
Consider using automated building from JSON source with additional code coverage information generation disabled.
Ensure that the generation of additional code coverage information is disabled in the PROIV Dashboard and then bulk-build all functions with intellectual property. Any previously generated additional code coverage information is deleted.
This is an important issue that needs to be considered before using code coverage on your main development system.
Topic ID: 700088