Self-hosted Langfuse for GDPR storage limitation and erasure

Self-hosted Langfuse gives you retention policies, trace and session deletion and masking controls for GDPR storage limitation and erasure. Some of these need an Enterprise license key, and backups, transfers and legal decisions stay with your organization.

On this page

How self-hosted Langfuse supports GDPR storage limitation and erasure

Langfuse helps a controller meet storage limitation and erasure duties through retention policies, deletion of traces, sessions and projects, and masking at ingestion, but it does not decide the lawful basis, the retention periods or whether a given deletion is complete. Those decisions stay with the controller, who must set them from the purpose of each trace store and record them in its processing documentation. Article 5(1)(e) of the GDPR requires personal data to be kept in identifiable form no longer than necessary, and Article 25(2) requires that, by default, only the personal data needed for each purpose is processed, including for how long it is stored. A controller whose LLM traces contain user prompts and personal data needs to translate those duties into concrete settings in the Langfuse instance it runs.

Self-hosting keeps that work inside infrastructure the client controls. Langfuse Web, Langfuse Worker, PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible blob storage all hold copies of trace content, so a retention or deletion decision has to be applied to every store, including media in blob storage and backups. The deployment itself stays in the client's cloud account, data center or air-gapped network, which means the controller, not Langfuse, is responsible for where copies live and who can reach them. Ask your team to map each store to the personal data it holds and to the person who will run each deletion step. Some of the controls that matter here need an Enterprise license key. Data retention policies, server-side data masking, audit logs, project-level RBAC roles and the instance management API are listed by Langfuse as Enterprise features for self-hosted deployments. Without a retention policy, self-hosted Langfuse stores traces, observations, scores and media indefinitely, so a deployment that is meant to delete data on a schedule cannot rely on the open source version alone. Confirm the license scope with Langfuse before the design is fixed, because it changes which mechanisms you can use and what you must build or run yourself.

Deletion is available through the API and the interface. Langfuse supports deleting a single trace, a batch of traces, all traces in a session (on Langfuse v4 or later when self-hosted), traces matching a filter, a project, an organization or a user account. Trace deletion removes related observations and scores and runs asynchronously, so the reader should confirm the completion behavior and monitor the worker before reporting that data is gone. Whether a deletion meets an erasure request under Article 17(1) is a legal judgment, and the EDPB's 2025 coordinated enforcement action found recurring problems, including anonymisation used in place of deletion and personal data left in backups. Plan how backups expire, and document how deleted content is treated in them.

Masking at ingestion is the control that reduces what you need to delete later. If personal data is removed or redacted before traces reach Langfuse, fewer records fall under retention and erasure duties. Decide which fields in prompts, completions, metadata and tool outputs carry personal data, test the masking rules against representative traces, and verify that masked values do not still appear in scores, exports or logs. Retention periods, the masking rules and the deletion owner should be written down together, reviewed by your data protection function, and confirmed with your auditor or supervisory authority where required, since Langfuse prepares the controls but does not certify compliance.

Mapping GDPR requirements to Langfuse capabilities and configuration

This table maps the GDPR provisions covered here, plus backup deletion and masking at ingestion, to the Langfuse capability that supports each one, the configuration you set and the edition that provides it. Rows marked as requiring an Enterprise license key depend on that key, so without it you must build those controls elsewhere. The main takeaway is that API-based deletion works in the open source edition, while automated retention and server-side masking need a license.

