Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions langfuse/api/blob_storage_integrations/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ def upsert_blob_storage_integration(
**Cloud-only integration deprecation gate (effective 2026-06-22):** On Langfuse Cloud, legacy export sources are only accepted for blob storage integrations created before 2026-06-22, regardless of project age. Requests that would create a new integration with `LEGACY_TRACES_OBSERVATIONS` or `LEGACY_TRACES_AND_ENRICHED_OBSERVATIONS` are rejected with HTTP 400. Use `OBSERVATIONS_V2` instead. Self-hosted deployments are unaffected.

export_field_groups : typing.Optional[typing.Sequence[BlobStorageExportFieldGroup]]
Field groups to include in each exported observation row. Applies to all export sources; must include `core` if provided. When omitted on create, the column default (all groups) applies. When omitted on update, the existing value is preserved.
Field groups to include in each exported observation and score row. Applies to all export sources; must include the observation `core` group if provided. Core score columns are always exported; score groups add columns on top. When omitted on create, all observation groups are selected and no score groups. When omitted on update, the existing value is preserved.

`exportFieldGroups` requires `exportSource` to be provided in the same request.

Expand Down Expand Up @@ -438,7 +438,7 @@ async def upsert_blob_storage_integration(
**Cloud-only integration deprecation gate (effective 2026-06-22):** On Langfuse Cloud, legacy export sources are only accepted for blob storage integrations created before 2026-06-22, regardless of project age. Requests that would create a new integration with `LEGACY_TRACES_OBSERVATIONS` or `LEGACY_TRACES_AND_ENRICHED_OBSERVATIONS` are rejected with HTTP 400. Use `OBSERVATIONS_V2` instead. Self-hosted deployments are unaffected.

export_field_groups : typing.Optional[typing.Sequence[BlobStorageExportFieldGroup]]
Field groups to include in each exported observation row. Applies to all export sources; must include `core` if provided. When omitted on create, the column default (all groups) applies. When omitted on update, the existing value is preserved.
Field groups to include in each exported observation and score row. Applies to all export sources; must include the observation `core` group if provided. Core score columns are always exported; score groups add columns on top. When omitted on create, all observation groups are selected and no score groups. When omitted on update, the existing value is preserved.

`exportFieldGroups` requires `exportSource` to be provided in the same request.

Expand Down
4 changes: 2 additions & 2 deletions langfuse/api/blob_storage_integrations/raw_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ def upsert_blob_storage_integration(
**Cloud-only integration deprecation gate (effective 2026-06-22):** On Langfuse Cloud, legacy export sources are only accepted for blob storage integrations created before 2026-06-22, regardless of project age. Requests that would create a new integration with `LEGACY_TRACES_OBSERVATIONS` or `LEGACY_TRACES_AND_ENRICHED_OBSERVATIONS` are rejected with HTTP 400. Use `OBSERVATIONS_V2` instead. Self-hosted deployments are unaffected.

export_field_groups : typing.Optional[typing.Sequence[BlobStorageExportFieldGroup]]
Field groups to include in each exported observation row. Applies to all export sources; must include `core` if provided. When omitted on create, the column default (all groups) applies. When omitted on update, the existing value is preserved.
Field groups to include in each exported observation and score row. Applies to all export sources; must include the observation `core` group if provided. Core score columns are always exported; score groups add columns on top. When omitted on create, all observation groups are selected and no score groups. When omitted on update, the existing value is preserved.

`exportFieldGroups` requires `exportSource` to be provided in the same request.

Expand Down Expand Up @@ -713,7 +713,7 @@ async def upsert_blob_storage_integration(
**Cloud-only integration deprecation gate (effective 2026-06-22):** On Langfuse Cloud, legacy export sources are only accepted for blob storage integrations created before 2026-06-22, regardless of project age. Requests that would create a new integration with `LEGACY_TRACES_OBSERVATIONS` or `LEGACY_TRACES_AND_ENRICHED_OBSERVATIONS` are rejected with HTTP 400. Use `OBSERVATIONS_V2` instead. Self-hosted deployments are unaffected.

export_field_groups : typing.Optional[typing.Sequence[BlobStorageExportFieldGroup]]
Field groups to include in each exported observation row. Applies to all export sources; must include `core` if provided. When omitted on create, the column default (all groups) applies. When omitted on update, the existing value is preserved.
Field groups to include in each exported observation and score row. Applies to all export sources; must include the observation `core` group if provided. Core score columns are always exported; score groups add columns on top. When omitted on create, all observation groups are selected and no score groups. When omitted on update, the existing value is preserved.

`exportFieldGroups` requires `exportSource` to be provided in the same request.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@

class BlobStorageExportFieldGroup(enum.StrEnum):
"""
Field group selecting which observation columns are included in the export. Applies to all export sources; groups without a counterpart in the legacy data model (e.g. `trace_context`) are omitted from the legacy observations export.
Field group selecting which columns are included in the export. Applies to all export sources.
- Observation groups (`core` through `trace_context`) select observation columns; groups without a counterpart in the legacy data model (e.g. `trace_context`) are omitted from the legacy observations export.
- Score groups (`score_` prefix) add optional columns to the scores export. The core score columns (`id`, `timestamp`, `trace_id`, `name`, `value`, …) are always exported and are not a selectable group; score groups add columns on top of them. `score_metadata` adds the score `metadata` column. `score_provenance` adds the references to where a score came from: `author_user_id`, `config_id`, `queue_id`, `evaluator_id`, `evaluation_rule_id`, `execution_trace_id`. Score groups are never selected by default.
"""

CORE = "core"
Expand All @@ -23,6 +25,8 @@ class BlobStorageExportFieldGroup(enum.StrEnum):
METRICS = "metrics"
TOOLS = "tools"
TRACE_CONTEXT = "trace_context"
SCORE_METADATA = "score_metadata"
SCORE_PROVENANCE = "score_provenance"

def visit(
self,
Expand All @@ -37,6 +41,8 @@ def visit(
metrics: typing.Callable[[], T_Result],
tools: typing.Callable[[], T_Result],
trace_context: typing.Callable[[], T_Result],
score_metadata: typing.Callable[[], T_Result],
score_provenance: typing.Callable[[], T_Result],
Comment thread
niklassemmler marked this conversation as resolved.
) -> T_Result:
if self is BlobStorageExportFieldGroup.CORE:
return core()
Expand All @@ -60,3 +66,7 @@ def visit(
return tools()
if self is BlobStorageExportFieldGroup.TRACE_CONTEXT:
return trace_context()
if self is BlobStorageExportFieldGroup.SCORE_METADATA:
return score_metadata()
if self is BlobStorageExportFieldGroup.SCORE_PROVENANCE:
return score_provenance()
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class BlobStorageIntegrationResponse(UniversalBaseModel):
FieldMetadata(alias="exportFieldGroups"),
] = pydantic.Field(default=None)
"""
Field groups included in each exported observation row. An empty list is treated as all groups during export.
Field groups included in each exported observation and score row. An empty list is treated as all observation groups and no score groups during export. Core score columns are always exported.
"""

next_sync_at: typing_extensions.Annotated[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class CreateBlobStorageIntegrationRequest(UniversalBaseModel):
FieldMetadata(alias="exportFieldGroups"),
] = pydantic.Field(default=None)
"""
Field groups to include in each exported observation row. Applies to all export sources; must include `core` if provided. When omitted on create, the column default (all groups) applies. When omitted on update, the existing value is preserved.
Field groups to include in each exported observation and score row. Applies to all export sources; must include the observation `core` group if provided. Core score columns are always exported; score groups add columns on top. When omitted on create, all observation groups are selected and no score groups. When omitted on update, the existing value is preserved.

`exportFieldGroups` requires `exportSource` to be provided in the same request.
"""
Expand Down
Loading