Skip to content

feat: add logging support and SSE event discrimination#76

Open
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-19T16-06Z
Open

feat: add logging support and SSE event discrimination#76
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-19T16-06Z

Conversation

@fern-api
Copy link
Contributor

@fern-api fern-api bot commented Mar 19, 2026

Version Bump: Removed public parserCreateJob methods that accepted InputStream parameters - existing callers will get compilation errors.

  • The SDK now supports configurable logging via the new logging() method on ClientOptions.Builder. Logging is silent by default. Enhanced streaming capabilities with new SSE event-level discrimination support for discriminated union types. Removed deprecated InputStream-based lab report parsing methods - use File-based methods instead.
  • The SDK removes InputStream-based file upload methods for lab report parsing and adds enhanced lab configuration options. New optional fields include lab_account_id and lab_slug for CreateLabTestRequest, lab_slug for marker queries, and appointment_notes for appointment requests. The PSC appointment availability request now uses a structured enum for lab selection instead of a string parameter.
  • The SDK now supports several new optional fields for enhanced functionality: SDK version tracking in manual connections, access notes for addresses, appointment notes for rescheduling, and clinical notes for orders. Additionally, a new DerivedReadinessColumnExpr type is now supported in aggregate expressions.
  • New optional fields available on order events, lab results, and patient addresses. The SDK now includes statusDetail on order events, orderTransaction context on lab results, and accessNotes on patient addresses. The GetOrderTransactionResponse status field is now strongly typed as OrderTransactionStatus enum. The deprecated jobId field has been removed from ParsingJob.
  • The SDK now supports derived readiness column expressions in query operations. New optional access_notes field added to US addresses for delivery instructions. UserInfo now uses UserAddress type instead of the generic Address type.
  • The getMarkers() method now supports filtering by lab slug through an optional lab_slug query parameter in the request.
  • The lab tests client now supports filtering markers by lab slug via the lab_slug query parameter. Manual provider connections can now include iOS and Android SDK version headers for better tracking and analytics.
  • New CompendiumClient and LabAccountClient resources are now available for accessing lab test compendium data and managing lab accounts. The SDK now supports configurable logging with custom log levels, loggers, and HTTP request/response logging capabilities. Several provider and status enums have been expanded with new options including Sonora Quest, Samsung Health, Tandem Source, and additional order statuses for corrected results.
  • New CompendiumClient provides search and convert methods for compendium data. The SDK also adds comprehensive Server-Sent Events parsing capabilities with support for discriminated union types.
  • The SDK now supports compendium lab test search and conversion functionality through new request classes. Lab account management is available via the new LabAccountClient with methods to retrieve team lab accounts. Additional builder pattern methods have been added to existing request classes for enhanced flexibility.
  • New lab account management capabilities available through RawLabAccountClient.getTeamLabAccounts() method with filtering by lab account ID and status. Lab test order creation now supports clinical notes via the clinicalNotes field in CreateOrderRequestCompatible.
  • New additionalProperty() and additionalProperties() builder methods available on all request classes for setting custom metadata and fields.
  • New builder methods additionalProperty() and additionalProperties() are now available on all request object builders, enabling flexible customization of requests with additional key-value pairs.
  • New builder methods additionalProperty() and additionalProperties() are now available on all vitals request classes, allowing custom key-value pairs to be passed with requests.
  • New additionalProperty() and additionalProperties() methods available on all vitals request builders for passing custom parameters to API requests.
  • The SDK now supports dynamic property setting on request objects through new additionalProperty() and additionalProperties() methods available on all request builders. Additionally, appointment booking requests now support optional appointment notes.
  • New CanonicalCandidate type available for biomarker canonicalization with LOINC code matching, provider ID mapping, and confidence scoring. All builder classes now support additionalProperty() and additionalProperties() methods for flexible property handling.
  • The SDK now supports an optional appointment notes field in appointment objects and provides additional properties support for extensible data handling across client-facing types.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing types for setting additional properties on model objects.
  • New additionalProperty() and additionalProperties() methods are now available on all builder classes, allowing dynamic management of additional properties on model objects.
  • Builder classes for health data types now support adding custom additional properties via additionalProperty() and additionalProperties() methods. This enables more flexible construction of health data objects with custom metadata.
  • The SDK now supports lab report parsing job events through new webhook event types ClientFacingLabReportParsingJobCreatedEvent and ClientFacingLabReportParsingJobUpdatedEvent. A new ClientFacingLabAccount type is available for accessing lab provider account details including billing configurations and business units.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing type builders, providing a fluent API for handling additional properties.
  • New builder methods additionalProperty() and additionalProperties() are now available on client-facing type builders, allowing dynamic handling of extended JSON properties in API responses.
  • New additionalProperty() and additionalProperties() methods are now available on all model builders, allowing you to set custom key-value pairs on response objects for handling dynamic or unknown API fields.
  • New additionalProperty() and additionalProperties() builder methods are now available on all ClientFacing* types and response classes. These methods enable setting arbitrary additional properties for better extensibility and forward compatibility.
  • New lab compendium search and conversion capabilities added to the SDK. The CompendiumSearchLabs enum provides options for searching across major lab providers (LabCorp, Quest, BioReference, Sonora Quest). ConvertCompendiumResponse type enables handling of lab test conversions between different providers. Enhanced builder pattern support with additional property methods across all model classes.
  • New builder methods additionalProperty() and additionalProperties() are available on data type builders, allowing you to set custom properties on objects. The new GetTeamLabAccountsResponse type is also available.
  • The SDK now includes convenience methods on grouped data type builders for setting additional properties. Use additionalProperty(key, value) to set individual properties or additionalProperties(map) to set multiple properties at once during object construction.
  • New builder methods for additional properties are now available on all GroupedX data and response classes. Use additionalProperty(key, value) and additionalProperties(map) for convenient handling of additional JSON fields.
  • New builder methods additionalProperty() and additionalProperties() are now available on all response and data classes for setting custom properties. The IndexColumnExprIndex enum now includes a DERIVED_READINESS option. Two new enums are available: LabAccountDelegatedFlow for lab account delegation statuses and LabAccountStatus for lab account states.
  • New builder methods additionalProperty() and additionalProperties() are now available on multiple types for setting custom fields during object construction. The new PerLabCandidate type is also available for lab data processing.
  • The SDK now supports additional properties on all model builders through additionalProperty() and additionalProperties() methods. New provider types TANDEM_SOURCE and SAMSUNG_HEALTH are available. A new ProviderIdConversionResponse class has been added for provider ID conversion functionality.
  • New compendium search functionality with SearchCompendiumResponse and RelatedCandidate types for canonical and crosswalk search modes. Added gender field to ResultMetadata for enhanced patient demographics in lab results.
  • New builder methods additionalProperty() and additionalProperties() are now available on all data model builders for flexible object construction. The SDK also includes new types: UsState enum for US state handling and UserAddress for comprehensive address management.
  • New builder methods additionalProperty() and additionalProperties() are now available on WorkoutColumnExpr, WorkoutDurationTimeseriesExpr, and WorkoutV2InDb builders for setting custom additional properties.

Add configurable logging support to ClientOptions with silent by default behavior,
and introduce SSE event-level discrimination for streaming discriminated unions.
Also remove deprecated InputStream-based lab report parsing methods.

Key changes:
- Added LogConfig and logging() builder method to ClientOptions for SDK logging
- Added SSE_EVENT_DISCRIMINATED stream type for handling SSE discriminated unions
- Added fromSseWithEventDiscrimination() methods to Stream class
- Removed InputStream-based parserCreateJob methods from LabReportClient
- Enhanced Stream iterator to support event-level discrimination via SseEventParser

🌿 Generated with Fern
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants