本文へ移動
cccskills
無料GitHub で公開

ropa-tool-integration

Integrates Records of Processing Activities with privacy management platforms including OneTrust, TrustArc, Collibra, and DataGrail. Covers API-based synchronization, data mapping import, and automated RoPA population from enterprise tools. Activate for RoPA tool setup, OneTrust integration, TrustArc sync, privacy platform configuration.

インストール方法を見る

含まれるファイル(5)

  • SKILL.md16.3 KB
  • assets/template.md5.2 KB
  • references/standards.md3.2 KB
  • references/workflows.md5.8 KB
  • scripts/process.py15.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

RoPA Tool Integration

Overview

Manual RoPA maintenance using spreadsheets is error-prone, does not scale, and lacks the auditability required for accountability under GDPR Art. 5(2). Privacy management platforms such as OneTrust, TrustArc, Collibra, and DataGrail provide purpose-built RoPA capabilities with workflow automation, audit trails, and regulatory reporting. This skill covers the integration architecture, API-based synchronisation, and data mapping strategies for connecting enterprise IT systems with RoPA management platforms.

Platform Comparison for RoPA Management

CapabilityOneTrustTrustArcCollibraDataGrail
Art. 30(1) controller recordsFull support with all 7 fieldsFull supportFull support via data catalogPartial — focuses on data mapping
Art. 30(2) processor recordsFull supportFull supportSupported via custom asset typesLimited
Automated discoveryData discovery module scans systemsPrivacy intelligence scansData catalog integrationsReal-time data mapping
API availabilityREST API with OAuth 2.0REST API with API keyREST API with OAuth 2.0REST API with API key
Workflow automationBuilt-in approval workflowsAssessment-based workflowsGovernance workflowsRequest-driven workflows
Supervisory authority templatesCNIL, ICO, BfDI, AEPD templatesMultiple SA templatesCustom templatesLimited templates
Data mapping integrationConnectors for 500+ systemsIntegration hubNative data catalog connectors1,800+ SaaS connectors
Export formatsJSON, CSV, PDF, XLSXPDF, CSV, XLSXJSON, CSVJSON, CSV
Version controlBuilt-in versioning and audit trailChange logFull lineage and version historyBasic version tracking
DPIA linkageNative linkage to DPIA moduleLinked assessmentsCross-reference via catalogLimited

OneTrust Integration

Architecture

OneTrust's Data Mapping module forms the foundation of its RoPA capability. Processing activities are represented as "Processing Activity" records that map directly to Art. 30(1) fields.

Integration points:

  1. Active Directory / Azure AD: Sync organisational structure and department hierarchy to auto-assign processing owners.
  2. ServiceNow / Jira: Integrate with IT service management to trigger RoPA updates from change requests.
  3. Vendor management: OneTrust Vendorpedia links processors to RoPA recipient fields with DPA status tracking.
  4. Data discovery: OneTrust Data Discovery scans databases, file shares, and cloud storage to identify data categories and populate Art. 30(1)(c).

API Configuration for Helix Biotech Solutions

Base URL: https://helix-biotech.my.onetrust.com/api/

Authentication: OAuth 2.0 client credentials flow.

import requests

ONETRUST_BASE_URL = "https://helix-biotech.my.onetrust.com/api"
CLIENT_ID = "helix-ropa-integration"
CLIENT_SECRET_ENV = "ONETRUST_CLIENT_SECRET"  # Stored in vault

def get_access_token(client_id: str, client_secret: str) -> str:
    """Obtain OAuth 2.0 access token from OneTrust."""
    response = requests.post(
        f"{ONETRUST_BASE_URL}/auth/oauth/token",
        data={
            "grant_type": "client_credentials",
            "client_id": client_id,
            "client_secret": client_secret,
        },
        headers={"Content-Type": "application/x-www-form-urlencoded"},
    )
    response.raise_for_status()
    return response.json()["access_token"]

Fetching processing activities:

def get_processing_activities(token: str, page: int = 0, size: int = 50) -> dict:
    """Retrieve processing activities from OneTrust Data Mapping."""
    response = requests.get(
        f"{ONETRUST_BASE_URL}/datasubject/v3/processingactivities",
        headers={"Authorization": f"Bearer {token}"},
        params={"page": page, "size": size},
    )
    response.raise_for_status()
    return response.json()