RequirementLangfuse capability and configurationEdition
Article 5(1)(e): storage limitationSet a data retention policy per project so that traces, observations, scores and media older than a configured number of days are deleted each night. Without a policy, self-hosted Langfuse keeps this data indefinitely, so the policy is the control that enforces the storage period.Enterprise license key required
Article 25(2): storage period by defaultFix the retention period before teams start sending traces, and apply it to each project. Document the period per project and use single-trace or session deletion only for exceptions that the processing purpose justifies.Enterprise license key required for retention policies. Deletion API is open source.
Article 17(1): erasure without undue delayDelete a single trace, a batch of traces, all traces in a session (self-hosted v4 or later), traces matching a filter, a project, an organization or a user account through the API. Deletion removes related observations and scores and runs asynchronously, so record the request and confirm completion.Open source
Deletion of personal data in backupsLangfuse documentation reviewed here does not describe deleting individual records from backups. Define backup retention for PostgreSQL, ClickHouse and S3-compatible blob storage, document when erased data expires from backups, and confirm the procedure with a restore test in your environment.Open source. Backup tooling is your responsibility.
Masking at ingestion (data minimization)Server-side data masking runs before data is stored, which limits personal data retained in traces. Also confirm whether your SDK version offers client-side redaction in the application before traces leave it, and test both on sample personal data.Enterprise license key required for server-side masking
Article 30: record of processing activitiesRecord the retention period per trace category, the deletion method and the masking applied, as the time limits for erasure in your record. Export the project list and retention settings as evidence. Langfuse does not produce the record itself.Open source. The record is your documentation.

Why LLM traces keep personal data longer than teams expect

Without a retention policy, self-hosted Langfuse keeps traces, observations, scores and media indefinitely. Nothing in the default configuration removes a trace once it is ingested, so every prompt, completion and metadata field written during the instance's lifetime stays in the store. That matters because personal data in LLM traces rarely arrives as a deliberate field. A user pastes an email address or an account number into a chat, a retrieval step returns a customer record, and a session identifier tied to a named account is attached as metadata. Teams often expect traces to behave like short-lived debugging logs. In practice they accumulate into a long history of identifiable records, and each day of ingestion adds to the volume the controller must later justify, search and erase.

Article 5(1)(e) of the GDPR requires personal data to be kept in a form that permits identification for no longer than is necessary for the purposes of the processing. Article 25(2) adds that, by default, only the personal data necessary for each specific purpose are processed, including with respect to the period of their storage. Together they turn the indefinite default into a decision the controller must make and record. The period is set per purpose, so one number for the whole instance rarely fits. As an illustrative case only, traces used to investigate production incidents in a support assistant may need a short period, an evaluation dataset kept for regression testing may need a different one, and a usage report may only need aggregated counts. Each period needs a stated justification, an owner and a documented trigger for review.

In self-hosted Langfuse, the retention policy is the technical mechanism for that decision. According to the Langfuse documentation, retention policies are part of the Enterprise Edition and need a license key, and they delete data older than a configured number of days each night. Confirm with Langfuse which object types the policy covers in your version, including scores and media, because the storage period you document must match what the platform actually deletes. Individual erasure requests follow a separate path. The API can delete a single trace, a batch of traces, all traces in a session (Langfuse v4 or later when self-hosted), traces matching a filter, a project, an organization or a user account. Trace deletion also removes related observations and scores, but it runs asynchronously, so test how long it takes to complete in your environment.

Plan this work before the first production trace arrives. Inventory which fields in prompts, completions, metadata and attachments can contain personal data, and map each field to a purpose. Decide which retention period applies to each purpose, then check whether the enterprise license needed for an automated policy is included in your quote. Where the platform cannot express a period, confirm whether a scheduled deletion job against the API is acceptable and who will operate it. Test the chain end to end: create a synthetic trace containing a marker value, run the retention or deletion job, and confirm that the marker is gone from the UI, the API and the storage layer. Also confirm how backups and exports are handled, since a live deletion does not necessarily reach copies taken earlier. Record the decision and the test evidence in your records of processing, because the controller must be able to demonstrate the decision.

What evidence Langfuse produces for an erasure request

A controller answering an erasure request or reviewing storage limitation needs records that show what was configured, what was deleted and when. The records below are the ones a self-hosted deployment can keep, and most of them sit in systems you operate, so their completeness depends on how you configure and retain them.

Retention policy settings

