Langfuse headless initialization and instance management API

Headless initialization creates the first organization, project, API keys and user when a self-hosted Langfuse starts, and the Enterprise instance management API manages organizations and keys after that. This page covers both and what your team must decide first.

On this page

Langfuse headless initialization: what it provisions on first start

Headless initialization lets a platform team create the first organization, project, API keys and user in a self-hosted Langfuse at startup, using LANGFUSE_INIT_* environment variables. Each item is created only if it does not already exist, so one configuration can be applied to a new environment and to an existing one without anyone completing first-run setup in the browser. Teams need this when they run Langfuse in several environments, such as development, staging and production, and want each one to start from the same known state, defined in version-controlled configuration rather than in manual steps.

The provisioning order matters. A project or user cannot be initialized without an organization, so the organization must be defined in the same configuration or already exist in the database. Before you write the variables, map every object you expect to exist after first start and confirm the accepted combinations in the current headless initialization documentation. Settle the organization and project identifiers early, because scripts, dashboards and later access-management steps will refer to them. Confirm also how the instance behaves if a variable value changes after the first start, since the initialization behavior is defined for creation.

The Instance Management API is a separate capability and should be scoped that way in your plan. It is available only in the Enterprise Edition, is not available on Langfuse Cloud, and creates, updates and deletes organizations and organization API keys. It authenticates with an ADMIN_API_KEY bearer token. Headless initialization is not among the Enterprise features listed in the license key documentation, but you should confirm that with Langfuse for your version and edition. If you later want to manage organizations from automation, you will need the license and a decision about who may hold the admin key.

Treat the ADMIN_API_KEY, the initial API keys and the initial user credentials as secrets. Store them in your secrets manager, inject them at deploy time, and keep them out of Helm values files, Compose files and CI logs. Test the configuration by running the same deployment twice and checking that the second start does not create duplicate objects and leaves the existing organization, project and keys unchanged. Record which secret belongs to which environment so that rotation in one environment does not break another.

The main risk is an identifier or environment value that is changed by mistake. For example, if a staging deployment reads a production organization identifier, it may attach staging activity to production data, which illustrates why each environment needs its own identifiers and secrets. Ask Langfuse or check the documentation for the current list of initialization variables, the Langfuse version in which each one became available, and whether the Helm chart exposes them as values. Put those answers into your runbook before the first production deployment.

Which provisioning option fits your rollout

This table compares four ways to provision a self-hosted Langfuse as code, by what each creates or changes, when it runs, its license position and the setups it suits. Read the middle column first to see what each option changes, then match the last column to your number of instances, environments and tenants. The main takeaway is that the init and default variables handle first-run setup, while the Instance Management API manages organizations on demand and requires an Enterprise license key.

OptionWhat it creates or changesWhen it runs and licenseFit for your rollout
LANGFUSE_INIT_* variablesCreates the first organization, project, API keys and user on startup if they do not already exist.Runs at startup. Confirm the license position in the Langfuse headless initialization docs before planning.Single instance, or one initial setup per environment. A project or user needs an organization to be initialized.
LANGFUSE_DEFAULT_ORG_ID and LANGFUSE_DEFAULT_PROJECT_IDAdds each new user to the default organization and project.Applies as users join. Confirm the license position in the Langfuse docs for default organization and project variables.Single instance with one shared user base. Each instance usually maps to one default tenant boundary.
LANGFUSE_DEFAULT_ORG_ROLE and LANGFUSE_DEFAULT_PROJECT_ROLESet the role new users receive, with VIEWER as the default.Applies as users join. Project-level RBAC roles need an Enterprise license key, per the license key docs.Keep VIEWER unless your role design says otherwise, especially in multi-tenant setups where new users must not gain write access.
Instance Management APICreates, updates and deletes organizations and organization API keys using an ADMIN_API_KEY bearer token.Runs on demand from your automation. Requires an Enterprise license key and is not available on Langfuse Cloud.Multi-tenant and multi-environment setups where pipelines create or retire organizations on a schedule or request.

How the startup sequence creates organizations, projects and keys

The startup sequence is what turns an empty Langfuse database into a usable instance without a manual setup step. Langfuse reads the LANGFUSE_INIT_* variables when the web container starts and creates the first organization, project, API keys and user if those objects are missing. The order matters because each object depends on the one before it. A project or user cannot be initialized without an organization, so the organization must be defined in the same configuration. Keep the variable set in one file that a reviewer can read from top to bottom, and confirm that every dependent object has its parent defined before the first deployment runs.