Creating a processing activity:

def create_processing_activity(token: str, activity: dict) -> dict:
    """Create a new processing activity record in OneTrust."""
    payload = {
        "name": activity["processing_activity"],
        "description": activity.get("description", ""),
        "organizationId": activity["organization_id"],
        "purposes": [
            {"name": p, "legalBasis": activity.get("lawful_basis", "")}
            for p in activity.get("purposes", [])
        ],
        "dataSubjectCategories": [
            {"name": c} for c in activity.get("data_subject_categories", [])
        ],
        "dataElementCategories": [
            {"name": c} for c in activity.get("personal_data_categories", [])
        ],
        "retentionPeriod": activity.get("retention_periods", ""),
        "securityMeasures": activity.get("security_measures", ""),
    }
    response = requests.post(
        f"{ONETRUST_BASE_URL}/datasubject/v3/processingactivities",
        headers={
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json",
        },
        json=payload,
    )
    response.raise_for_status()
    return response.json()

Field Mapping: OneTrust to Art. 30(1)

Art. 30(1) FieldOneTrust FieldOneTrust Module
Controller identity (a)Organization > Legal EntityOrganization Management
Purposes (b)Processing Activity > PurposesData Mapping
Data subject categories (c)Processing Activity > Data SubjectsData Mapping
Personal data categories (c)Processing Activity > Data ElementsData Mapping
Recipient categories (d)Processing Activity > Third Parties / VendorsData Mapping + Vendorpedia
International transfers (e)Processing Activity > Transfers > Cross BorderData Mapping
Retention periods (f)Processing Activity > RetentionData Mapping
Security measures (g)Processing Activity > Security MeasuresData Mapping

TrustArc Integration

Architecture

TrustArc (formerly TRUSTe) manages RoPA through its Privacy Operations Manager (PrivacyOps) module. Processing activities are documented through structured assessments that map to Art. 30 fields.

Key integration approach:

  1. Assessment-based RoPA: Each processing activity is documented via a structured assessment questionnaire that populates all Art. 30 fields.
  2. Nymity Research integration: TrustArc leverages Nymity's accountability framework to benchmark RoPA completeness against regulatory expectations.
  3. Automated inventory: TrustArc's inventory module connects to IT asset management systems (e.g., ServiceNow CMDB) to discover data processing systems.

API Configuration

Authentication: API key-based.

TRUSTARC_BASE_URL = "https://api.trustarc.com/v1"

def get_processing_records(api_key: str, organization_id: str) -> dict:
    """Retrieve RoPA records from TrustArc PrivacyOps."""
    response = requests.get(
        f"{TRUSTARC_BASE_URL}/organizations/{organization_id}/processing-records",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Accept": "application/json",
        },
    )
    response.raise_for_status()
    return response.json()


def create_assessment(api_key: str, organization_id: str, assessment: dict) -> dict:
    """Create a new processing activity assessment in TrustArc."""
    payload = {
        "name": assessment["name"],
        "type": "PROCESSING_ACTIVITY",
        "templateId": assessment.get("template_id", "art30-controller"),
        "assignee": assessment.get("owner_email"),
        "responses": {
            "purposes": assessment.get("purposes", []),
            "dataSubjects": assessment.get("data_subject_categories", []),
            "dataCategories": assessment.get("personal_data_categories", []),
            "recipients": assessment.get("recipient_categories", []),
            "transfers": assessment.get("international_transfers", []),
            "retention": assessment.get("retention_periods", ""),
            "securityMeasures": assessment.get("security_measures", ""),
        },
    }
    response = requests.post(
        f"{TRUSTARC_BASE_URL}/organizations/{organization_id}/assessments",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json",
        },
        json=payload,
    )
    response.raise_for_status()
    return response.json()

Collibra Integration

Architecture

Collibra is a data intelligence platform with a governance-centric approach to RoPA. Processing activities are modelled as assets within the Collibra Data Catalog, with relationships linking them to data sets, systems, business terms, and governance policies.

Key advantages for RoPA:

  1. Data lineage: Collibra traces data flows from source to destination, automatically populating recipient and transfer fields.
  2. Business glossary: Standardised data category definitions prevent inconsistency across RoPA entries.
  3. Governance workflows: Built-in review and approval workflows with audit trail.
  4. Stewardship: Data stewards assigned to assets align with RoPA processing owners.