Data retention policies are an Enterprise Edition feature that delete data older than a configured number of days each night. Keep the configured value for each project, the date it was set and every later change, because this setting is your primary evidence of storage limitation. Check that the policy reaches traces, observations, scores and media, and confirm with Langfuse which data types it covers in your version.

Deletion request scope

Self-hosted Langfuse can delete a single trace, a batch of traces, all traces in a session, traces matching a filter, a project, an organization or a user account. For each request, record the identifier or filter used, the scope chosen, the requester, the date and the completion check, since trace deletion runs asynchronously. Session-level deletion through the API requires Langfuse v4 or later when self-hosted.

Audit logs for Enterprise deployments

Audit logs are an Enterprise Edition feature and need a license key. Confirm which administrative and data events they record in your version, where they are stored, how long they are kept and whether they can be exported to your log platform. Without them, you will need another source to show who ran a deletion or changed a retention setting.

Configuration history in the repository

Keep the deployment definition in version control, covering Helm values or Terraform for Kubernetes and Compose files for test environments, together with the Langfuse image version. Commit history then shows when a retention setting changed, who approved the change and which release was running. Store the license key in a secrets manager and reference it by name only.

Backup and replica deletion records

The EDPB's 2025 coordinated enforcement action, announced on 18 February 2026, listed deletion of personal data in backups among its recurring challenges. Document how long backups of ClickHouse, PostgreSQL and blob storage retain data, whether a deleted trace can reappear after a restore and how restored data is deleted again. Keep the restore procedure and its test results in the erasure file.

Assessor-ready records, no certificate

The records are prepared for independent assessors, who review them against the controls they test. Langfuse does not produce an audit report or certificate, and the GDPR requires neither an audit nor a certificate. Certification under Article 42 is voluntary and does not reduce the controller's responsibility, so present these records as your own compliance evidence.

How GDPR erasure requests map to trace, session and project deletion

Map each erasure request to the narrowest Langfuse deletion scope that covers the personal data it names. Langfuse supports deleting a single trace, a batch of traces, all traces in a session, traces matching a filter, a project, an organization and a user account. Deleting traces also removes the observations and scores attached to them. A request that names one conversation maps to a trace or session scope. A request that spans a product or tenant maps to a filtered set or project scope. Those actions should pass a documented approval step, because a wrong filter or project selection removes more records than the data subject's own. Write the mapping down before the first request arrives, so the on-call engineer is not choosing scope under time pressure.

Session deletion needs particular care. The Langfuse data deletion documentation describes deleting all traces in a session through the API as available in Langfuse v4 or later when self-hosted. If your instance runs an earlier version, a session-shaped request has to be translated into batch or filtered deletion by trace identifier, and you should test that translation on a non-production project first. Confirm with the API reference for your exact version which scopes are exposed through the API and which appear in the UI, because the two surfaces may not offer the same options. Record the Langfuse version, the scope list you confirmed and the date you confirmed it, since the answer can change with each upgrade.

Deletion runs asynchronously. A successful API response or a UI confirmation shows that the request was accepted, but it does not confirm that every copy has gone. Run a completion check after the Langfuse Worker has processed the job, and attach its output to the erasure record. Check each store that can hold the data: ClickHouse for trace, observation and score rows, PostgreSQL for metadata that references the trace or project, and S3-compatible blob storage for media attachments. Query by the identifiers you deleted and keep the results as evidence. Worker logs and queue status show whether jobs are still pending, but a query against the stores themselves is the check that confirms removal.

Deletion from live stores does not reach backups by itself. The EDPB's 2025 coordinated enforcement action on the right to erasure listed deletion of personal data in backups among its recurring challenges, so your backup retention and restore procedure needs a written position. State which backups hold the data, how long they persist, and what you do if a restore brings back an erased record. Account and organization deletions remove more than traces, so confirm with your version what they cover and whether they can be reversed. Treat the whole mapping as a controlled procedure and review it at every Langfuse upgrade.

Configuring retention, deletion and masking in sequence

