feat(api): update API spec from langfuse/langfuse 811f641#1738
Conversation
|
@claude review |
There was a problem hiding this comment.
LGTM, auto-generated Fern API spec update adding experiments/dashboard_widgets modules and blob storage enum extensions.
Extended reasoning...
Overview
This PR is an auto-generated Fern update from the langfuse/langfuse OpenAPI spec (commit 811f641). It adds two new API surfaces (experiments with list/list_items, and unstable.dashboard_widgets with create), introduces a new BlobStorageIntegrationFileTypeResponse enum (adds PARQUET to the read side), adds a RUNNING variant to BlobStorageSyncStatus, and clarifies the exportStartDate docstring. Every file carries the This file was auto-generated by Fern from our API Definition header — there are no hand-written changes.
Security risks
None. The generated clients simply forward parameters to existing HTTP endpoints via the shared httpx_client/RequestOptions plumbing; no auth, crypto, permission, or serialization logic is introduced. New enums add variants rather than reinterpret existing ones.
Level of scrutiny
Low. This is purely additive, auto-generated code following the exact patterns already established across the langfuse/api/ tree (lazy __getattr__ imports, RawClient/AsyncClient pairs, Pydantic UniversalBaseModel types). The one non-additive change — swapping BlobStorageIntegrationFileType for BlobStorageIntegrationFileTypeResponse on the response model — is a widening (adds PARQUET), so existing consumers keep parsing correctly.
Other factors
No bugs were flagged by the bug hunting system, no prior reviewer comments are outstanding, and there is no manual code involved that would warrant deeper review. Standard rubber-stamp for a Fern spec sync.
Greptile Summary
This is an auto-generated PR (via Fern from langfuse/langfuse
811f641) that adds two new API surface areas: a stableexperimentsclient withlistandlist_itemsmethods, and an unstabledashboard_widgetsclient withcreateanddeleteoperations. It also adds theBlobStorageIntegrationFileTypeResponseenum (addingPARQUETto the response type) and updates theexport_start_datedocstring with a timezone tolerance note.langfuse/api/experiments/module exposes paginated listing of experiments and their items, each with optional field groups (core,metadata,scores,io, etc.).langfuse/api/unstable/dashboard_widgets/module enables programmatic creation and deletion of reusable dashboard widgets (observations, scores-numeric, scores-categorical views only).BlobStorageIntegrationFileTypeResponseis split out fromBlobStorageIntegrationFileTypeto includePARQUETas a read-only response value.Confidence Score: 4/5
Safe to merge — all changes are auto-generated from the API spec and follow well-established patterns in this codebase.
The only finding is inline imports inside property methods in
client.pyandunstable/client.py, which violates the project's import-placement rule. This pattern is already pervasive throughout the existing file and is generated automatically by Fern; it's a style issue rather than a functional defect. The new type definitions, client methods, and exports are structurally correct.langfuse/api/client.py and langfuse/api/unstable/client.py contain inline imports in the new property methods that should ideally live at module top.
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD LangfuseAPI --> ExperimentsClient LangfuseAPI --> BlobStorageIntegrationsClient LangfuseAPI --> UnstableClient ExperimentsClient --> RawExperimentsClient ExperimentsClient -->|list| ExperimentsResponse ExperimentsClient -->|list_items| ExperimentItemsResponse ExperimentsResponse --> Experiment ExperimentItemsResponse --> ExperimentItem Experiment --> ScoreV3 ExperimentItem --> ScoreV3 UnstableClient --> DashboardWidgetsClient DashboardWidgetsClient --> RawDashboardWidgetsClient DashboardWidgetsClient -->|create| DashboardWidget DashboardWidgetsClient -->|delete| void["(void)"] DashboardWidget --> DashboardWidgetChartConfig DashboardWidget --> DashboardWidgetChartType DashboardWidget --> DashboardWidgetView BlobStorageIntegrationsClient -->|update| BlobStorageIntegrationResponse BlobStorageIntegrationResponse --> BlobStorageIntegrationFileTypeResponse BlobStorageIntegrationFileTypeResponse -->|new| PARQUET["PARQUET (read-only)"]%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD LangfuseAPI --> ExperimentsClient LangfuseAPI --> BlobStorageIntegrationsClient LangfuseAPI --> UnstableClient ExperimentsClient --> RawExperimentsClient ExperimentsClient -->|list| ExperimentsResponse ExperimentsClient -->|list_items| ExperimentItemsResponse ExperimentsResponse --> Experiment ExperimentItemsResponse --> ExperimentItem Experiment --> ScoreV3 ExperimentItem --> ScoreV3 UnstableClient --> DashboardWidgetsClient DashboardWidgetsClient --> RawDashboardWidgetsClient DashboardWidgetsClient -->|create| DashboardWidget DashboardWidgetsClient -->|delete| void["(void)"] DashboardWidget --> DashboardWidgetChartConfig DashboardWidget --> DashboardWidgetChartType DashboardWidget --> DashboardWidgetView BlobStorageIntegrationsClient -->|update| BlobStorageIntegrationResponse BlobStorageIntegrationResponse --> BlobStorageIntegrationFileTypeResponse BlobStorageIntegrationFileTypeResponse -->|new| PARQUET["PARQUET (read-only)"]Prompt To Fix All With AI
Reviews (1): Last reviewed commit: "feat(api): update API spec from langfuse..." | Re-trigger Greptile