Skip to content

feat: add SDK logging support and SSE event discrimination#78

Open
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-20T14-40Z
Open

feat: add SDK logging support and SSE event discrimination#78
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-20T14-40Z

Conversation

@fern-api
Copy link
Contributor

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

Version Bump: Removed public InputStream-based parserCreateJob() methods from AsyncLabReportClient and LabReportClient classes.

  • The SDK now supports configurable logging through a new LogConfig option in ClientOptions. Logging is silent by default and must be explicitly enabled. Additionally, the Stream class now supports event-level discrimination for Server-Sent Events through new fromSseWithEventDiscrimination() methods, enabling better handling of discriminated union payloads in streaming responses.
  • Breaking changes to the lab report parsing API - several InputStream-based parserCreateJob methods have been removed from RawLabReportClient. Migrate to the File-based overloads instead. New lab configuration options are now available across various lab test request classes including lab account ID, lab slug specification, and appointment notes support.
  • The SDK now supports additional optional fields across multiple API classes: ManualConnectionData includes SDK version tracking and granted permissions, Address supports access notes, AppointmentRescheduleRequest and ClientFacingOrder include notes fields, and AggregateExprArg now supports DerivedReadinessColumnExpr for enhanced aggregation capabilities.
  • Breaking change: The jobId field has been removed from ParsingJob. Code that accesses getJobId() will need to be updated. Several new optional fields have been added: statusDetail in order events, orderTransaction in lab results, and accessNotes in patient addresses. The order transaction status field is now properly typed as an enum instead of a string.
  • Breaking change: The visitor pattern for QueryGroupByItem and QuerySelectItem has been updated with new type orderings. Existing visitor implementations must be updated to handle the new DerivedReadinessColumnExpr type and shifted positions of existing types. The UserInfo.address field now uses the more specific UserAddress type. A new optional accessNotes field has been added to UsAddress.
  • The SDK now supports tracking mobile SDK versions through new HTTP headers (x-vital-ios-sdk-version and x-vital-android-sdk-version) when connecting manual providers.
  • The SDK now supports optional logging configuration through the new LogConfig API. New lab providers and enhanced enum values have been added, including SONORA_QUEST integration and additional order status values. Two new client modules are available: CompendiumClient and LabAccountClient for expanded functionality.
  • New CompendiumClient available for searching and converting exercise data using the Vital exercise compendium API. The SDK also includes a new SSE event parser utility for handling Server-Sent Events with discriminated unions.
  • New compendium search and convert functionality available for lab test operations. The SDK now supports searching for lab tests and converting between different lab formats through new request classes. Additionally, lab account management is now available through the LabAccountClient with methods to retrieve team lab accounts.
  • The SDK now includes lab account management capabilities through a new RawLabAccountClient with methods to query team lab accounts. Lab test orders also support optional clinical notes via the new clinicalNotes parameter in CreateOrderRequestCompatible.
  • The SDK now supports additional properties in request builders. Use the new additionalProperty() and additionalProperties() methods to include custom key-value pairs in your requests for future extensibility.
  • Request builders now include additionalProperty() and additionalProperties() methods for setting custom properties in a fluent, type-safe manner.
  • New additionalProperty and additionalProperties methods available on all vitals request builders, enabling custom properties to be set when constructing API requests.
  • The SDK now supports setting additional properties on all vitals request builders through new additionalProperty() and additionalProperties() methods.
  • The SDK now supports additional properties on request and type builders. Use .additionalProperty(key, value) or .additionalProperties(map) methods when building requests to include custom fields beyond the standard API schema. A new optional appointmentNotes field has been added to AppointmentBookingRequest.
  • New CanonicalCandidate type available for biomarker matching operations with LOINC codes, aliases, and confidence scoring. Builder classes now support dynamic additional properties via additionalProperty() and additionalProperties() methods.
  • New appointmentNotes field available on ClientFacingAppointment objects. Enhanced builder patterns across client-facing types now support additional properties via additionalProperty() and additionalProperties() methods.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing model builders, allowing dynamic property handling during object construction.
  • Enhanced builder pattern support by adding additionalProperty() and additionalProperties() methods to all client-facing type builders. These methods provide a fluent API for handling additional JSON properties in API responses.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing data type builders, providing a fluent API for setting custom properties during object construction.
  • New ClientFacingLabAccount type available for lab account management with billing configuration and team allowlist support. Two new event types ClientFacingLabReportParsingJobCreatedEvent and ClientFacingLabReportParsingJobUpdatedEvent enable tracking of lab report parsing job lifecycle events.
  • New additionalProperty() and additionalProperties() methods available on all builder interfaces. These methods allow you to add custom key-value pairs when constructing objects, providing better support for dynamic data and future extensibility.
  • New additionalProperty() and additionalProperties() builder methods available on all client-facing types. These methods allow setting arbitrary key-value pairs that will be included in the serialized object, enabling more flexible object construction.
  • New additionalProperty() and additionalProperties() builder methods available on all model classes. These methods allow setting custom properties on objects to handle additional fields that may be present in API responses.
  • New additionalProperty() and additionalProperties() methods available on all model builders for setting custom fields not defined in the schema.
  • New Compendium APIs available for lab test conversions between LabCorp, Quest, BioReference, and Sonora Quest. Enhanced builder pattern support with additional property methods across model classes.
  • New builder methods additionalProperty() and additionalProperties() are available on all data model classes for setting dynamic JSON properties. Added GetTeamLabAccountsResponse type for team lab account operations.
  • New builder methods available for additional properties on all grouped data types. Consumers can now set custom properties using additionalProperty(key, value) and additionalProperties(map) on builders for grouped response objects.
  • New builder methods additionalProperty() and additionalProperties() are now available on all grouped response and data type builders, providing a convenient way to set custom properties for API extensibility.
  • The SDK now provides builder methods for setting additional JSON properties on all model objects. Use additionalProperty(key, value) to set individual properties or additionalProperties(map) to set multiple properties at once. New enum values and types have been added for lab account management features.
  • New builder methods additionalProperty() and additionalProperties() are now available on model builders, allowing developers to set custom properties on API response objects for better forward compatibility.
  • New builder methods available for setting additional properties on request and response objects. The SDK now supports TANDEM_SOURCE and SAMSUNG_HEALTH providers. A new ProviderIdConversionResponse type is available for provider ID conversion operations.
  • The SDK now supports new model types including RelatedCandidate, SearchCompendiumResponse, SearchMode, and ResultMetadataGender. Builder classes for existing types now include additionalProperty methods for enhanced extensibility.
  • The SDK now supports additional properties on builder patterns for better extensibility. Two new types are available: UsState enum for US state abbreviations and UserAddress model for structured address data.
  • The builders for WorkoutColumnExpr, WorkoutDurationTimeseriesExpr, and WorkoutV2InDb now support setting additional properties through the new additionalProperty() and additionalProperties() methods.

This release introduces configurable SDK-wide logging capabilities and extends 
streaming support with event-level discrimination for Server-Sent Events (SSE).
The logging system is silent by default and requires explicit configuration.

Key changes:
- Add optional logging configuration to ClientOptions with LogConfig support
- Add LoggingInterceptor integration for HTTP request/response logging  
- Extend Stream class with SSE_EVENT_DISCRIMINATED type for discriminated unions
- Add fromSseWithEventDiscrimination() methods for event-based SSE parsing
- Remove InputStream-based file upload methods from LabReport clients
- Update documentation comments for file upload methods

🌿 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