PAMOLA System Guide

This guide provides step-by-step instructions on how to deploy and configure PAMOLA in a local or cloud environment. PAMOLA utilizes Docker containers for modular deployment and integrates DataHub for dataset management, with secure workspace and user group configurations.

System Requirements

Before deploying PAMOLA, ensure your system meets the following requirements:

Minimum Hardware: - CPU: 4-core processor (recommended 8-core for production) - RAM: 16GB (recommended 32GB for large datasets) - Storage: 100GB SSD (expandable based on dataset size) - GPU (Optional): NVIDIA GPU with CUDA support for privacy-enhancing computations

Software Dependencies: - Docker & Docker Compose (latest version) - Python 3.8+ - PostgreSQL 12+ (for DataHub metadata storage) - Keycloak (for local authentication) - NGINX (Optional) (for reverse proxy)

Deployment via Docker

PAMOLA is deployed as a set of Docker containers, ensuring easy setup and scalability.

Step 1: Clone the PAMOLA Repository

   git clone https://github.com/realm-ai/pamola.git
   cd pamola

**Step 2: Configure Environment Variables**

Edit the .env file to specify key configuration settings:

   DATAHUB_DB_HOST=localhost
   DATAHUB_DB_USER=pamola
   DATAHUB_DB_PASS=securepassword
   KEYCLOAK_ADMIN_USER=admin
   KEYCLOAK_ADMIN_PASS=adminpassword
   PAMOLA_WORKSPACE_DIR=/data/pamola

**Step 3: Start PAMOLA with Docker Compose**

Run the following command to start all services:

   docker-compose up -d

**Step 4: Verify Running Services**

Check that all containers are running correctly:

docker ps

Expected output: .. code-block:: text

CONTAINER ID IMAGE STATUS PORTS 123abc pamola-core Up 2 minutes 5000->5000/tcp 456def datahub Up 2 minutes 9002->9002/tcp 789ghi keycloak Up 2 minutes 8080->8080/tcp

Step 5: Access PAMOLA UI

  • Web Interface: http://localhost:9002

  • Keycloak Admin Panel: http://localhost:8080

Configuring DataHub for PAMOLA

PAMOLA uses DataHub to manage metadata, dataset versions, and access control. After deployment, configure DataHub:

Step 1: Create a Service Account

   curl -X POST "http://localhost:9002/api/accounts" \
        -H "Content-Type: application/json" \
        -d '{"username": "admin", "password": "securepassword"}'

**Step 2: Register a Dataset**
   curl -X POST "http://localhost:9002/api/datasets/register" \
        -H "Authorization: Bearer <TOKEN>" \
        -H "Content-Type: application/json" \
        -d '{"dataset_name": "financial_transactions", "owner": "data_science_team"}'

**Step 3: Manage Dataset Metadata**
  • Assign access policies (define user roles)

  • Track dataset lineage (data origins, transformations)

  • Monitor privacy annotations (PII detection, anonymization level)

User & Workspace Management

PAMOLA supports multi-tenant environments with secure workspaces and user groups.

Step 1: Define Workspaces

Each workspace is an isolated environment for dataset processing.

   curl -X POST "http://localhost:9002/api/workspaces/create" \
        -H "Authorization: Bearer <TOKEN>" \
        -H "Content-Type: application/json" \
        -d '{"workspace_name": "fraud_detection", "description": "Workspace for financial fraud analysis"}'

**Step 2: Assign Users to Workspaces**

Users belong to teams with role-based access controls.

   curl -X POST "http://localhost:9002/api/workspaces/add_user" \
        -H "Authorization: Bearer <TOKEN>" \
        -H "Content-Type: application/json" \
        -d '{"workspace_name": "fraud_detection", "user": "analyst1", "role": "editor"}'

**Step 3: Set Up User Roles**

PAMOLA supports Admin, Editor, and Viewer roles.

Role

Permissions

Admin

Full access (manage datasets, configure privacy policies)

Editor

Modify datasets, apply anonymization

Viewer

Read-only access to processed datasets

Monitoring & Logs

PAMOLA logs all actions for compliance and auditing.

Step 1: View System Logs

   docker logs pamola-core -f

**Step 2: Monitor Privacy Events**
   curl -X GET "http://localhost:9002/api/logs/privacy-events"

**Step 3: Generate Compliance Reports**
curl -X POST "http://localhost:9002/api/reports/generate"

Shutting Down PAMOLA

To stop all running containers:

docker-compose down

To remove all associated volumes (warning: this deletes stored datasets):

docker-compose down -v

Next Steps

To explore PAMOLA’s security modeling features, see Security Modeling

🔧 For API integration details, check the Developer Guide 📊 To analyze privacy risks and attack simulations, refer to Privacy Risk & Attacks