This sequence turns storage limitation and erasure duties into classified data, approved settings, a documented procedure and tested deletion in a self-hosted Langfuse instance. Each step produces a written record or a verified result that privacy and engineering can review together.

  1. Classify personal data by trace type

    List each kind of trace your applications send to Langfuse, such as prompts, model outputs, user identifiers in metadata, session IDs and uploaded media. Mark which fields can carry personal data and which carry only technical identifiers. Privacy, engineering and the owner of each application should review the list together. Done when every trace type has a written entry stating whether it can contain personal data and where that data appears.

  2. Set retention periods for each purpose

    For each purpose the traces serve, such as debugging a production assistant or running offline evaluations, record why the data is needed and how long it must stay identifiable. Legal and privacy owners approve these periods, with engineering supplying the technical facts. Articles 5(1)(e) and 25(2) of the GDPR set the test: keep personal data no longer than the purpose requires, and make that the default. Done when each purpose has an approved period and a named owner who revisits it when the processing changes.

  3. Enable masking at ingestion for data never stored

    Identify personal data that no purpose justifies storing, such as full card numbers or government identifiers that users paste into prompts. Configure server-side data masking so these values are redacted before they reach ClickHouse. Server-side masking requires an Enterprise license key, so confirm licensing before the design depends on it. Client-side redaction in your SDK calls can add a second layer. Done when test traces containing sample sensitive values appear in redacted form in the UI, the API and the stored records.

  4. Configure and document retention policies

    With the Enterprise license key active, create a retention policy for each trace category decided in the earlier steps. Without a policy, self-hosted Langfuse keeps traces, observations, scores and media indefinitely. Langfuse deletes data older than the configured number of days each night, so confirm which projects and data types each policy covers in your version. Record the settings, the owner, the change history and the reason for each setting in your records of processing. Done when the policy configuration, the change log and the approved periods agree with one another.

  5. Write the erasure request procedure

    Define how a data subject request reaches the team, who verifies identity and how the request is matched to specific traces. Choose the deletion scope that fits each request: a single trace, a batch, all traces in a session, traces matching a filter, a project or a user account. Session deletion through the API requires Langfuse v4 or later when self-hosted. Deletion runs asynchronously, so the procedure needs a confirmation step and a completion record. Done when a sample request can be followed from intake to a logged deletion result.

  6. Test deletion across ClickHouse, PostgreSQL and blob storage

    In a non-production copy of the instance, create synthetic traces that carry a unique marker value, including a session, scores and media. Run each deletion path, wait for the asynchronous job to finish, then query ClickHouse for remaining observations and scores, PostgreSQL for related records and blob storage for stored media. Keep the queries and their results as evidence. Done when every store returns no matches for the marker and the results are saved with the Langfuse version tested.

  7. Check backups, exports and anonymisation claims

    Review how backups of PostgreSQL, ClickHouse and blob storage handle deleted personal data, and document how that data ages out of them or is otherwise handled. The EDPB's 2025 coordinated enforcement action on erasure listed deletion in backups and ineffective anonymisation used in place of deletion among its recurring challenges. Check exports and downstream copies, such as analytics tables, the same way. Done when the backup and export handling is written down and a privacy lead has accepted it as the documented position.

Where Langfuse does not close the erasure gap

Langfuse gives you mechanisms to delete, expire and mask trace data. It does not decide whether an erasure is required, where copies of the data have gone, or whether personal data reached Langfuse in the first place. The five areas below remain the controller's work, and each needs an owner, a written procedure and evidence before an erasure request can be closed.

Lawful basis and Article 17(1) assessment

Langfuse cannot tell whether an erasure request is valid. For each request, the controller must confirm the lawful basis for the original processing and assess which of the six grounds in Article 17(1) applies, such as data no longer necessary for its purpose, a successful objection or unlawful processing. Record the decision, the date and any exception relied on. Confirm with your legal team how a request reaches the person who runs deletion, because user IDs, session IDs and trace IDs often do not match the identifiers a data subject provides.

Backup copies and restoration