API Integration

COLLIBRA_BASE_URL = "https://helix-biotech.collibra.com/rest/2.0"

def get_processing_activities(token: str) -> dict:
    """Retrieve processing activity assets from Collibra."""
    response = requests.get(
        f"{COLLIBRA_BASE_URL}/assets",
        headers={"Authorization": f"Bearer {token}"},
        params={
            "typeId": "processing-activity-type-id",
            "limit": 100,
            "offset": 0,
        },
    )
    response.raise_for_status()
    return response.json()


def create_processing_activity_asset(token: str, activity: dict) -> dict:
    """Create a processing activity asset in Collibra."""
    payload = {
        "name": activity["name"],
        "typeId": "processing-activity-type-id",
        "domainId": activity["domain_id"],
        "statusId": "draft-status-id",
    }
    response = requests.post(
        f"{COLLIBRA_BASE_URL}/assets",
        headers={
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json",
        },
        json=payload,
    )
    response.raise_for_status()
    asset_id = response.json()["id"]

    # Add attributes for each Art. 30(1) field
    attributes = [
        {"typeId": "purpose-attr-id", "value": "; ".join(activity.get("purposes", []))},
        {"typeId": "retention-attr-id", "value": activity.get("retention_periods", "")},
        {"typeId": "security-measures-attr-id", "value": activity.get("security_measures", "")},
    ]
    for attr in attributes:
        attr["assetId"] = asset_id
        requests.post(
            f"{COLLIBRA_BASE_URL}/attributes",
            headers={
                "Authorization": f"Bearer {token}",
                "Content-Type": "application/json",
            },
            json=attr,
        )

    return {"asset_id": asset_id, "name": activity["name"]}

Collibra Data Model for Art. 30

Art. 30(1) FieldCollibra Asset/Relation TypeCollibra Domain
Controller identity (a)Business Asset > OrganisationGovernance
Purposes (b)Attribute on Processing Activity assetPrivacy
Data subject categories (c)Related asset: Data Subject CategoryPrivacy
Personal data categories (c)Related asset: Data Category (from Business Glossary)Data Catalog
Recipient categories (d)Relation: "shares data with" > Organisation/SystemPrivacy
International transfers (e)Relation: "transfers to" > Geography assetPrivacy
Retention periods (f)Attribute on Processing Activity assetPrivacy
Security measures (g)Related asset: Security ControlIT Governance

DataGrail Integration

Architecture

DataGrail focuses on real-time data mapping by connecting directly to an organisation's SaaS applications, databases, and internal systems through its integration library (1,800+ connectors). This automated discovery approach populates RoPA fields from live system metadata.

Key integration approach:

  1. System connectors: DataGrail connects to systems (Salesforce, Workday, AWS, Google Workspace) to discover what personal data is stored and where.
  2. Live data map: The data map reflects current processing in real time, reducing staleness risk.
  3. DSR integration: Data subject request execution reveals processing activities, feeding back into RoPA.

API Integration

DATAGRAIL_BASE_URL = "https://api.datagrail.io/v1"

def get_data_map(api_key: str) -> dict:
    """Retrieve the live data map from DataGrail."""
    response = requests.get(
        f"{DATAGRAIL_BASE_URL}/data-map",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Accept": "application/json",
        },
    )
    response.raise_for_status()
    return response.json()


def get_system_inventory(api_key: str) -> dict:
    """Retrieve connected system inventory."""
    response = requests.get(
        f"{DATAGRAIL_BASE_URL}/systems",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Accept": "application/json",
        },
    )
    response.raise_for_status()
    return response.json()

Data Mapping Import Strategy

Migration from Spreadsheet to Platform

Many organisations begin with spreadsheet-based RoPA and need to migrate to a platform. The migration process:

  1. Standardise the spreadsheet format: Ensure the existing spreadsheet has consistent column headers mapping to Art. 30(1)(a)-(g) fields.
  2. Export to CSV/JSON: Convert the spreadsheet to a machine-readable format.
  3. Field mapping: Map spreadsheet columns to the target platform's field schema.
  4. Bulk import via API: Use the platform's bulk import API or CSV upload feature.
  5. Validation: Run completeness checks on imported records.
  6. Relationship creation: Establish links between imported records and existing platform objects (organisations, vendors, systems).