Restart behavior is where most provisioning mistakes happen. The variables only create objects that do not already exist, so a restart, a rolling update or a redeployment does not recreate the organization, project, user or keys. Existing objects stay as they are. Teams often assume that changing a value in the manifest will rename a project or replace its keys, and by default it will not. Before you change any initialization value after go-live, confirm on the headless initialization page how each variable behaves when its object already exists, and whether a new value is applied or ignored. Test that behavior on a staging instance first.

The dependency chain also shapes access. The organization sits at the top, projects belong to it, and the initial user is created within that structure. LANGFUSE_DEFAULT_ORG_ID and LANGFUSE_DEFAULT_PROJECT_ID place each new sign-in into a named organization and project, with roles set by LANGFUSE_DEFAULT_ORG_ROLE and LANGFUSE_DEFAULT_PROJECT_ROLE. The documented default role is VIEWER. Choose these roles with your access model in mind, because a broad default gives every new user read access to traces that may contain personal data. Confirm the exact variable names and accepted role values on the headless initialization page before you write them into your configuration.

Generated API keys need a controlled handoff. The keys created at startup authenticate your deployment pipelines and applications to a specific project, so they should go from the instance straight into your secret store and stay out of shared documents, chat threads and build logs. Map each key to the one pipeline that uses it, name it so the consumer is obvious, and grant read access in the secret store only to that pipeline. Record which key was issued at which deployment so that rotation later is a planned task. Before the first production start, ask your team or your provider to confirm where key values can appear in container output, because default log collection may capture startup messages.

Setting up headless initialization in order

This sequence takes an empty self-hosted Langfuse to a state where the first organization, project, API keys and user are created from configuration instead of manual setup. Each step closes with a check you can repeat, so a misconfigured value is caught before teams point applications at the instance.

  1. Confirm the deployment method

    Decide where the stack runs before you write any initialization values. Langfuse documents Docker Compose on a single VM for testing, which has no high availability, and Kubernetes with Helm or Terraform-based deployments on AWS, Azure and GCP for production. The platform team confirms the target environment, the host or namespace, and who owns changes to the deployment manifest. This step is done when the team has a written decision for each environment and a named owner for the manifest.

  2. Define identifiers in a configuration repository

    Record the organization, project and first user identifiers in a version-controlled repository before any deployment. Use stable, descriptive IDs, because initialization creates each object only when it does not already exist, so a later rename means managing a new object. Remember that a project or user cannot be initialized without an organization, so the organization entry comes first. Note who may change each value and how changes are reviewed. This step is done when the file is merged and the identifiers match your naming standard.

  3. Store generated secrets in your vault

    Place the initial user credentials, the project public and secret key values, and the salt and encryption secrets in your vault. The deployment then references these secrets without committing their values to the repository. The security or platform engineer confirms that the target environment can resolve each reference and that no plaintext values appear in the repository history. This step is done when a dry-run render of the manifest resolves every secret reference and nothing sensitive is visible in version control.

  4. Set init and default variables in the manifest

    Add the LANGFUSE_INIT_* variables for the organization, project, keys and user to the deployment manifest. Then set LANGFUSE_DEFAULT_ORG_ID, LANGFUSE_DEFAULT_PROJECT_ID, LANGFUSE_DEFAULT_ORG_ROLE and LANGFUSE_DEFAULT_PROJECT_ROLE so that new users land in the expected place. The default role is VIEWER when unset, so choose each role explicitly and record the reason. Confirm the exact variable names against the current headless initialization documentation for your version. This step is done when a reviewed, rendered manifest shows every value and each secret is a reference.

  5. Start the stack and watch startup

    Start the stack with the reviewed manifest. A self-hosted deployment runs the Langfuse Web and Worker containers alongside PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage, so confirm that each dependency is reachable before the application containers start. Read the startup logs for initialization messages and for any database migration output. This step is done when all containers report healthy and the logs show no initialization errors.

  6. Verify the organization, project and keys

    Sign in through the user interface as the initialized user and confirm that the organization and project exist with the identifiers recorded in the repository. Open the project settings and confirm that the API keys are listed and match the keys stored in your vault. Check that the default roles apply to a test account you create for this purpose. This step is done when every identifier, key and role matches the repository and the vault.

  7. Send a test trace with the generated keys

    Use the project keys from your vault to send a test trace, either through an SDK or through the OpenTelemetry endpoint Langfuse exposes under /api/public/otel. Label the trace clearly so it is easy to identify and remove. Confirm that the trace appears under the expected project and organization. This step is done when the test trace is visible in the correct project, which proves that the generated keys work end to end.

  8. Roll back a misconfigured init value

    If a check fails, correct the value in the repository, redeploy and run the verification steps again. Because initialization creates only missing objects, a corrected variable does not rename an object that was already created with the wrong value. Find out whether the incorrect object exists, then decide whether to rebuild in a fresh test environment or follow the documented procedure for removing it. Confirm the procedure with Langfuse documentation before you touch production data. This step is done when all checks pass and the rollback is recorded in your change log.

