LLM logging for the EU AI Act and data sovereignty: why it is different
If your AI system is high-risk under the EU AI Act, or sits in a regulated process, you must keep automatically generated logs for a set period, and those logs will contain prompts and outputs that often hold personal data. For most organizations the usual path is self-hosted tracing in their own EU storage, with Langfuse as the main fit. Arize Phoenix can be used internally, but its Elastic License 2.0 prohibits providing it to third parties as a hosted or managed service, so confirm that your deployment model stays within those terms before you choose it. The reason a US SaaS tracing service is harder to justify is that a trace store is a data store. Once prompts and outputs with personal data leave the EU, every transfer of personal data to a third country must meet GDPR Chapter V under Article 44, and the EDPB treats storage in a cloud outside the EEA, and remote access from a third country, as transfers. The Data Privacy Framework adequacy decision covers only organizations on the DPF List, and its General Court upholding is under appeal as Case C-703/25 P, so do not treat it as settled.
Article 48 adds a second question. A third-country authority can require disclosure of data held by a US provider, and the US CLOUD Act at 18 U.S.C. 2713 applies regardless of where the data is stored. Under Article 48, such an order is recognized in the EU only if it rests on an international agreement, so your legal team should ask any tracing vendor how it would respond to a government request and where the data would be accessible from. Before you sign, confirm three things with your own counsel and the vendor: where every trace, backup and support copy is stored, which personnel in third countries can view it, and how the answers map to your retention rules under the AI Act and GDPR storage limitation.
Which requirements shape the logging build
This table maps each legal requirement that bears on LLM logs to what it means for storage location, retention, access and masking in a self-hosted build. Read it as a design checklist: each row names the build decision it forces, and the retention period must be confirmed with counsel before any settings are fixed.
| Requirement | What it asks for | What it means for the build |
|---|---|---|
| AI Act Article 12(1): automatic event logging | High-risk AI systems must technically allow automatic recording of events (logs) over the system's lifetime. | Enable trace capture by default in the application and gateway, so logging does not depend on developers remembering to instrument each call. Confirm with counsel whether your system is high-risk at all. |
| AI Act Article 19(1): six-month minimum retention | Providers keep these logs for at least six months unless other Union or national law sets a different period. | Set a retention floor of at least six months on the trace store and its backups. Ask counsel whether sector rules (for example, financial or health regulation) require a longer period. |
| GDPR storage limitation | Personal data is kept no longer than needed for its purpose, so log retention must be justified and bounded. | Reconcile the AI Act floor with a defined maximum period per data class. Use platform retention policies, which Langfuse lists as an Enterprise license feature, or scheduled deletion jobs you can evidence. |
| GDPR Article 44: transfers to third countries | Every transfer of personal data to a third country, including onward transfers, must meet Chapter V conditions. | Keep trace storage (ClickHouse, PostgreSQL, object storage) and backups in EU or EEA locations you control. Check that no SaaS tracing, support tooling or remote administration sends data out of the EEA. |
| GDPR Article 83(5)(c): fines | Infringements of Articles 44 to 49 can draw fines of up to EUR 20 million or 4% of worldwide annual turnover. | Treat the transfer rule as a design constraint, not a contract clause. Document data flows, storage regions and administrator access so the exposure can be shown to a regulator. |
| Data Act Article 32: third-country government access | Providers of data processing services must take measures to prevent third-country governmental access to non-personal data held in the Union where it conflicts with Union or national law. | When choosing hosting or a managed service, ask the provider how it prevents foreign government access to data held in the EU. For self-hosted systems, this shifts the burden to your own access controls and key management. |
| Access control on trace data | Logs of prompts and outputs can contain personal and confidential data, so access must be limited and attributable. | Apply project-level roles, SSO and audit logging. Langfuse lists project RBAC, audit logs and SCIM provisioning as Enterprise license features, so confirm which controls you need before choosing the edition. |
| Masking before storage | Personal data should be minimized in logs, which limits what a retention period or transfer rule must cover. | Mask personal data client-side in the SDK or OpenTelemetry Collector before it reaches storage. Confirm with your privacy team which identifiers must be masked and test the masking on sample traces. |
Which platforms fit EU-controlled logging and why
EU AI Act record-keeping and GDPR storage limits both push LLM traces toward storage the organization controls. The three platforms below differ in license terms, what needs a paid license key, and where masking can happen, so each choice carries its own checks.
Langfuse self-hosted core
Langfuse's core features and APIs are MIT licensed, and self-hosted deployments run the same codebase as Langfuse Cloud. A deployment runs Langfuse Web, Langfuse Worker, PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage, all in your own cloud account or data center. Confirm that every component and backup target sits in an EU region you control.
Langfuse enterprise directories
The ee directories fall under a separate enterprise license, and several controls that matter for EU logging need a Langfuse license key. These include data retention policies, audit logs, server-side data masking, and project-level RBAC. If your six-month retention and erasure duties depend on these controls, price the license into the scope before you commit to the design.
Arize Phoenix licensing check
Phoenix is licensed under the Elastic License 2.0, which prohibits providing the software to third parties as a hosted or managed service. Self-hosting for your own internal use is the question to confirm with counsel, not an assumption. If a vendor or partner would run Phoenix for you as a managed service, the license terms may block that model.
OpenTelemetry Collector gateway
The OpenTelemetry Collector is Apache-2.0 licensed and vendor-agnostic, so it can receive traces, process them, and export them to your chosen store. Running it as a gateway lets you strip or mask personal data before it reaches any storage, which supports GDPR storage limitation. Check that each processor you rely on has a stability level you accept for production.
Collector authentication and transport
Collector authenticator extensions can check identity on incoming connections, for example with OIDC, and add credentials on outgoing exports. This limits which applications can write traces into your EU store. Confirm the authentication extension you need, its stability level, and how credentials are rotated before you open the receiver to production services.
Transfer exposure from the platform team
Self-hosting keeps data in your storage, but remote support access from a third country still counts as a transfer under EDPB guidance. Ask any partner or vendor where administrators sit, whether they can view trace data on screen, and which logs and backups leave the EEA. Write these answers into the processor terms before go-live.
How the rollout moves from data mapping to audit-ready logs
The sequence starts with knowing which AI systems and personal data are in scope, then sets retention and access rules before any storage is built. Each phase closes with a written output that the next phase depends on, so the final evidence pack can show what was logged, where it lives, who can see it and how it is removed.
Map AI systems and personal data in prompts
Your AI or compliance lead lists each LLM application that may fall under the EU AI Act, then records what its prompts, retrieved documents and outputs typically contain, including personal data about staff, customers or patients. DeployOpen can run this mapping workshop with your technical and privacy owners. The step closes with a system inventory that names each application, its model provider, its users and its data categories. You know it is done when every application in scope has an owner and a data category recorded.
Set retention rules and lawful basis with counsel
Your legal and data protection teams, with external counsel where needed, decide how long each log category is kept, what minimum period applies under Article 19(1) of the EU AI Act, and which lawful basis and storage limitation rule under the GDPR governs personal data in traces. The output is a signed retention schedule that states the period per log type, the deletion trigger and who approves exceptions. Confirm with counsel whether the six-month minimum in the AI Act is the floor for your systems and whether other law requires longer keeping.
Design EU-only storage and administrator access
Your platform and security teams choose an EU region for the ClickHouse, PostgreSQL, Redis or Valkey and S3-compatible storage that hold traces, and document every location where a copy could exist, including backups and support access. They also map who can administer the cluster and from which countries remote sessions occur, since remote viewing from a third country counts as a transfer under EDPB Guidelines 05/2021. The output is a data flow diagram and an access matrix signed by the data protection officer. You know it is done when no component or administrator path leaves the approved region without an assessed legal basis.
Deploy Langfuse in the chosen EU region
DeployOpen's engineers deploy self-hosted Langfuse on Kubernetes, using the Helm or Terraform pattern documented for production, inside your EU cloud account or data center. Langfuse Web, Langfuse Worker, PostgreSQL, ClickHouse, Redis or Valkey and object storage are sized against the documented minimums and configured for SSO. Docker Compose on a single VM is suitable only for testing, since it does not provide high availability. The step closes with a running environment, a documented configuration and a record of the software versions deployed.
Instrument applications and mask personal data
Engineers instrument each in-scope application with the Langfuse SDK or OpenTelemetry, routing traces through an OpenTelemetry Collector in your environment where useful for filtering. Personal data is masked client-side before it leaves the application, because server-side masking and data retention policies are Enterprise license features in self-hosted Langfuse. The output is a test trace set showing which fields were captured, which were redacted and where the Collector authenticates. The step is done when sample traces from each application pass a masking review by the data protection team.
Validate retention, deletion and access controls
The QA team tests each rule from the retention schedule: traces age out on schedule, erasure requests remove the right records from ClickHouse and object storage, and users without a project role cannot open traces containing personal data. Where your scope needs project-level RBAC, audit logs or data retention policies, confirm whether they require a Langfuse enterprise license key before go-live. The output is a signed test report with each control, the test performed and the result. You know it is done when every control in the retention schedule has a passing test record.
Run a restore test on backups
The operations team restores the PostgreSQL, ClickHouse and object storage backups into an isolated environment in the same EU region, then confirms that traces, scores and prompt versions open correctly and that deleted records do not reappear from older backups. The restore also checks that the backup copies follow the same retention and location rules as production. The output is a restore log with timings and any defects found, plus a backup policy that matches the retention schedule. The step closes when a restored environment has been verified against the production record set.
Assemble the audit-ready evidence pack
DeployOpen compiles the evidence pack: the system inventory, retention schedule, data flow and access matrix, deployment and configuration records, masking and test reports, restore log and change history for the Langfuse version in use. The pack prepares evidence for your independent auditor or the relevant supervisory authority, but it does not replace their assessment. Your compliance lead signs it off and sets a review cycle for upgrades, since Langfuse major version changes follow separate migration guides. The step is done when the pack can answer, for any log record, what it contains, where it is stored, who accessed it and when it will be deleted.
Deployment choices that keep logs in the EU
A self-hosted Langfuse deployment in an EU region of a cloud account the organization owns places prompts, outputs and metadata in storage that the organization administers. The stack includes two application containers, Langfuse Web (UI and APIs) and Langfuse Worker (asynchronous event processing), plus PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage. All of these should be pinned to EU regions, including backups and any logs the platform emits.
- Storage location: Confirm that ClickHouse volumes, PostgreSQL, object storage buckets and snapshots all sit in EU regions, and that replication does not cross the EEA border.
- Operator access: Restrict cloud console and Kubernetes access to named EU-based administrators through single sign-on and role-based policies.
- Third-country support access: Ask whether the cloud provider's own support staff can view data in the clear, and document the contractual and technical limits.
- Production path: Langfuse documents Docker Compose on a single VM for testing only, without high availability. Production should use Kubernetes with Helm or Terraform-based deployments.
Check with your cloud provider whether the account, its support model and its legal jurisdiction meet your transfer assessment.
Running Langfuse in a data center the organization or a contracted EU operator controls gives full physical control over where trace storage sits. Hardware, network paths and backups stay under known custody, which simplifies proving that no copy leaves the EEA. The trade-off is that the organization carries capacity planning, hardware lifecycle and out-of-hours recovery that a cloud provider would otherwise handle.
- Storage location: Document the physical site, the backup site and any disaster recovery location, all within the EEA.
- Operator access: Limit root and hypervisor access to EU staff, and log every privileged session.
- Third-country support access: Hardware vendors, remote management tools and managed service providers may provide access from outside the EU. Require written confirmation of remote access paths and block or approve them case by case.
- Sizing: Langfuse's scaling guide lists minimum resources of 2 CPU and 4 GiB for web, worker and PostgreSQL, 1 CPU and 1.5 GiB for Redis or Valkey, and 2 CPU and 8 GiB for ClickHouse, with at least 16 GiB of ClickHouse memory for larger deployments.
Ask your operator to describe every remote management path and who can use it.
In an air-gapped network, traces never leave a segment with no internet route, so third-country access depends on the organization's own controls rather than on a provider's support model. Every container image, Helm chart and dependency must be transferred across the boundary through an approved process, and that process becomes part of the evidence trail. Upgrades then follow an import cycle rather than a pull.
- Storage location: The entire stack, including ClickHouse, PostgreSQL, Redis or Valkey and blob storage, sits inside the isolated network in the EU.
- Operator access: Define named administrators, separate break-glass accounts and approval steps for any maintenance window.
- Third-country support access: Vendor support sessions should occur only through documented, time-limited transfer media or supervised remote sessions with logged approvals.
- Upgrade discipline: Langfuse's v3 to v4 guide requires ClickHouse 25.12 or later, PostgreSQL 15 or later and Redis 7.0 or later, so plan the import of these dependencies as well.
Confirm with your security team how media transfers and vendor support sessions will be recorded before the environment is accepted.
Reconciling six-month AI Act retention with GDPR storage limitation
The AI Act and GDPR pull retention in opposite directions, so the design has to satisfy both at once. Article 19(1) of the EU AI Act requires providers of high-risk systems to keep automatically generated logs for at least six months unless other law provides otherwise, which sets a floor. GDPR storage limitation sets a ceiling: personal data may be kept only as long as necessary for the purpose it was collected for. Prompts, retrieved documents and outputs often contain personal data, so a trace store that keeps everything for a fixed long period can fail the ceiling even while it meets the floor. The practical task is to separate what must be kept as system records from the personal content inside them, and to set a different lifecycle for each.
Per-project retention is the main control for doing that. In a self-hosted Langfuse deployment, each project can be assigned its own retention rule, so a high-risk system's operational logs can be held for the period counsel confirms while a low-risk prototype with customer data is purged sooner. Data retention policies are part of the Langfuse Enterprise license key feature set, not the MIT core, so the license decision belongs in the design rather than in a later procurement step. Masking should happen before storage. Client-side masking in the SDK or OpenTelemetry Collector removes identifiers from prompts and outputs before they reach ClickHouse or blob storage, which keeps the stored record useful for audit without holding raw personal data. Server-side masking is also an Enterprise feature.
Erasure requests need their own procedure. A data subject's request may reach trace data that is still inside the AI Act retention window, and the two obligations must be resolved case by case with legal counsel. Confirm with counsel the retention periods for each system class, whether erasure can override the minimum period, and how deletion propagates to ClickHouse, object storage and backups. Then test a deletion end to end in a non-production environment before relying on it. Document each decision so the record shows why a trace was kept or removed.
What auditors and regulators will ask to see
How do I prove that LLM logs are recorded automatically?
The logs are produced by the tracing pipeline itself, not by staff copying data by hand. Instrumented applications send traces through the OpenTelemetry SDK or the OpenTelemetry Collector, and the Langfuse Web and Langfuse Worker containers write them to PostgreSQL, ClickHouse and S3-compatible blob storage. Auditors typically ask for the instrumentation configuration, a sample of recorded events with timestamps, and evidence that the pipeline runs on every production request path. Article 12(1) of the EU AI Act asks that high-risk systems technically allow automatic recording of events over the system's lifetime, so the evidence should show that capability is always on. DeployOpen can document the instrumentation, the event schema and the test runs that confirm events are captured, but an independent assessor decides whether that meets the requirement for your system.
How do I show that logs are kept for the required retention period?
Retention evidence comes from the retention configuration and from data that shows records survive the period. Article 19(1) of the EU AI Act requires providers to keep automatically generated logs for at least six months unless other law provides otherwise, so the stored period must meet or exceed that floor. In a self-hosted Langfuse deployment, the data retention policy is an Enterprise license feature, so confirm early whether you need it. Evidence usually includes:
- The configured retention setting and the change history for it
- Storage lifecycle rules on the S3-compatible bucket and ClickHouse table settings
- Backup job logs that show retained records are restorable within the period
The retention period itself is a legal decision for your compliance team, not a setting DeployOpen chooses for you.
What proof of EU storage location and no third-country access will be needed?
Auditors look for a record of where each data store runs, which legal entity operates it and which parties can reach it. Self-hosting inside your own EU cloud accounts or data centers gives you control of the location, but the evidence must show it. Keep an inventory of the PostgreSQL, ClickHouse, Redis or Valkey and blob storage hosts with their regions, plus network policies that block egress to non-EU endpoints. Under GDPR Article 44, remote access from a third country counts as a transfer, so support access and log shipping also belong in the record. The EDPB Guidelines 05/2021 treat storage in a cloud outside the EEA as a transfer. Confirm with your counsel how the Data Privacy Framework and the CLOUD Act apply to any provider in your chain.
Which access logs and RBAC records do reviewers expect for trace data?
Reviewers expect a list of who can view, export or delete traces, and a log of when those rights were used. In self-hosted Langfuse, project-level RBAC roles and audit logs are Enterprise license features, so confirm whether your scope includes them. Without the license, you can still record access through the identity provider, reverse proxy and database audit trails. Evidence typically includes the role matrix, SSO group mappings from the authentication setup, periodic access reviews and the audit trail of administrative changes. Access to traces containing personal data should be limited to named roles with a documented need.
What masking configuration evidence is required for prompts and outputs?
Evidence should show which fields are masked, where the masking runs and how it was tested. Masking can be applied client-side in the SDK or in the OpenTelemetry Collector before data leaves the application, or server-side, where Langfuse lists server-side data masking as an Enterprise license feature. Keep the masking rules under version control, a test set of sample prompts with personal data, and the results showing that masked values did not reach storage. Regulators will look at this under the GDPR data minimization principle as well as at the logging duty. Collector authenticator settings and exporter credentials belong in the same evidence set.
What restore and backup test results should I keep for the trace store?
Keep dated restore tests that show a full trace set can be recovered from backup and read back by the application. The stack has four stateful components, so each needs its own backup and restore path: PostgreSQL, ClickHouse, Redis or Valkey, and the S3-compatible blob storage that holds events. Restore tests should record the scope, the time taken, the person who ran it and the checks that passed. Redis or Valkey usually holds queue state rather than the long-term record, so confirm which data must survive a loss. Your backup retention must align with the logging retention you chose, or the records will not be there when an auditor asks.
How do upgrade and change records prove the logging system stayed under control?
Change records should show each version deployed, what was tested and who approved the change. Langfuse says updates within a major version are non-disruptive and run database migrations automatically at startup, while major upgrades follow dedicated migration guides. The v3 to v4 guide requires ClickHouse 25.12 or later, PostgreSQL 15 or later and Redis 7.0 or later, and it moves to an observations-first data model, so the record must show the pre-upgrade test and the backfill plan. Keep the release notes, the change ticket, the test results on a copy of production data and the rollback plan. Track Collector versions too, since the OpenTelemetry Collector publishes new releases regularly.
Who prepares this evidence and who decides whether it is sufficient?
DeployOpen prepares the systems, controls and evidence for a compliance assessment, and independent auditors or the relevant authorities decide whether the evidence meets the requirement. DeployOpen does not issue audit reports, attestations or certifications. In a fixed-scope engagement, the written scope should list which evidence items are produced, in what format and by which component, and which items remain your team's responsibility. Ask the partner to show a sample evidence pack from a test environment before the engagement starts. Ongoing evidence collection can be covered by a retainer if your environment changes often.
Questions to ask an implementation partner before you sign
Start with the storage map, because that is where data sovereignty is won or lost. Ask the partner to list every location where ClickHouse data, PostgreSQL metadata and S3-compatible blob objects will exist, including each replica, backup, snapshot, log export and disaster recovery target, and the country and legal entity that operates each one. Ask who holds the encryption keys and whether any managed component, such as a backup service or a monitoring agent, sends telemetry or support data to a provider outside the EU. A partner who cannot produce that map in writing before the scope is agreed is not ready to design a compliant deployment.
Next, ask how support and administrative access is restricted and recorded. Remote access from a third country, even one that only displays data on a screen, can count as a transfer under the EDPB's guidance, so ask who on the partner side can reach the cluster, through which jump hosts, from which countries, and under what approval. Ask which Langfuse Enterprise license key features the design depends on, such as audit logs, data retention policies, server-side data masking and SCIM, and who pays for that license. Get the answer as a line item in the written scope, not as an assumption that open source covers it.
Ask how masking happens before storage. The answer should name the SDK or OpenTelemetry Collector processor that redacts personal data from prompts and outputs, and it should state how that control was tested with real-shaped samples. Ask how retention and erasure are verified, including how a deletion request reaches ClickHouse, blob storage and backups within the retention window. For upgrades, ask whether the plan follows the Langfuse v3 to v4 migration guide, whether it confirms ClickHouse 25.12 or later, and how the partner sizes the roughly 3x ClickHouse disk headroom advised for backfilling history. Finally, confirm that the scope, deliverables and timelines are fixed and written before work begins.
Cost, effort and what the work needs from you
What drives the cost of self-hosted LLM logging for the EU AI Act?
The biggest cost drivers are the infrastructure for the stack and the instrumentation work, and both depend on your scope. Self-hosted Langfuse runs two application containers, Langfuse Web and Langfuse Worker, plus PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage, so you pay for compute, storage and backups in your own cloud account or data center. Costs rise with trace volume, the number of agents and model calls per request, and how long you retain records. Langfuse's scaling guide lists minimum resources of 2 CPU and 8 GiB for ClickHouse, with at least 16 GiB of memory for larger deployments, which is a useful starting point for sizing. Ask for the infrastructure bill of materials and the sizing assumptions in any quote.
Which costs are one-time and which recur over time?
Setup, instrumentation of your applications, data-flow mapping, masking configuration and the initial compliance evidence are one-time costs. Infrastructure, storage growth, backups, monitoring, version upgrades and any support retainer recur. Storage is the cost most likely to grow, because logs must be kept for at least six months under Article 19(1) of the EU AI Act for high-risk systems, and longer where other law requires it. Major Langfuse upgrades follow dedicated migration guides and may need about 3x ClickHouse disk headroom when backfilling historic data, so plan that capacity from the start. Ask the provider to split the quote into one-time and recurring lines.
Can our team run LLM logging on its own without a partner?
Yes, if your team already runs Kubernetes and operates data platforms such as PostgreSQL and ClickHouse, and can own backups, upgrades and access control. Self-hosted Langfuse is documented with Docker Compose for testing and Kubernetes with Helm or Terraform for production, so the deployment itself follows known patterns. The harder parts are instrumenting every application, deciding what personal data must be masked before storage, and producing evidence that auditors accept. Be realistic about the skills gap: if no one on the team has run ClickHouse in production, a partner is usually the faster route. Note that some controls such as server-side masking, retention policies and audit logs require a Langfuse Enterprise license key.
How long does a self-hosted LLM logging implementation take?
Duration depends on scope: how many applications you instrument, how many environments you run, how much historic data you migrate, and how many approvals your legal and security teams require. DeployOpen does not publish fixed durations. The written plan for each engagement states the phases, deliverables and timeline before work starts, and the timeline is built from the inventory and the decisions your organization has to make. Ask any provider to name the dependencies on your side, such as cloud accounts, network approvals and data owner sign-off, because these often set the critical path more than the software does.
What does DeployOpen need from our organization to scope the work?
DeployOpen needs a system inventory, named data owners and input from legal and privacy teams before a fixed scope can be written. The inventory should list every AI system and application that produces prompts, outputs or tool calls, the models they call, and where those records would be stored. Data owners decide which fields are personal data and how long records must be kept. Legal input is needed to confirm the retention period under the EU AI Act and GDPR storage limitation, and to confirm whether any third-country access exposure exists. DeployOpen prepares systems, controls and evidence, but the legal conclusions remain with your organization and its counsel.
Who is responsible for legal conclusions about AI Act logging?
Your organization remains responsible for deciding whether a system is high-risk, how long logs are kept and whether a transfer is lawful. DeployOpen prepares the technical controls, storage location, retention configuration and evidence, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies perform those assessments. Ask your counsel to confirm the applicable duties under Article 12(1) and Article 19(1) of the EU AI Act and under GDPR Article 44 before the architecture is fixed, because storage location and access rules follow from those answers.
What should we ask for in a written quote for this work?
Ask for a written scope that lists the applications to instrument, the environments and regions where data will live, and the storage components with their sizing assumptions. Request the retention period, the masking approach, the access model and the list of Langfuse features that need an enterprise license key. The quote should separate one-time implementation from recurring infrastructure, support and upgrade work, and state what evidence the engagement delivers. Confirm who holds the backup keys and administrative access, and ask how exit and migration are handled, including how data can be exported if you change providers.
How DeployOpen scopes and supports EU AI Act logging
DeployOpen plans, implements, hardens, backs up, documents and supports self-hosted Langfuse inside the client's own EU cloud accounts or data centers. The work covers the Langfuse Web and Worker containers, PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage, plus the instrumentation path from the AI application through the SDK or OpenTelemetry Collector into Langfuse. Storage locations, encryption keys, backup targets and administrator access are set during planning so that no trace data is written to a US SaaS tracing service. DeployOpen is a Chainscore Labs company, and the delivery team works in the client's environment rather than hosting logs on its own systems.
DeployOpen also runs security testing on the AI systems and on the logging path itself. That includes checking who can read traces containing personal data, whether the collector and Langfuse endpoints enforce authentication, and whether retention and backup settings match the six-month minimum in Article 19(1) of the EU AI Act and the storage limits in the GDPR. Findings are delivered in writing with remediation steps, so the client's security team can verify fixes. Confirm with the partner which tests are included in the fixed scope and which are offered as separate work.
DeployOpen prepares systems, configuration records, access reviews, backup and restore evidence and retention settings for compliance assessments. It does not issue audit reports, attestations or certifications; independent auditors and certification bodies make those determinations. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ongoing support, upgrades and continuous testing are available as a retainer, which matters because Langfuse major upgrades follow dedicated migration guides and must be planned. Ask for the written deliverables list before signing.

