Welcome to the protegrity-developer-java repository, part of the Protegrity AI Developer Edition suite. This repository provides the Java SDK for integrating Protegrity's Data Discovery and Protection APIs into GenAI and traditional applications.
Customize, compile, and use the modules as per your requirement.
💡Note: This SDK should be built and used only if you intend to modify the source code or default behavior.
- Overview
- Repository Structure
- Features
- Getting Started
- Protegrity AI Developer Edition Module
- Application Protector Java Module
- Documentation
- Sample Use Case
- License
This repository contains two powerful modules designed to handle different aspects of data protection:
- protegrity-developer-edition - Focuses on data discovery, classification, and redaction of Personally Identifiable Information (PII) in unstructured text
- application-protector-java - Provides comprehensive data protection and unprotection capabilities for structured data
Sensitive data shows up in more places than you'd expect — logs, payloads, prompts, training sets, and unstructured text. This Java SDK gives you tools to find and protect that data using tokenization, masking, and discovery — whether it's in an AI pipeline or a local application. No infrastructure, no UI, just code.
-
Developer-first experience: Open APIs, sample apps, and modular design make it easy to embed data discovery and protection into any Java project.
-
Accelerate innovation: Prototype and validate data discovery and protection strategies in a lightweight, containerized sandbox.
-
Enable responsible AI: Protect sensitive information in training data, prompts, and outputs for GenAI and machine learning workflows.
-
Simplify compliance: Meet regulatory requirements for data privacy with built-in detection and protection capabilities.
├── LICENSE
├── README.md
├── pom.xml # Parent POM
├── mvnw, mvnw.cmd # Maven wrapper
├── application-protector-java/ # Core SDK module
│ ├── pom.xml
│ ├── src/
│ │ ├── main/java/com/protegrity/ap/java/
│ │ └── test/
│ └── target/
│ └── ApplicationProtectorJava-1.0.1.jar
├── protegrity-developer-edition/ # Developer utilities module
│ ├── pom.xml
│ ├── src/
│ │ ├── main/java/com/protegrity/devedition/
│ │ └── test/
│ └── target/
│ └── ProtegrityDeveloperJava-1.0.1.jar
└── integration-tests/ # Cucumber BDD tests
├── pom.xml
├── src/
│ └── test/
│ ├── java/com/protegrity/
│ └── resources/features/
└── README.md
| Feature | Description |
|---|---|
| Find and Redact | Classifies and redacts Personally Identifiable Information (PII) in unstructured text. |
| Find and Protect | Classifies and protects Personally Identifiable Information (PII) in unstructured text using Protegrity protection policies. |
| Find and Unprotect | Restores original Personally Identifiable Information (PII) data from its protected form. |
| Cross-Platform Support | Compatible with Linux, Windows, and MacOS. |
| Feature | Description |
|---|---|
| Data Protection | Protects sensitive structured data using Protegrity policies. |
| Data Unprotection | Restores original data from its protected form. |
| Session Management | Manages secure sessions for protection and unprotection operations. |
| Cross-Platform Support | Compatible with Linux, Windows, and MacOS. |
| Multiple Data Types | Supports primitives, strings, bytes, dates, and more. |
- Git
- Java 11 or later
- Maven 3.6+ or use the included Maven wrapper
No additional prerequisites required beyond the common ones.
-
In addition to the common prerequisites, Application Protector Java requires API Key, Email, and Password
Obtaining Credentials
AI Developer Edition Portal Registration
- Visit https://www.protegrity.com/developers/get-api-credentials
- Register for a developer account.
- You will receive an email with your API Key and Password.
-
Clone the repository.
git clone https://github.com/Protegrity-Developer-Edition/protegrity-developer-java.git
-
Navigate to the
protegrity-developer-javadirectory -
Build and install the modules by running the following command from the root directory of the repository.
./mvnw clean install
The build completes and the success message is displayed. This creates:
application-protector-java/target/ApplicationProtectorJava-1.0.1.jar(fat JAR with dependencies)protegrity-developer-edition/target/ProtegrityDeveloperJava-1.0.1.jar(fat JAR with dependencies)- Maven artifacts in your local repository (
.m2/repository)
-
To run integration tests (optional):
./mvnw clean verify -DskipITs=false
💡Note: Ensure that the Protegrity AI Developer Edition is running before using this module. For setup instructions, please refer to the documentation here.
package com.protegrity.devedition.samples;
import com.protegrity.devedition.utils.Discover;
import com.protegrity.devedition.utils.PiiProcessing;
import com.protegrity.devedition.utils.Config;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.List;
import java.util.HashMap;
import java.util.Map;
public class FindAndRedactExample {
public static void main(String[] args) throws Exception {
// Configure
Map<String, String> entityMap = new HashMap<>();
entityMap.put("PERSON", "NAME");
entityMap.put("SOCIAL_SECURITY_ID", "SSN");
Config.setNamedEntityMap(entityMap);
Config.setMaskingChar("#");
Config.setMethod("redact");
// Discover and redact
String inputText = "John Doe's SSN is 123-45-6789.";
JsonNode discoveryResult = Discover.discover(inputText);
List<PiiProcessing.EntitySpan> entities = PiiProcessing.collectEntitySpans(discoveryResult, inputText);
String outputText = PiiProcessing.redactData(entities, inputText);
System.out.println("Redacted: " + outputText);
}
}Set your credentials as environment variables for running Protection examples:
export DEV_EDITION_EMAIL='<email_used_for_registration>'
export DEV_EDITION_PASSWORD='<Password_provided_in_email>'
export DEV_EDITION_API_KEY='<API_key_provided_in_email>'package com.protegrity.devedition.samples;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode;
import com.protegrity.devedition.utils.Config;
import com.protegrity.devedition.utils.Discover;
import com.protegrity.devedition.utils.PiiProcessing;
public class FindAndProtectExample {
public static void main(String[] args) throws Exception {
// Configure
Map<String, String> entityMap = new HashMap<>();
entityMap.put("PERSON", "NAME");
entityMap.put("SOCIAL_SECURITY_ID", "SSN");
Config.setNamedEntityMap(entityMap);
// Discover PII
String inputText = "John Doe's SSN is 123-45-6789.";
JsonNode discoveryResult = Discover.discover(inputText);
List<PiiProcessing.EntitySpan> entities = PiiProcessing.collectEntitySpans(discoveryResult, inputText);
// Protect data
String outputText = PiiProcessing.protectData(entities, inputText);
System.out.println("Protected: " + outputText);
}
}package com.protegrity.devedition.samples;
import com.protegrity.devedition.utils.PiiProcessing;
public class FindAndUnprotectExample {
public static void main(String[] args) throws Exception {
// Protected text from FindAndProtectExample
String protectedText = "[PERSON]7ro8 lfU'I[/PERSON] SSN is [SOCIAL_SECURITY_ID]616-16-2210[/SOCIAL_SECURITY_ID].";
// Unprotect
String outputText = PiiProcessing.unprotectData(protectedText);
System.out.println("Unprotected: " + outputText);
}
}Set your credentials as environment variables:
export DEV_EDITION_EMAIL='<email_used_for_registration>'
export DEV_EDITION_PASSWORD='<Password_provided_in_email>'
export DEV_EDITION_API_KEY='<API_key_provided_in_email>'package com.protegrity.devedition.samples;
import com.protegrity.ap.java.*;
import java.util.Arrays;
public class BulkProtectExample {
public static void main(String[] args) {
try {
Protector protector = Protector.getProtector();
String userName = "superuser";
String dataElement = "ccn";
String[] data = {"5555555555554444", "378282246310005", "4111111111111111"};
SessionObject session = protector.createSession(userName);
System.out.println("Original Data: " + Arrays.toString(data));
// Protect bulk
String[] protectedData = new String[data.length];
protector.protect(session, dataElement, data, protectedData);
System.out.println("Protected Data: " + Arrays.toString(protectedData));
// Unprotect bulk
String[] unprotectedData = new String[data.length];
protector.unprotect(session, dataElement, protectedData, unprotectedData);
System.out.println("Unprotected Data: " + Arrays.toString(unprotectedData));
} catch (ProtectorException e) {
e.printStackTrace();
}
}
}💡Note: You do not need Protegrity AI Developer Edition running before executing just the Application Protector Java Module.
- Protegrity AI Developer Edition documentation
- For API reference and tutorials, visit Developer Portal
- For more information about Data Discovery, refer to the Data Discovery documentation.
- For more information about Semantic Guardrails, refer to the Semantic Guardrails documentation.
- For more information about Application Protector Java, refer to the Application Protector Java documentation.
Use this SDK to build GenAI applications like chatbots that:
- Detect Personally Identifiable Information (PII) in prompts using the classifier
- Protect, Redact, or Mask sensitive data before processing
- Protect and Unprotect structured sensitive data
See LICENSE for terms and conditions.