Deleting a trace in Langfuse does not reach the backups you take of PostgreSQL, ClickHouse and blob storage. The EDPB's 2025 coordinated enforcement action listed deletion of personal data in backups among its recurring challenges. Define how long backups are kept, whether erased subjects are excluded on restore, and how a backup taken before an erasure is handled if it is ever restored. Check that restore runbooks re-apply pending deletions before users regain access.

Anonymization used in place of deletion

Some teams replace names or identifiers with hashes, tokens or truncated values and then treat the record as erased. The EDPB's 2025 coordinated enforcement action, announced on 18 February 2026, identified ineffective anonymization used instead of deletion as one of seven recurring challenges. Pseudonymized traces still identify people when the mapping key exists or when free-text prompts and responses contain identifying details. Where a trace still holds identifying content, deletion is the safer route. Confirm the method with your data protection officer before relying on it.

Personal data sent before masking applies

Masking only protects data once it reaches a point where a rule can run. Payloads sent by SDKs or OpenTelemetry instrumentation may leave the application, cross the network and reach ClickHouse before masking is applied, particularly where masking is configured on the server. Server-side data masking requires an Enterprise license key. Check where your SDKs and collectors run, whether masking happens in the client or in a collector you operate, and what is written in raw form during that window.

Logs, exports and downstream systems

Langfuse deletion covers only its own stores. Application logs, gateway and reverse proxy logs, exported datasets, notebooks, evaluation spreadsheets, data warehouses and alerting tools may hold copies of the same prompts and responses. Every export made through the API or the UI creates a new copy under your control. Maintain an inventory of each destination that receives trace content, define a deletion or expiry step for each one, and include those steps in your erasure evidence. Confirm the retention settings of every downstream tool.

Transfers, remote support and third-country access in a self-hosted Langfuse

Self-hosting keeps stored traces in your infrastructure, but it does not by itself settle transfer questions. Under EDPB Guidelines 05/2021 (version 2.0), remote access from a third country is a transfer even when the person only views data on a screen for support or administration, and so is storage in a cloud outside the EEA. For a self-hosted Langfuse, map each place trace content can be seen or stored: any vendor engineer who connects to your environment, any screen-sharing session during an incident, and any cloud region or backup target chosen for PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage. Record each one in your records of processing before go-live.

Article 44 requires every transfer of personal data to a third country, including onward transfers, to meet the Chapter V conditions. In practice, that means an adequacy decision under Article 45 or an Article 46 safeguard such as the standard contractual clauses adopted by Commission Implementing Decision (EU) 2021/914, supported by a transfer impact assessment. In Schrems II (Case C-311/18, judgment of 16 July 2020), the Court invalidated the Privacy Shield but held that standard contractual clauses remained valid, provided the destination's law allows the clauses to be complied with. EDPB Recommendations 01/2020 go further: where a provider needs data in the clear and third-country public authority powers exceed what is necessary and proportionate, the EDPB cannot envision an effective technical supplementary measure. Encryption keys you hold do not fix access to clear-text traces.

The EU-US Data Privacy Framework covers less than many teams assume. Commission Implementing Decision (EU) 2023/1795 finds adequate protection only for US organizations on the Data Privacy Framework List. A US support provider that is not on that list cannot be relied on under the decision, and a listed organization still needs its certified scope checked against the data involved. An appeal against the General Court's September 2025 judgment upholding the decision is pending as Case C-703/25 P. Confirm the status at signing, and prepare a fallback under the standard contractual clauses in case the decision changes.

The US CLOUD Act is the main reason the choice of processor matters, even for an EU-based company. 18 U.S.C. 2713, added on 23 March 2018, requires electronic communication and remote computing service providers to preserve or disclose data in their possession, custody or control, whether it is inside or outside the United States. EDPB Guidelines 05/2021 (Example 12) say that using an EU processor subject to third-country law with extraterritorial effect is not itself a transfer, but complying with a third-country authority request would be. Assess that exposure before engaging such a processor. Article 48 also limits recognition of third-country disclosure orders to those based on an international agreement, such as a mutual legal assistance treaty.

