Obfuscation

Joule provides an in-stream-obfruscation function to streaming events. This function is useful for Personal Identifiable Information de-identification.

Joule provides an in-stream-obfruscation function to streaming events. This function is useful for Personal Identifiable Information de-identification through the application of encryption, masking or bucketing.

Field level obfuscation is acheived by assigning the required obfuscation type to the field along settable attributes.

Available features

Encrypt and decrypt event fields using a performant RSA encryption with AES symmetric encryption process. Read encryption documentation for more information.

obfuscation:
  name: addressEncryption
  fields:
    address:
      encryption:
        decrypt: false
        key location: /tmp
        aes bit length: 128
        rsa bit length: 2048
        rotate keys: true

Obfuscation API

To extend beyond the available obfuscation implementations the below interface is provided for developers to build and deploy new types.

import com.fractalworks.streams.core.exceptions.InvalidSpecificationException;
import com.fractalworks.streams.specifications.CustomUserType;

/**
 * Base obfuscationType class type
 */
public interface ObfuscationType<T> extends CustomUserType {
    T obfuscate(T value) throws ObfuscationException;

    default void validate() throws InvalidSpecificationException{}
}

Addtional Information

The developer builds and deploys ObfuscationTypes in to the Joule platform using the provided SDK. Follow the instructions on how to build and deploy custom code using the Joule SDK.

Last updated