When the instance management API replaces manual key handling

The Langfuse Instance Management API is the point where organization and key administration moves from people clicking through an interface to code that runs on a schedule or in response to an event. It is an Enterprise Edition interface that creates, updates and deletes organizations and organization API keys. Requests authenticate with a bearer token, which is the ADMIN_API_KEY value set on your self-hosted instance. Because the API requires an Enterprise license key and is not available on Langfuse Cloud, it applies only to a deployment you run. Treat ADMIN_API_KEY as a highly privileged credential, since anyone holding it can create organizations and issue keys. Store it in your secrets manager, restrict who can read it, and keep it out of CI logs and shell history.

Teams usually need the API for two reasons. The first is an automated organization lifecycle across many business units. When each unit needs its own organization, creating it at onboarding and deleting it at retirement is easier to control from an HR or service catalog workflow than from manual steps. The second is scripted key rotation. A pipeline can issue new organization API keys, write them to the secret stores of the consuming services, and revoke the old keys on a defined schedule. The LANGFUSE_INIT variables cannot cover either case, because they create resources only at first startup when those resources do not yet exist. For ongoing change, you need the API or a manual process.

The API is unnecessary when the deployment has a single organization with a small number of projects, and when key changes are rare enough that a named administrator can perform them with a short, documented procedure. It is also unnecessary if you do not hold an Enterprise license key, because the API will not be available to you. Automation adds a privileged credential, a service to monitor and a code base that needs review and testing. Before committing to it, ask whether organization changes and key rotations are recurring and high in volume. If they are not, a documented manual runbook may carry less risk and less maintenance.

The API does not cover every administrative action. The supported scope described here is creating, updating and deleting organizations and organization API keys. Any other admin task, such as changes outside those two objects, may require a different route or a manual step, and you should not assume an endpoint exists for it. Before design begins, list every admin action your automation must perform and check each one against the Instance Management API documentation for the Langfuse version you run. Record the endpoints you confirmed and the steps you could not automate in the design record. Any unsupported step will otherwise fall back to a person holding admin access, which weakens the control you were trying to build.

Protecting the admin key and bootstrap secrets

The admin key and the initialization values give the most control over a headless Langfuse deployment, so their handling belongs in the design. The controls below cover where these secrets live, who can reach them, how they change and how their use is recorded.

Store secrets in a secrets manager

Keep ADMIN_API_KEY, the LANGFUSE_INIT_* key pair, the initial user password and any other bootstrap values in a secrets manager you already operate. Helm values and Compose files in source control should hold only references to those secrets, never the values themselves. Have the workload read them at deploy time through your platform's secret injection. For each value, record its owner, the deployment that consumes it and the date of its last rotation. Check that the secrets manager's audit log shows reads by the deployment identity only.

Restrict pipeline access to secrets

Limit who can read the deployment pipeline's secret variables and who can trigger a deployment that uses them. Runners that apply the Langfuse manifests should be separate from developer workstations, and jobs that print environment variables should be disabled in shared logs. Scope the pipeline's identity to the namespace or project that hosts Langfuse only. Ask your platform team to confirm that masked and protected CI variables are enforced on the branches that deploy to production.

Remove bootstrap values after first start

The LANGFUSE_INIT values matter on the first start, when Langfuse creates the organization, project, API keys and user. After you confirm the instance is running, remove these variables from manifests, Helm values and pipeline definitions, and keep only what the running pods need. Search container logs, deployment history and pipeline output for echoed values, because a rendered manifest or a debug print can keep a secret after the variable itself is gone. Repeat the search after every change to the initialization block.

