Can OpenMetadata support a GDPR record of processing?
OpenMetadata helps you find where personal data lives and who owns it, but it does not hold the whole Article 30 record of processing. The record is a document the controller keeps, and the catalog is one of the inputs that populates it. Its value depends on how completely your data sources are connected, how consistently classifications are applied, and whether a named owner is accountable for each dataset. Treat the catalog as an evidence base for the record, not as the record itself.
Several Article 30(1) elements can be fed from the catalog. Categories of personal data can be drawn from classifications and glossary terms applied to tables and columns, such as a PII classification if your instance includes it (confirm the tag set in your version). Ownership assignments and domains show who is accountable for each dataset. Lineage at table, column and dashboard level shows where data flows, which gives you candidate recipients and internal consumers. Custom properties can hold categories of data subjects or retention notes, but the catalog only reflects what someone has entered and what connectors have ingested.
Other elements must come from the controller's own records. Contact details of the controller and, where relevant, its representative and data protection officer belong in a governance document, not in table metadata. Purposes and the legal basis for each processing activity are business and legal decisions. Third-country transfers and their safeguards need to be confirmed against contracts and transfer assessments, since lineage shows a flow but not where the recipient is located. Erasure time limits, where possible, are a retention policy decision, and the general description of Article 32 security measures is drawn from your security program. Lineage can show a path but cannot explain why it exists.
The record is the controller's obligation. Article 30 requires it to be in writing, including electronic form, and available to the supervisory authority on request. The GDPR requires no audit, attestation or certificate for this record, and Article 42 certification is voluntary. Organizations with fewer than 250 employees may be exempt from the record requirement, unless the processing is likely to result in a risk, is not occasional, or includes special category or criminal offence data. Confirm your headcount and these conditions with privacy counsel before relying on the exemption, since the catalog cannot make that determination for you.
Mapping Article 30(1) elements to OpenMetadata capabilities
This table maps each Article 30(1) element to the OpenMetadata capability that can hold it and the configuration it needs. Read the coverage column first, since it shows what the catalog can record on its own. Purposes, lawful basis and transfer details always need confirmation in the controller's own register.
| Article 30(1) element | OpenMetadata capability and configuration | Catalog coverage |
|---|---|---|
| Contact details of controller and DPO | Ownership on domains and data assets, with owner teams mapped to accountable contacts | Partly. Owners are recorded, but legal entity and DPO details stay in the controller's register. |
| Purposes of processing | Glossary terms for each processing purpose, linked to the tables and dashboards that serve it | Partly. Purposes can be described in the catalog. Lawful basis and final wording must be confirmed in the controller's own register. |
| Categories of data subjects | Glossary terms defining each data subject group, linked to the domains that hold their data | Partly. Groups can be named, but the mapping from groups to datasets depends on your own glossary design. |
| Categories of personal data | Classifications and PII tags applied at column level across connected sources | Largely. Column-level tags show where personal data sits in connected systems. Confirm tag coverage for each source type. |
| Categories of recipients | Table, column and dashboard lineage showing internal consumers of tagged data | Partly. Internal consumers are visible. External recipients need a custom property or register entry. |
| Third-country transfers | Custom property or glossary term on datasets noting storage region and transfer mechanism | Not fully. The catalog can flag datasets, but transfer details must be confirmed in the controller's register. |
| Erasure time limits | Custom property on tables or domains recording the retention period, confirmed against your version's property types | Partly. Retention is recorded as metadata. Deletion happens in the source systems, not the catalog. |
| Article 32 security description | Domain or glossary documentation summarizing security measures for each platform | Partly. A general description fits. Control evidence lives in your security tooling, not the catalog. |
How classifications, ownership and lineage find personal data
The working method starts by marking where personal data sits, then assigning accountability for it, then tracing where it travels. In OpenMetadata, the first step uses classifications and glossary terms applied to tables and columns that hold personal data, such as customer names, contact details, national identifiers or account numbers. Your data governance lead should agree a short tagging vocabulary before anyone tags anything, so that a column holding an email address and a column holding a phone number are recorded consistently and can be filtered together when the record of processing is compiled.
Ownership comes second. Each asset in a domain needs a named owner who can answer for the processing purpose behind it, not only for its technical health. The domain owner should confirm which team collects the data, which team uses it, and who approves changes to the classification. Without a named owner, tags tend to drift and the Article 30 entries built from them lose their accountability trail. Assign owners at the table level first, then check that column-level tags sit under an owner who recognizes the data.
Column-level lineage then shows the route the data takes from source systems through transformations to downstream dashboards, pipelines and exports. This is the part of the method that answers recipients and transfers questions. A marketing export that carries an email column is a recipient of personal data even if no one has recorded it as one. Lineage shows that export as a downstream node, and the owner of that export becomes a candidate entry in the recipients field. Lineage also shows whether the flow crosses a boundary into a third country, which you will need to confirm against the hosting locations of each downstream tool, since OpenMetadata records the lineage edge but not the physical location of the recipient.
Be precise about what detection will and will not do. Confirm with the vendor documentation for your chosen release which tagging and detection options it provides, whether profiling can flag candidate personal data, and whether those flags need human review before they become classifications. Also confirm how sampling affects coverage. If profiling samples rows, a column that holds personal data in only a small share of records may not be flagged. Plan a manual review of high-risk tables and of any column whose name or lineage suggests personal data, and record which assets were reviewed by hand.
Treat the output of this method as a map to verify, not a finished inventory. Before the record of processing is signed off, have each owner confirm the tagged columns in their domain, check the lineage edges that leave the domain, and log any gaps, such as a spreadsheet export that never reached the catalog. The gaps list is itself useful evidence that the team looked, and it tells the privacy function where manual interviews or code reviews are still needed.
What evidence the catalog produces and how to keep it
Each item below is a record the catalog can produce, and each needs the same handling: a version, a date, a link to the matching Article 30 register entry, and a copy that can be produced in electronic form on request. This evidence supports the controller's own record of processing. It does not replace that record, and the controller remains responsible for what the register says.
Classification and glossary exports
Export the personal data classifications applied to tables and columns, along with the glossary terms that define each category of personal data. Record the export date, the OpenMetadata version that produced it and the classification policy in force at that time. Link each exported category to the matching data category in the Article 30 entry so a reviewer can trace a register line back to the tagged assets. Confirm with your team which export formats your version offers before you design the retention routine.
Ownership records
Keep a dated snapshot of the owner and steward assigned to each asset that holds personal data. Ownership shows who decides the purpose of a dataset and who can confirm its contents. Link each owner to the named responsible role in the register entry, and store the snapshot with the approval that accepted it. Check whether your deployment timestamps ownership changes, so that a later reassignment can be shown alongside the earlier one.
Lineage graphs for personal data
Export the lineage graph starting from each personal data asset, covering the upstream sources and downstream consumers the catalog captured. Treat each graph as evidence of where data flowed at the time of capture, and record the connectors and ingestion runs it was built from. Link each graph to the recipient and transfer entries in the register. Document any flow whose pipeline or tool is not connected, because an unconnected flow will not appear in the graph.
Data quality and profiling results
Retain profiling outputs and data quality test results for personal data tables, including row counts, null rates and failed tests on fields such as identifiers and contact details. These results show whether the data described in the register matches what is stored, and they can support accuracy and data minimization reviews. Keep each run with its timestamp and test definition, and link it to the register entry it supports. Confirm the sampling settings in your version, since they determine what a profiling result represents.
Change history and audit trail
Retain the change history for classifications, owners, descriptions and lineage so you can show when a personal data record changed and who changed it. Export the history on a fixed schedule to storage that catalog administrators cannot edit, and record the OpenMetadata release in use at each export. Link each change to the register revision it prompted. Confirm whether your deployment keeps history for deleted assets and for how long, because the register must show what was recorded on each date.
What the catalog cannot record on its own
The catalog can show where personal data sits, who owns the asset and how data moves between systems, but several parts of the Article 30(1) record are decisions and statements that no metadata connector can capture. Plan these as entries in a register or governance process owned by the privacy function, and link each one to the catalog by asset identifier. The main items are the controller's contact details, the purposes and lawful basis for each processing activity, the decision on whether a recipient contract is in place, the transfer mechanism for any third-country transfer, the retention and erasure decisions, and the general narrative of Article 32 security measures.
Purposes and lawful basis are the hardest to derive from a catalog. A table or pipeline can be tagged as containing personal data, but the reason it exists and the legal basis relied on are judgments made by the controller. Ask the business owner of each processing activity to state the purpose in their own words, then record the lawful basis and the categories of data subjects in the register. Confirm with your counsel whether any activity relies on legitimate interests, since that reliance requires a documented balancing assessment that must sit beside the record.
Recipient contracts and transfer mechanisms need the same treatment. OpenMetadata can show that a dashboard or external export consumes a dataset, but it cannot tell you whether a data processing agreement with that recipient is signed, which version applies, or whether a transfer to a third country relies on an adequacy decision, standard contractual clauses or another safeguard. Chapter V of the GDPR governs these transfers. For transfers to the United States, confirm whether the recipient is certified under the EU-US Data Privacy Framework, as set out in Commission Implementing Decision (EU) 2023/1795, and record the check date and the source you used.
Retention and erasure decisions also belong in the register. Catalog tags can show that a table holds personal data and where its owner has set a retention note, but the time limit and the rationale for it must be set by the controller and reviewed regularly. Article 30(1) requires these limits where possible. Article 32 measures are described in narrative form, usually as a security overview that cross-references the encryption, access control, logging and backup standards in force. The catalog can link to those standards through asset identifiers, but it does not replace them.
Finally, be precise about external assurance. The GDPR requires no audit, attestation or certificate, and the record of processing is a document the controller must keep and produce to the supervisory authority on request. Article 42 certification is voluntary, is issued for at most three years by accredited bodies or supervisory authorities, and does not reduce the controller's or processor's responsibility for compliance. Do not present a catalog export, a certificate or an internal review as proof of compliance. Confirm with your legal team which evidence the supervisory authority would expect for your processing, and whether any pending changes to the GDPR, which as of October 2026 has not been amended, would affect the register's content.
Where OpenMetadata does not close the gap
The catalog shows where personal data sits and who owns it, but several Article 30(1) fields depend on other systems. The gaps below cluster around the record template, purposes, contracts, erasure, coverage and unconnected systems. Regulation (EU) 2025/2518 applies from 2 April 2027, and the Omnibus proposals are still pending, so review the register design as those changes progress.
No confirmed record template
OpenMetadata organizes assets, owners, tags, glossary terms and lineage, but the supplied facts do not confirm a built-in Article 30(1) record of processing template. Ask the vendor whether your target release includes one before you plan around it. If it does not, plan a companion register with contact details, purposes, recipients, transfers, erasure time limits and a description of security measures. Article 30(3) and (4) require the record to be in writing, including electronic form, and available to the supervisory authority on request.
Purposes and lawful basis need a register
A PII tag records that a column holds personal data, but it does not record why the data is processed, the lawful basis or the categories of data subjects. Keep these in a separate register that links each processing activity to catalog assets through stable identifiers. Check that every PII-tagged table maps to at least one activity, and that the named owner can state the purpose when asked.
Transfer and recipient contracts sit elsewhere
Lineage can show a dataset flowing to an external API, vendor or analytics service, but the transfer mechanism, processor contract and recipient category live in legal and procurement systems. Chapter V of the GDPR governs transfers to third countries (Articles 44 to 50). Check that each external destination in lineage carries a contract reference in the register, and that the reference is reviewed when the destination changes.
Erasure runs in source systems
The catalog can identify where personal data must be erased and record the applicable time limit, but deletion or anonymization is carried out in the source applications, warehouses, replicas, search indexes and backups. Confirm for each PII asset that a named system owner exists and that a documented deletion path covers downstream copies. A catalog entry that says a field is personal data does not delete it.
Metadata quality depends on coverage
The catalog is only as complete as its connectors and ownership assignments. OpenMetadata lists more than 130 connectors, but each system holding personal data must be checked against its documented scope and stage before you rely on it. Unowned assets and stale classifications produce missing or wrong PII tags. Assign owners to every connected asset and schedule recurring classification reviews.
Unconnected systems stay invisible
The catalog reflects what was connected. Spreadsheets, SaaS tools without a connector, email archives and shadow databases that hold personal data appear nowhere unless someone finds them. Build an inventory from procurement, identity and finance records, and log each system that lacks a connector as an open item in the register. Do not treat the catalog as complete until those items are closed or accepted by the data protection lead.
Configuring the catalog to feed an Article 30 record
This sequence connects OpenMetadata's domains, glossary, classifications, connectors, lineage and owners into a repeatable feed for the privacy team's record of processing. Each step ends with a check the privacy office can review, so the catalog supports the Article 30 record without replacing it.
Decide the authentication model first
Before anyone on the privacy team signs in, the platform owner chooses how users authenticate. OpenMetadata documents SSO with Auth0, Azure, Google, Okta, Amazon Cognito, OneLogin, Keycloak and custom OIDC providers. It does not support combining SSO with basic authentication, so decide once and apply the choice to every account, including setup administrators. Map privacy roles to groups in the chosen provider before granting access. Done when the provider is confirmed in writing and a test privacy user signs in with only the intended role.
Define domains and owners for processing activities
Map each processing activity in your register, such as recruitment, billing or customer support, to an OpenMetadata domain. Name one accountable owner and one privacy contact for each domain, choosing people who can answer questions about the data it holds. The register requires a controller contact and the purposes of each activity, so keep the domain list aligned with it. Done when the privacy office has approved the domain list and every domain has a named owner.
Create glossary terms and classifications
Build a glossary that defines personal data, special category data and the terms your privacy team uses in its own policies. Create a classification set that mirrors those definitions so the same label carries the same meaning across every source. Ask counsel or the privacy office to approve the wording and to confirm which special category groups your organization treats as in scope. Done when the glossary and classifications are approved and each term has a definition and a single accountable owner.
Connect warehouses, BI tools and pipelines
Connect each warehouse, BI tool and pipeline where personal data is stored or processed. OpenMetadata lists more than 130 connectors, but each has its own documented scope and stage, so confirm the specific source and the level of metadata it provides before relying on it. Create a dedicated read-only service account for each source under the identity model chosen in the first step. Done when every in-scope source shows a successful metadata run and any unsupported source is logged for a documented manual workaround.
Confirm lineage ingestion for those sources
Check that lineage arrives for each connected source. OpenMetadata supports table, column, dashboard, pipeline and metric lineage and accepts OpenLineage events, but what appears depends on what each source exposes and how its pipelines emit it. Pick one personal data field and trace it from the source table through each transformation to a dashboard. Done when the trace is complete for each source and every gap is logged with the data team that must close it.
Apply classifications and owners to priority assets
Start with the assets the privacy team has flagged as priority, such as customer and employee tables and the dashboards built on them. Apply the approved classifications to columns that hold personal data, and assign an owner to each table, dashboard and pipeline. Any automated suggestion needs a named person to confirm or reject it. Done when every priority asset has a classification, an owner and a domain, and each disagreement between a suggestion and an owner is recorded.
Schedule an export that maps assets to register entries
Build a scheduled export using the REST APIs or the Python SDK. It lists each domain, owner, classified asset and lineage path, and maps them to the matching register entry for the processing activity. The export feeds the record, and the register keeps its own format and fields. The catalog cannot supply the legal basis, retention justification, transfer safeguards or security measure descriptions, so the privacy office maintains those. Done when the privacy office has agreed the schedule and a first export reconciles with the register.
Keeping the record and the catalog aligned after go-live
The register stays accurate only if someone owns the recurring work that keeps the OpenMetadata catalog and the Article 30 record in step. Name one process owner, usually the privacy lead or data governance lead, and give that person a standing review calendar, a written checklist and a log of decisions. Without a named owner, the catalog drifts from the register within a few release cycles, and the gap usually surfaces only when a supervisory authority asks for the record.
The first recurring task is reviewing new connectors and tables against the register. Each new ingestion source, and each new schema that appears in an existing source, should be checked for personal data before it is treated as covered. Confirm that PII tags and classifications have been applied to new columns, that the owning team has been assigned, and that any new recipient or third-country destination reachable through lineage has been added to the processing entry. Ask your data team to route new connector onboarding through this review rather than leaving it to individual engineers.
The second task is re-checking classifications after schema changes. Renamed, split or merged columns can silently lose a PII tag or inherit one they should not carry. Run a periodic query against the tables tagged as personal data and compare the results with the processing activities they support. Owner assignments need the same attention. When staff move teams or leave, reassign ownership of tables, dashboards and pipelines, and check that no processing activity in the register points at a departed person. Record each reassignment so the audit trail shows who was responsible at each date.
The third task is planning OpenMetadata upgrades, and it should be scheduled rather than handled as an emergency. The 2.0 release notes list breaking changes that affect a self-hosted deployment. Embedding credentials move into an llmConfiguration block, the Databricks authentication format changes, custom ingestion images must be rebuilt for Python 3.12, and Great Expectations must be migrated to 1.3 before the upgrade. Confirm each item against your own connectors and configuration, test the upgrade in a non-production environment, and check that tags, owners and glossary links survive the move before you approve it.
Finally, record the process itself. Keep a short runbook that lists each recurring task, its frequency, its owner, its evidence and its escalation path, and review it at least once a year. The schedule should be agreed with the privacy team and the platform team before go-live, because the cost of this work is mostly staff time and recurs for as long as the catalog is in use. Ask any implementation partner to deliver the runbook and the first review cycle as part of the fixed scope, and confirm which tasks will remain with your team afterward.
What do buyers ask before getting help with a GDPR record in OpenMetadata?
Can OpenMetadata produce a GDPR record of processing on its own?
No. OpenMetadata cannot produce a GDPR record of processing from the catalog alone. It helps you find where personal data lives through PII classifications, asset ownership, and table, column and pipeline lineage, and that information can feed the record. Article 30(1) also asks for contact details, purposes, categories of data subjects and recipients, third-country transfers, erasure time limits where possible, and a general description of Article 32 security measures. Those items come from your privacy team, processing owners and contracts. Article 30(3) allows the record to be kept in electronic form, but someone must maintain its content and make it available to the supervisory authority on request.
Does OpenMetadata need a specific deployment for GDPR record work?
The catalog must be deployed in a supported way, but the GDPR does not prescribe one. OpenMetadata documents production deployments on Kubernetes (AWS EKS, Azure AKS, Google GKE and on-premises clusters) and on bare metal, with Docker for local trials. Bare metal needs Java 21, MySQL 8.0.42 or later or PostgreSQL 15 or later, and Elasticsearch 9.x or OpenSearch 3.x. The documented minimum server size is 2 vCPUs, 4 GB RAM and 20 GB storage, and the database and search services each need at least 2 vCPUs, 2 GB RAM and 30 GB storage. Treat these as starting points. Confirm sizing against your number of sources and your environment before procurement.
What drives the cost and effort of a GDPR record project?
The main drivers are scope, data quality and integration. The number of sources matters most, since OpenMetadata lists more than 130 connectors and each source needs a connection, ingestion schedule and access review. Cost also rises with the quality of ownership data, because every personal data asset needs a named owner who can answer questions. Lineage depth matters, from table and column level to dashboards, pipelines and metrics, along with OpenLineage events where you use them. Integration with your register adds effort if the record lives in a separate tool. Infrastructure runs in your accounts. DeployOpen plans fixed-scope work under a written scope, so ask for a quote itemized by source, lineage depth, register integration and any recurring support retainer.
How long does a GDPR record implementation take?
Duration depends on the scope, and the drivers below set it. The same drivers that affect cost also set the schedule: the number of sources, how many owners must confirm their assets, how deep lineage must go, and how the register will be connected. Access approvals for source systems and the speed of owner reviews often take longer than the technical build, so plan for them early. Deployment on Kubernetes or bare metal follows your infrastructure change process. DeployOpen agrees deliverables and timelines in writing before work starts, so ask for the schedule as part of the written scope, with milestones tied to source onboarding and owner sign-off.
What does our team need to provide for this work?
Named people, source access and a register owner. Each in-scope data area needs a named data owner who can confirm what personal data it holds, why it is processed and who receives it. The project needs service accounts or credentials with read access to each source, plus access to the cloud accounts, clusters or data center hosts where OpenMetadata will run. A register owner must be named to maintain the Article 30 record, approve the PII tagging approach and decide how the catalog and the register stay in step. Your security team should also review the controls behind the Article 32 description. Ask the vendor to list these inputs in the written scope so the dependencies are visible before work starts.
Can our own team build the GDPR record workflow in-house?
Yes, if your team has the skills and the time. OpenMetadata provides REST APIs, a Python SDK, TypeScript packages and Java libraries, so engineers can script connector setup, tag propagation, ownership assignment and exports to the register. The work needs knowledge of your data stack, the OpenMetadata data model and the Article 30 fields. Owner interviews, tagging decisions and sign-off take time from people who already have other jobs. Upgrades also need planning, because OpenMetadata 2.0 introduced breaking changes, including a new llmConfiguration block, a new Databricks auth format and a Python 3.12 rebuild of custom ingestion images. Many teams split the work, building internally and bringing in a partner for the parts that need specialist review.
Does a GDPR record of processing need a certificate?
No certificate is required by the GDPR. The regulation requires no audit, attestation or certificate for the Article 30 record. Certification under Article 42 is voluntary, is issued for at most three years by accredited certification bodies or supervisory authorities, and does not reduce the controller's or processor's responsibility for compliance. Independent auditors and certification bodies issue audit reports and certificates, and DeployOpen does not. What DeployOpen can prepare is the system, the controls and the evidence that an assessor or your supervisory authority may ask to see, such as lineage exports, ownership records and change history. Confirm with your legal team which evidence your organization needs to keep.
How DeployOpen scopes and delivers an OpenMetadata compliance setup
DeployOpen implements OpenMetadata in infrastructure you control, configuring PII classifications, domain and ownership structure, and lineage so your team can locate personal data and maintain its record of processing. The work is agreed as a fixed scope in writing before build starts, and ongoing support is available as a retainer. DeployOpen prepares the catalog and its evidence, but the Article 30 record remains your organization's document.
How we scope
- The written scope lists the source systems, connectors and data domains to be catalogued for processing records.
- Agree which PII classification tags, owners and glossary terms map to each Article 30(1) field.
- Confirm the deployment model, such as Kubernetes or bare metal, and the identity provider used for access.
How we build
- Deploy OpenMetadata in your infrastructure, with the database and search services sized to the connector load.
- Configure domains, glossaries, classifications and ownership so each personal data asset has a named owner.
- Set up lineage ingestion, including OpenLineage events where your pipelines emit them, then test the results.
How we hand over
- Test that PII tags and ownership fields are applied to the sample tables and columns agreed in scope.
- Document the configuration, connector settings, tag definitions and the steps to add new sources.
- Deliver a field-by-field map of which catalog attributes feed each Article 30(1) element, and which elements the catalog cannot supply.
How we support
- Ongoing support is available as a retainer, covering upgrades, connector maintenance and tag reviews.
- Upgrades follow the documented 2.0 breaking-change list, including the Great Expectations 1.3 migration before upgrading.
- Ask whether the retainer includes periodic tag reviews as new sources are added to the catalog.

