Skip to content

feat: add logging configuration and SSE event discrimination support#87

Open
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-27T09-41Z
Open

feat: add logging configuration and SSE event discrimination support#87
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-27T09-41Z

Conversation

@fern-api
Copy link
Contributor

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

Version Bump: Removed public methods parserCreateJob(InputStream, String) and parserCreateJob(InputStream, String, MediaType) from LabReportClient, and removed INSULIN_INJECTION enum value - existing callers will get compilation errors.

  • The parserCreateJob() method overloads that accepted InputStream parameters have been removed from LabReportClient and AsyncLabReportClient. Use the File-based overloads instead. The INSULIN_INJECTION enum value has also been removed from IntervalTimeseriesExprTimeseries. The SDK now supports configurable logging through ClientOptions.builder().logging() and enhanced SSE event discrimination for discriminated union types.
  • Breaking changes: The parserCreateJob method overloads that accept InputStream parameters have been removed from RawLabReportClient. Use the File-based overloads instead. The lab parameter in LabTestsGetPscAppointmentAvailabilityRequest now accepts an AppointmentPscLabs enum instead of a String.

New features: Added support for lab_account_id and lab_slug fields in lab test creation, lab_slug filtering in marker requests, and appointment_notes in appointment requests.

  • The SDK now supports additional optional fields for manual connection data, appointment rescheduling, and address information. New expression types are available for aggregate queries including derived readiness columns and insulin injection timeseries.
  • Enhanced insulin injection tracking with new optional delivery mode, delivery form, and bolus purpose fields. Added clinical notes support to orders and improved order event tracking with status details. Order transactions now use strongly-typed status enums and lab results include order transaction references for better data linkage.
  • The jobId field has been removed from the ParsingJob type. Existing code accessing getJobId() will need to be updated. Additionally, patient address types now support an optional accessNotes field for additional delivery instructions.
  • The SDK now supports access notes for US addresses through a new optional accessNotes field on the UsAddress class. The UserInfo address field type has been changed from Address to UserAddress for improved type safety and consistency.
  • The SDK now supports optional iOS and Android SDK version headers when connecting manual providers, enabling better tracking and debugging of mobile SDK integrations.
  • The SDK now supports configurable logging with multiple levels (DEBUG, INFO, WARN, ERROR) and custom logger implementations. New client methods compendium() and labAccount() are available on Vital and AsyncVital. Additional provider support includes Samsung Health, Sonora Quest, Tandem Source, and new lab providers CRL, Apero, and PVerify. Enhanced order status tracking with corrected result states and lab processing status.
  • New compendium clients are now available for searching and converting data. The SDK also includes enhanced support for Server-Sent Events with the new SseEventParser utility class for handling discriminated unions.
  • New compendium request classes and lab account client added. The SDK now supports ConvertCompendiumBody and SearchCompendiumBody for lab test compendium operations, and includes a new LabAccountClient for managing team lab accounts.
  • New lab account management capabilities available through the RawLabAccountClient with support for retrieving team lab accounts. The CreateOrderRequestCompatible now accepts an optional clinical_notes field for enhanced order documentation.
  • New builder methods additionalProperty() and additionalProperties() are now available on request object builders, allowing you to set custom properties for extensibility and forward compatibility.
  • New builder methods additionalProperty() and additionalProperties() are now available on all request builders to support setting custom properties.
  • New additionalProperty() and additionalProperties() methods available on all vitals request builders. These methods allow setting custom properties for future API extensibility and advanced use cases.
  • New additionalProperty() and additionalProperties() methods available on all vitals request builders. These methods allow passing custom key-value pairs alongside standard request parameters for enhanced flexibility.
  • The SDK now supports setting additional custom properties on builder instances through new additionalProperty() and additionalProperties() methods. AppointmentBookingRequest also includes a new optional appointmentNotes field for providing notes during appointment booking.
  • New CanonicalCandidate type available for biomarker canonical matching with LOINC codes, provider IDs, and confidence scoring. Builder classes now support additional properties via additionalProperty() and additionalProperties() methods.
  • New appointmentNotes field available on ClientFacingAppointment for storing additional notes about appointments. The SDK now provides enhanced builder methods with additionalProperty support across multiple classes.
  • New additionalProperty() and additionalProperties() methods available on all client-facing type builders for attaching custom metadata during object construction.
  • New insulin pump device source type support and enhanced builder extensibility. The SDK now recognizes insulin pumps as a device source type, and all client-facing model builders support additional custom properties.
  • New builder methods additionalProperty() and additionalProperties() are now available on client-facing types, allowing custom properties to be set during object construction.
  • New insulin injection sample types are now available for tracking delivery modes, purposes, and delivery forms. The SDK also adds support for lab account management with the ClientFacingLabAccount type, and new webhook event types for lab report parsing job lifecycle events.
  • The SDK now supports setting additional properties on model objects through builder methods. New additionalProperty(key, value) and additionalProperties(Map) methods are available on all client-facing model builders, enabling more flexible object construction and dynamic data handling.
  • New builder methods additionalProperty() and additionalProperties() are now available on model builders to support setting dynamic properties during object construction. Additionally, INSULIN_PUMP source type is now supported for sleep cycle data.
  • New builder methods are now available for setting additional properties on model objects. Use additionalProperty(key, value) to set individual properties or additionalProperties(map) to set multiple properties at once.
  • Builder classes now include additionalProperty(String key, Object value) and additionalProperties(Map<String, Object> additionalProperties) methods for setting custom properties on data model objects.
  • The SDK now supports setting additional properties on model objects through new additionalProperty() and additionalProperties() builder methods. New classes include ConvertCompendiumResponse for lab test conversion, CompendiumSearchLabs enum for lab providers, and DerivedReadinessColumnExpr for readiness data expressions.
  • New additionalProperty() and additionalProperties() methods available on builder classes, allowing dynamic extension of model objects with custom key-value pairs. Also added new GetTeamLabAccountsResponse class.
  • New builder methods for additional properties on grouped types. The SDK now supports additionalProperty() and additionalProperties() methods on all grouped data type builders, enabling forward compatibility with future API extensions.
  • New additionalProperty() and additionalProperties() builder methods available on all grouped data type builders. These methods allow setting custom additional properties when constructing grouped data objects.
  • The SDK now supports setting additional properties on model builders through new additionalProperty() and additionalProperties() methods. New insulin injection timeseries support is available with comprehensive field options for diabetes management data tracking.
  • New LabAccountStatus enum is available with ACTIVE, PENDING, and SUSPENDED values. Builder classes now support additionalProperty() and additionalProperties() methods for enhanced extensibility.
  • New PerLabCandidate class available for laboratory test candidate matching. Enhanced builder interfaces across multiple model classes with additionalProperty() and additionalProperties() methods for improved JSON extensibility.
  • New provider ID conversion types are now available for handling provider identifier mapping. The SDK now supports TANDEM_SOURCE and SAMSUNG_HEALTH providers. Result metadata now includes an optional gender field with male/female/other values.
  • New SearchCompendiumResponse, SearchMode, and UsState types are now available. The SDK also adds missing builder methods for setting additional properties on various data types.

Add comprehensive logging configuration to ClientOptions with silent-by-default behavior.
Introduce new SSE event-level discrimination capabilities for handling discriminated
union types in server-sent events. Remove deprecated InputStream overloads from
lab report parser methods and insulin injection timeseries type.

Key changes:
- Add optional LogConfig to ClientOptions builder for configurable SDK logging
- Add SSE_EVENT_DISCRIMINATED stream type with SseEventParser integration
- Remove InputStream-based parserCreateJob method overloads (breaking change)
- Remove INSULIN_INJECTION enum value from IntervalTimeseriesExprTimeseries (breaking change)
- Update documentation for multi-file upload support

🌿 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