Cross-Platform Synchronisation

When multiple privacy tools are in use (e.g., Collibra for data governance and OneTrust for privacy operations), synchronise RoPA data:

  1. Define the system of record: One platform is the authoritative source for each field. For example, Collibra is authoritative for data categories (from the business glossary), while OneTrust is authoritative for purpose and lawful basis.
  2. API-based sync: Schedule hourly or daily sync jobs that read from the source system and update the target.
  3. Conflict resolution: When both systems have been updated independently, the system-of-record value takes precedence.
  4. Audit trail: Log all sync operations for accountability.

Implementation Roadmap for Helix Biotech Solutions

PhaseDurationActivitiesDeliverables
1. Platform selection4 weeksRFP process, vendor demos, security assessment, DPA negotiationSelected platform, executed DPA
2. Configuration6 weeksCustom field setup, template creation, workflow configuration, SA template importConfigured platform
3. Integration4 weeksAPI integration with AD, ServiceNow, Vendorpedia. SSO configuration.Working integrations
4. Data migration3 weeksImport existing spreadsheet RoPA, validate, establish relationshipsMigrated records
5. UAT and training2 weeksUser acceptance testing, training for DPO office and processing ownersTrained users
6. Go-live1 weekCut over from spreadsheet, decommission old processProduction RoPA system
7. OptimisationOngoingAutomated discovery, advanced reporting, cross-platform syncMature RoPA management

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Implements 42 CFR Part 2 protections for substance use disorder patient records. Covers written consent requirements stricter than HIPAA, re-disclosure prohibition, court order procedures, qualified service organization agreements, and 2024 amendments aligning Part 2 with HIPAA. Keywords: 42 CFR Part 2, substance use disorder, SUD records, re-disclosure, consent, Part 2 amendments.

日本語の概要は準備中です。原文の説明を表示しています。

mukul975/Privacy-Data-Protection-Skills3032026年3月17日 更新

Guides assessment of third-country adequacy decisions under GDPR Article 45 for international data transfers. Covers the current EC adequacy decisions list, adequacy assessment criteria, partial adequacy handling, and monitoring of adequacy decision reviews. Keywords: adequacy decision, Article 45, third country, adequate protection, EC adequacy list.

日本語の概要は準備中です。原文の説明を表示しています。

mukul975/Privacy-Data-Protection-Skills3032026年3月17日 更新

Implements age-gating mechanisms for online services to restrict access based on user age. Covers hard gates versus soft gates, neutral age prompts, re-verification triggers, circumvention prevention, and regulatory requirements under GDPR, COPPA, UK Online Safety Act, and DSA. Keywords: age gate, age restriction, neutral prompt, children, online services, access control.

日本語の概要は準備中です。原文の説明を表示しています。

mukul975/Privacy-Data-Protection-Skills3032026年3月17日 更新

Evaluates and implements age estimation and verification technologies for online services. Covers facial age estimation, digital ID verification, self-declaration with risk assessment, AI-based age estimation, and the accuracy versus privacy tradeoff. Includes ICO guidance and euCONSENT framework. Keywords: age verification, age estimation, facial analysis, digital ID, children, online safety.

日本語の概要は準備中です。原文の説明を表示しています。

mukul975/Privacy-Data-Protection-Skills3032026年3月17日 更新

Preparing EU AI Act compliance documentation for high-risk AI systems. Covers Annex III classification, technical documentation under Art. 11, conformity assessment, risk management systems, and CE marking requirements. Keywords: EU AI Act, high-risk AI, Annex III, conformity assessment, CE marking.

日本語の概要は準備中です。原文の説明を表示しています。

mukul975/Privacy-Data-Protection-Skills3032026年3月17日 更新

Implements GDPR Art. 22 automated decision-making and AI Act Art. 14 human oversight requirements for AI systems. Covers identification of solely automated decisions, meaningful human intervention design, logic explanation mechanisms, and contestation procedures. Keywords: Art. 22, automated decision, human oversight, AI Act, profiling, contestation.

日本語の概要は準備中です。原文の説明を表示しています。

mukul975/Privacy-Data-Protection-Skills3032026年3月17日 更新

mukul975 のスキルをすべて見る

このスキルの問題を報告する