PAMOLA Developer Guideο
This guide provides an overview of PAMOLAβs API endpoints and how to leverage PAMOLA CORE, the high-performance privacy-preserving library for Python. Developers can use PAMOLA to anonymize datasets, generate synthetic data, assess privacy risks, and simulate adversarial attacks.
Overview of PAMOLA APIο
PAMOLA provides a RESTful API that allows seamless integration into enterprise environments. The API includes endpoints for dataset management, anonymization, privacy risk modeling, and attack simulations.
### ** API Endpoints** #### 1. Dataset Management - Upload Data: Upload structured datasets with metadata. - Define Privacy Policies: Set privacy constraints (k-anonymity, l-diversity, differential privacy). - Monitor Processing Pipelines: Track execution logs and audit reports.
POST /api/datasets/upload
Content-Type: multipart/form-data
Authorization: Bearer <TOKEN>
Response:
{
"dataset_id": "123456",
"status": "uploaded"
}
#### 2. Data Anonymization - Apply formal anonymization models (k-anonymity, l-diversity, t-closeness). - Implement transformation-based privacy techniques (generalization, suppression, differential privacy noise injection).
POST /api/anonymization/apply
Content-Type: application/json
Authorization: Bearer <TOKEN>
Request Body:
{
"dataset_id": "123456",
"anonymization_type": "k-anonymity",
"parameters": {
"k": 5
}
}
Response:
{
"dataset_id": "123456",
"status": "anonymized"
}
#### 3. Synthetic Data Generation - Generate high-quality synthetic datasets using PATE-GAN and differential privacy techniques. - Control statistical properties to ensure representativeness.
POST /api/synthetic/generate
Content-Type: application/json
Authorization: Bearer <TOKEN>
Request Body:
{
"dataset_id": "123456",
"method": "PATE-GAN",
"parameters": {
"epsilon": 0.5
}
}
Response:
{
"dataset_id": "123456",
"synthetic_data_id": "789012",
"status": "generated"
}
#### 4. Privacy Risk Assessment - Assess dataset privacy risks using formal models and attack simulations. - Generate compliance reports for GDPR, CCPA, and other regulations.
GET /api/privacy/risk-assessment/{dataset_id}
Authorization: Bearer <TOKEN>
Response:
{
"dataset_id": "123456",
"risk_score": 0.87,
"recommended_mitigation": ["Apply k-anonymity", "Use Differential Privacy"]
}
#### 5. Attack Simulation - Evaluate dataset vulnerability using Single-Out, Linkage, Membership Inference, and Model Inversion Attacks.
POST /api/attack/simulate
Content-Type: application/json
Authorization: Bearer <TOKEN>
Request Body:
{
"dataset_id": "123456",
"attack_type": "Membership Inference",
"parameters": {
"shadow_model": true
}
}
Response:
{
"dataset_id": "123456",
"attack_success_rate": 0.65,
"status": "completed"
}
Using PAMOLA CORE (Python)ο
PAMOLA CORE is a high-performance privacy library that enables local execution of anonymization, synthetic data generation, and risk assessment.
Installation:
pip install pamola-core
#### π Example 1: Data Anonymization (k-Anonymity)
from pamola_core.anonymization import Anonymizer
data = [
{"id": 1, "age": 35, "zipcode": "10001"},
{"id": 2, "age": 40, "zipcode": "10001"},
{"id": 3, "age": 38, "zipcode": "10001"}
]
anonymizer = Anonymizer(method="k-anonymity", k=3)
anonymized_data = anonymizer.apply(data)
print(anonymized_data)
#### π Example 2: Generating Synthetic Data (PATE-GAN)
from pamola_core.synthetic import PATEGAN
data = [
{"age": 35, "income": 60000},
{"age": 40, "income": 70000},
{"age": 38, "income": 65000}
]
generator = PATEGAN(epsilon=1.0)
synthetic_data = generator.generate(data)
print(synthetic_data)
#### π Example 3: Evaluating Privacy Risks
from pamola_core.privacy_risk import RiskEvaluator
data = [
{"id": 1, "age": 35, "zipcode": "10001"},
{"id": 2, "age": 40, "zipcode": "10001"},
{"id": 3, "age": 38, "zipcode": "10001"}
]
evaluator = RiskEvaluator()
risk_score = evaluator.assess(data)
print(f"Privacy Risk Score: {risk_score}")
#### π Example 4: Simulating Membership Inference Attack
from pamola_core.attacks import MembershipInferenceAttack
model = load_trained_model("path/to/model")
attack = MembershipInferenceAttack(model)
success_rate = attack.run()
print(f"Attack Success Rate: {success_rate}")
Next Stepsο
To learn how to configure privacy models and simulations, visit the Security Modeling. For deployment details, see the System Guide. For real-world use cases in the User Guide.