Ask your Langfuse support provider for a written list of every location, account and person able to view trace content, including screen-sharing during incidents. Limit remote access to named jump hosts inside the EEA, log each session, and require tickets to carry metadata rather than raw trace payloads. Record the Chapter V basis for each remaining transfer, and rerun the assessment when the Data Privacy Framework status or Case C-703/25 P changes. DeployOpen implements and documents these controls in your infrastructure, but it does not issue transfer attestations. Your legal counsel and your supervisory authority's guidance determine whether the position is compliant.

Which retention and masking features need an Enterprise license key

Five features in this group need an Enterprise license key on a self-hosted instance: data retention policies, server-side data masking, audit logs, project-level role-based access control (RBAC) and SCIM provisioning. Each one affects GDPR work in a different way. Retention policies remove data on a schedule, which supports storage limitation. Masking controls what personal data is kept in the first place. Audit logs and RBAC give you the records and access boundaries that support accountability.

  • Data retention policies: delete data older than a configured number of days, applied each night.
  • Server-side data masking: masks sensitive content on the server side, so you can limit what personal data reaches storage. Confirm where in the pipeline masking applies.
  • Audit logs: record administrative activity that you can review during an assessment.
  • Project-level RBAC: restricts which users can view or change the data in each project.
  • SCIM provisioning: connects account creation and removal to your identity provider, so access ends when a person leaves.

Confirm each item against the license key documentation for your Langfuse version before you plan controls around it.

Questions buyers ask before hiring help with GDPR erasure in Langfuse

How much does DeployOpen charge for GDPR erasure work in Langfuse?

DeployOpen does not publish a price list, so cost comes from a quote based on a written, fixed scope. The main cost components are the analysis of which personal data reaches your traces, the configuration of retention, deletion and masking, the design and testing of deletion jobs, and the review of backups and any data transfers. Costs rise with the number of trace types, the number of projects and environments, the complexity of your backup architecture, and the number of third-country access paths that need a transfer review. Some costs are one-time, such as the initial analysis and build, while others recur if you add a retainer for ongoing support or periodic erasure testing. Ask for the quote to list each component separately, along with what is excluded and who performs each task.

How long does a self-hosted Langfuse erasure project usually take?

The duration depends on the scope agreed in writing, so no fixed timeline is given here. The biggest factors are the number of trace types and integrations sending personal data, the size of your existing trace history, and whether your team must first agree a retention schedule with legal or privacy staff. Backup architecture also affects the schedule, because restoring a backup, testing deletion inside it, and documenting the result takes time. If you are also upgrading to a newer Langfuse major version, the ClickHouse disk headroom needed for backfilling historic data adds planning time. Ask the partner for a phased timeline with dependencies and decision points, and confirm which steps depend on your team's availability.

What does our team need to provide before erasure work starts?

Before work starts, you need to provide access to the environment, a list of the systems and applications that send traces to Langfuse, and a named owner for retention decisions. Your privacy or legal team should state how long each category of trace may be kept, because storage limitation under Article 5(1)(e) depends on the purpose of the processing. You also need the backup schedule, storage locations, and retention settings for PostgreSQL, ClickHouse and S3-compatible blob storage, plus details of who administers each system. Finally, identify every place support staff or vendors can reach the data, since remote viewing from a third country can count as a transfer. Missing inputs usually delay the quote and the build more than any technical step.

Can our own engineers handle Langfuse retention and erasure in-house?

Yes, a capable platform team can implement parts of this work in-house, particularly the API-based deletion of single traces, sessions or projects, which Langfuse supports. The harder parts are the legal and design decisions, such as defining retention periods per purpose, and the backup work, which requires restore tests and a documented position on deleting personal data from copies. Retention policies and server-side data masking need an Enterprise license key, so budget for that licensing decision before you choose an approach. Deletion also runs asynchronously, so your team needs a way to verify completion. Consider whether your staff have time for testing and evidence collection, since both are usually where in-house projects stall.