Rotate the admin key and initial keys

Set a rotation procedure before go-live. It should name who generates the new ADMIN_API_KEY, where the new value is written in the secrets manager, how running consumers pick it up and when the old value is revoked. Initialization variables create resources only when they do not already exist, so confirm in your Langfuse version how a changed value behaves for an existing organization and key. Test the rotation in a non-production instance first, and keep the outcome in your change records as evidence.

Restrict the admin path to the network

The Instance Management API requires an Enterprise license key, so this control applies only if you use it. The admin key grants organization-level control through that API, so the path that accepts it should be narrower than the user interface. Allow admin calls only from a bastion, an automation runner or an internal address range, and block them at the ingress or load balancer for other clients. Confirm which URL paths your ingress exposes and whether the admin API shares a listener with the user interface.

Audit every use of the admin key

Each use of the admin key should trace back to a named operator or automation job. Record calls at the gateway or ingress with the caller identity, time, path and response code, and send those logs to the same store as your other security events. Do not assume Langfuse's own audit logs record these calls until you have tested it in your version. Alert on admin key use outside an approved change window, and review the log after each rotation.

Choosing default org and project roles for new users

The default roles decide what every new account can do the moment it first signs in. In a self-hosted Langfuse, LANGFUSE_DEFAULT_ORG_ID and LANGFUSE_DEFAULT_PROJECT_ID add each new user to a chosen organization and project, while LANGFUSE_DEFAULT_ORG_ROLE and LANGFUSE_DEFAULT_PROJECT_ROLE set the role they receive in each. Both role variables default to VIEWER, so if you set the IDs and leave the roles alone, new users join with read-only access. Before the first user signs in, confirm that the IDs match the organization and project created by your LANGFUSE_INIT values. A mismatch would place new users in a place you did not intend, and it is much easier to catch during provisioning than afterward.

Set each default to the least privileged role that still lets people do their work, and grant anything higher deliberately. Viewer suits stakeholders who only need to read traces, dashboards and scores. Engineers who create prompts, manage datasets or change project settings should be promoted one at a time, by an administrator who records why. Avoid setting an elevated role as the default to speed up onboarding, because every later sign-in then inherits that access without review. Write down which roles new users receive, who may approve a promotion, and how access is reduced when someone changes teams.

Project-level RBAC roles are listed in Langfuse's license key documentation as an Enterprise feature. Treat the project role default as meaningful only after you confirm which roles your edition exposes and whether your license key enables them. Do not assume that the open source edition supports the same role names or the same project-level controls. Ask Langfuse to confirm the available roles for your version, then test them in a non-production instance by creating a test user, signing in and checking what the interface and API allow at each level. If your edition lacks these roles, plan access around organization membership and project boundaries instead, and document that limit for your auditors.

Record the chosen defaults in the same deployment repository as your other provisioning values, and review them whenever you change SSO settings or domain rules. Changing an environment variable generally affects accounts created after the change, so existing users need a separate access review. Confirm with Langfuse how default role changes apply to existing accounts in your version before you rely on that behavior. A short checklist works well: the IDs match the initialized objects, the roles are the least privileged that work, the edition supports the chosen roles, and a test sign-in in staging produces the expected access.

Limits to confirm before relying on headless provisioning

These five items determine whether provisioning code behaves the same across upgrades and environments. Each one depends on your Langfuse version and configuration, so confirm it on a staging instance that matches production. Record the answers in your runbook so the automation reflects tested behavior.

Init variables on existing objects

LANGFUSE_INIT variables create the organization, project, API keys and user only when they do not already exist. Confirm what happens when a referenced organization, project or key is already present, or was renamed in the UI after the first start. A script that matches on the old name may not find the object and may create a duplicate. Test this by renaming objects on a staging instance and restarting it before you rely on the variables in production.

Retroactive default role changes

LANGFUSE_DEFAULT_ORG_ROLE and LANGFUSE_DEFAULT_PROJECT_ROLE set the role that new users receive when they join the default organization and project. Confirm whether changing a default role also updates users who already joined, or applies only to users created afterward. Existing memberships may keep the role they received under the old default, so review them in a test instance after each change. Record the result so your team knows which behavior to expect.

Pin the Langfuse version

