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.