What does a quote for Langfuse erasure work depend on?

A quote depends on the written scope, which should name the Langfuse version, the deployment model, and the data flows you want covered. The main inputs are the number of trace types and projects, the number of integrations and identity systems that connect to Langfuse, and the volume and age of data already stored. The quote also depends on the backup design, including retention of backup sets, how they are encrypted and where they are stored, and whether restoring from backup must be tested. If personal data may leave the EEA through hosting, support access, or subprocessors, a transfer review adds scope. Ask for assumptions in writing and a list of what would change the price if they prove wrong.

Can DeployOpen certify that our Langfuse deployment is GDPR compliant?

No. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. The GDPR itself requires no certificate. Certification under Article 42 is voluntary, is issued by accredited certification bodies or supervisory authorities for up to three years, and does not reduce the controller's responsibility for compliance. Your organization remains responsible for its lawful basis, retention decisions and records of processing. DeployOpen can help you document how Langfuse retention, deletion and masking are configured and tested, so your assessor or your data protection officer has clear evidence to review.

What happens to personal data in Langfuse backups after an erasure?

Deleting data from the live Langfuse instance does not automatically remove it from existing backups, so this must be designed and documented. The EDPB's 2025 coordinated enforcement action on the right to erasure, announced on 18 February 2026, identified deletion of personal data in backups as one of seven recurring challenges. Typical approaches include short backup retention so that copies expire on a known schedule, documenting that restored backups must re-apply deletions, and recording which backup sets contain erased data. The right design depends on your backup tooling, your recovery objectives, and your legal position on backup copies. Ask the partner to show how a restore interacts with past erasure requests before you rely on the design.

Do Langfuse retention policies and masking require an Enterprise license?

Yes, in the self-hosted edition, data retention policies and server-side data masking are Enterprise features that need a license key. Without a retention policy, self-hosted Langfuse keeps traces, observations, scores and media indefinitely, so this is a material decision for storage limitation. The core deletion capabilities, including deleting single traces, batches, sessions, projects and users through the API, are available in the open source version, with session deletion needing Langfuse v4 or later when self-hosted. Enterprise licensing also affects the pricing and support model, which the vendor sets. Confirm the current feature list and license terms with Langfuse before you finalize the design.

How DeployOpen scopes and delivers GDPR retention and erasure configuration

DeployOpen scopes and configures retention, trace, session and project deletion, and masking for a self-hosted Langfuse instance in infrastructure you control. The written scope fixes which retention periods, deletion paths and backup treatments are in place before any build starts. Engagements are fixed-scope, and ongoing support is available as a retainer.

How we scope

  • The written scope names which trace data stores hold personal data, such as ClickHouse, PostgreSQL and blob storage.
  • It records retention periods per data type and per project, agreed with your privacy and legal owners before configuration.
  • Engagements are fixed-scope, so deliverables and timelines are agreed in writing before work starts.

How we build

  • Set data retention policies and server-side masking, which need an Enterprise license key, after confirming licensing with the vendor.
  • Wire deletion procedures for single traces, batches, sessions, filtered sets, projects and user accounts, with asynchronous completion checked.
  • Apply masking at ingestion for identifiers that should never reach stored traces, and test that masked values are not retained.

How we hand over

  • Written runbook covering retention settings, deletion steps, who may trigger them and how each run is logged.
  • Backup handling documented, including how deleted trace data is treated in backups and snapshots, with the restore procedure.
  • Evidence pack of configuration exports and test records; DeployOpen prepares it, while auditors issue any assessment.

How we support

  • Upgrade planning for major Langfuse versions, including v3 to v4 changes to the ClickHouse data model.
  • Retention and deletion checks after each Langfuse upgrade, confirming settings still apply and deletion jobs still complete.
  • Optional retainer for ongoing support, upgrades and continuous testing, agreed in writing alongside the original scope.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.