The latest GitHub release listed in the supplied facts is v4.63.0, published October 16, 2026. Your pipeline should pin an exact version rather than follow the latest release, so the version you test is the version you deploy. Confirm which version your environment runs and whether your provisioning scripts were tested against it. Read the release notes for each planned change before you update the pin.

SDK version requirements for v4

Python SDK v5 and JS/TS SDK v6 need Langfuse v4.59.0 or later. Confirm that your instance is at or above that version before you upgrade application SDKs, and check every service that sends traces, including CI jobs and internal tools. Include a trace round trip in your verification so a version mismatch shows up before production traffic is affected. If you are crossing from v3 to v4, also confirm the migration status of your instance.

Enterprise license key for admin API

The Instance Management API is available only in Enterprise Edition, is not available on Langfuse Cloud, and authenticates with an ADMIN_API_KEY bearer token. Confirm that an Enterprise license key is in place for your self-hosted instance before you design automation around this API. Without a valid key, the endpoints you plan to script may not be available. Also decide who holds the admin key, where it is stored and how it is rotated, because it can create, update and delete organizations.

How provisioning fits alongside SSO and access rules

Headless initialization creates the first organization, project, API keys and user when the instance starts, but it does not govern how people sign in afterward. Day-to-day access belongs to single sign-on. Self-hosted Langfuse connects to identity providers through Auth.js providers such as Entra ID, Okta, Keycloak or generic OIDC. Treat the two as separate layers in your design document: the LANGFUSE_INIT variables establish a known starting state, and the SSO configuration decides who can sign in to that state later. Mixing them up is the most common source of confusion when an instance is redeployed.

Before you write any configuration, list every identity that the initialization variables will create and label each one as bootstrap-only or SSO-managed. The bootstrap user is usually a named administrator kept for setup and for recovery if the identity provider is unavailable. Record who holds its credentials, where those credentials are stored, and how they are rotated. Then decide what role new SSO users receive. LANGFUSE_DEFAULT_ORG_ROLE and LANGFUSE_DEFAULT_PROJECT_ROLE both default to VIEWER, so confirm that this is the level you want for newly provisioned staff and document any exception.

Once SSO works, you can disable password sign-in or enforce SSO for specific email domains. Sequence the change deliberately. First, complete an SSO sign-in with a non-bootstrap administrator in a staging instance. Second, confirm that the bootstrap account still works under the setting you plan to apply. Third, enable domain enforcement and test with an account from each domain you expect, including contractors or partner addresses that may not follow your primary domain. A domain rule that blocks a valid user is easy to create and can be hard to notice until a team needs access during an incident.

If you plan to automate user lifecycle changes such as joiners, movers and leavers, confirm coverage before you design the pipeline. Langfuse lists the organization management API with SCIM, and the instance management API, as features that require an Enterprise license key. The instance management API is Enterprise only and is not available on Langfuse Cloud. Ask Langfuse in writing which of these endpoints and SCIM behaviors your license tier includes, including deprovisioning and role mapping. If coverage is partial, plan manual offboarding steps or a scheduled reconciliation job, and assign an owner for each step.

Questions buyers ask about Langfuse headless setup

Is headless initialization free in the open source version of Langfuse?

Largely yes, but confirm each variable before you design around it. Langfuse states that all core features and APIs are available in the MIT-licensed open source version without limits, and the LANGFUSE_INIT variables and default organization and project variables are part of the self-hosted setup. Several features need an Enterprise license key, including project-level RBAC roles, the org management API with SCIM and the instance management API, so any variable that depends on those needs a license check. Before you commit to a design, list every variable you plan to use and check it against the headless initialization documentation and the license key page. Ask DeployOpen to record that check in the written scope so the assumption is visible to your team.

What makes headless Langfuse setup take more or less effort?

The main drivers are structure, environment count, Enterprise features, platform and SSO. Each organization, project and environment needs its own initialization logic, default role decisions and key handling, so a model with many organizations takes longer to design and test than a single shared project. Using Enterprise features such as project-level roles, the instance management API or SCIM adds license-gated configuration and validation. The deployment platform matters as well: Langfuse documents Docker Compose on a single VM for testing without high availability, while production deployments on Kubernetes with Helm or Terraform on AWS, Azure or GCP need more infrastructure work. SSO design, including the identity provider, whether password sign-in is disabled and which email domains enforce SSO, adds further work. Ask for each driver to appear as a stated assumption in the quote.

How long does a headless Langfuse setup take to complete?

The duration depends on the scoped environment, so ask for a written plan. No single timeline applies across deployments, because the number of environments, the platform, the identity design and the number of organizations and projects all change the work. A useful plan lists phases such as design, build in a non-production environment, validation, handover and documented operations, with milestones and client dependencies at each step. Ask who is responsible for access requests, identity provider configuration and decisions on roles, and how the plan changes if a dependency waits. Compare proposals against the same environment definition so the scopes match. If a proposal gives a timeline without listing what it covers, ask for the assumptions behind it before you accept it.

What does our team need to provide for a Langfuse setup engagement?

Your team supplies access, secrets handling, identity details and decisions. Expect to provide cloud account or cluster access with the permissions the chosen deployment needs, and a secrets management system where initialization values, API keys and the ADMIN_API_KEY can be stored. For SSO, the identity provider type, the registration details and the email domains to enforce must be available before configuration starts. Decision owners are often the most overlooked item: someone must approve the organization and project model, the default roles for new users, and the retention and masking choices that shape the instance. Name these people before the engagement begins, and agree on approval turnaround in the written scope so that waiting does not silently extend the schedule.

Can our internal engineers set up headless Langfuse without an outside partner?

Often yes, if your team has the platform skills and time to own the result. Internal engineers can work from the Langfuse documentation if they already run Kubernetes or Docker Compose workloads, operate PostgreSQL, ClickHouse and object storage, and handle secrets safely. The harder parts are usually the design decisions, testing across environments, identity integration and the upgrade path, since major upgrades follow dedicated migration guides. Consider whether the people who would do the work can stay on it through testing, documentation and handover. A partner is one option for fixed-scope work, and an internal team is another. Weigh both against your staffing and your upgrade calendar, not only the cost of the initial build.

What should we request in a quote for Langfuse provisioning work?

Ask for a fixed-scope quote with written deliverables, assumptions and exclusions. DeployOpen does not publish a price list, and most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. A useful quote lists the environments covered, the deployment platform, the organizations and projects to initialize, the Enterprise features in scope, the SSO design and the testing expected. It should also name what the client provides, what is excluded and who approves changes. Ask whether ongoing support, upgrades or testing are separate retainers. Keep the services fee separate from any Langfuse license or support plan, because Langfuse prices its Self-Hosted Enterprise plan separately, so confirm the license terms with Langfuse directly.

Where do initialization keys and API keys go after startup?

Treat them as credentials and keep them in your secrets manager. The LANGFUSE_INIT variables create the organization, project, API keys and user on startup if they do not already exist, so the values you pass in are sensitive. Keep them out of plain configuration files and source control, and restrict who can read the deployment manifests that reference them. The instance management API authenticates with an ADMIN_API_KEY bearer token, which should be handled as an administrator credential with its own rotation procedure. Ask for a written rotation and revocation process before go-live, and confirm how existing keys behave when you change an initialization value, since the variables only create objects that do not already exist.

How DeployOpen scopes and delivers Langfuse provisioning

DeployOpen treats Langfuse headless initialization as part of the platform build, not a script added at the end. We agree which organizations, projects, keys and default roles the instance needs, then write the provisioning configuration and test it against your environment before handover.

How we scope

  • The written scope lists the first organization, project, API keys and user created at startup.
  • We map default organization and project roles for new users against your access model.
  • Enterprise-only instance management API use is confirmed in writing before any build starts.
  • Engagements are fixed-scope, so deliverables and timelines are agreed before work begins.

How we build

  • We write the LANGFUSE_INIT and default role variables as code in your deployment repository.
  • Initialization is tested on a fresh instance and again on a restart to confirm nothing is duplicated.
  • Secrets for generated keys are stored in your secrets manager, not in plain configuration files.
  • Where the Enterprise API is in scope, we test organization and key create, update and delete calls.

How we hand over

  • You receive the provisioning configuration, a runbook for rotating generated keys and test records.
  • Documentation states which variables run only at first startup and which take effect on every start.
  • We walk your platform team through a clean rebuild so they can repeat the provisioning themselves.
  • Compliance evidence for access settings is prepared for your assessors, who issue any attestation.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Changes to roles or keys follow a documented review step and are retested before release.
  • Major Langfuse upgrades are planned separately, because provisioning may need updating with them.
  • Confirm with your platform team how provisioning config is versioned alongside the Langfuse release you run.

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.