Skip to content

feat: add logging support and enhance SSE streaming capabilities#86

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

feat: add logging support and enhance SSE streaming capabilities#86
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-26T14-35Z

Conversation

@fern-api
Copy link
Contributor

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

Version Bump: Removed public InputStream-based parserCreateJob methods from LabReportClient and AsyncLabReportClient, and removed INSULIN_INJECTION enum value from IntervalTimeseriesExprTimeseries.

  • The SDK now supports configurable logging through the new LogConfig option in ClientOptions. Enhanced SSE streaming capabilities with event-level discrimination for complex union types. The deprecated InputStream-based lab report upload methods have been removed - use File-based uploads instead.
  • The SDK removes several InputStream-based file upload methods from RawLabReportClient. Code using parserCreateJob(InputStream, String) or related overloads must switch to the File-based parserCreateJob(File, BodyCreateLabReportParserJob) method. New optional fields are available: lab_account_id and lab_slug in CreateLabTestRequest, lab_slug in LabTestsGetMarkersRequest, and appointment_notes in RequestAppointmentRequest.
  • The SDK now supports additional optional fields for enhanced data management: SDK version tracking for iOS and Android platforms in manual connections, permission management capabilities, access notes for addresses, and appointment notes for rescheduling requests. A new UserAddress type replaces the generic Address type in user creation requests.
  • New optional insulin delivery details are now available in insulin injection samples, including delivery mode, delivery form, and bolus purpose fields. Lab results and orders now include order transaction information where available. Clinical notes can now be accessed on orders alongside existing notes.
  • The jobId field has been removed from the ParsingJob class. Existing code accessing getJobId() will need to be updated. New optional accessNotes field is now available on patient address types. Query capabilities have been expanded with support for derived readiness columns and insulin injection timeseries.
  • The UserInfo class now uses UserAddress type instead of generic Address type for the address field, providing better type safety. Added optional access_notes field to UsAddress for delivery instructions.
  • The getMarkers method now accepts an optional lab_slug parameter to filter markers by lab slug. The method documentation has also been updated to clarify that reflex markers are not included in results.
  • New logging system available for debugging HTTP requests and responses. Configure with VitalBuilder.logging(LogConfig.builder().level(LogLevel.DEBUG).silent(false).build()). The SDK also adds new enum values for additional lab providers (Sonora Quest, CRL), health data sources (Samsung Health, Tandem Source), and order status tracking.
  • New compendium API support with search and convert operations available through CompendiumClient. Added SseEventParser utility for handling Server-Sent Events with discriminated unions.
  • New compendium API support for searching and converting medical test data. The SDK now includes ConvertCompendiumBody and SearchCompendiumBody request classes for compendium operations. Lab account management is now available through the new LabAccountClient with getTeamLabAccounts method.
  • The SDK now supports lab account management through the new RawLabAccountClient with methods to retrieve team lab accounts. Lab test orders can now include clinical notes via the clinicalNotes field in CreateOrderRequestCompatible for additional order context.
  • New additionalProperty() and additionalProperties() builder methods are now available on all request classes, allowing you to pass custom fields for API extensibility.
  • New additionalProperty() and additionalProperties() methods available on all request builder classes for more convenient handling of custom properties.
  • The SDK now supports setting additional properties on vitals request objects through new fluent builder methods additionalProperty() and additionalProperties(). These methods allow passing extra key-value pairs when constructing requests for all vitals endpoints.
  • New additionalProperty() and additionalProperties() builder methods available on all vitals request classes. These methods allow passing custom fields alongside standard API parameters.
  • The SDK now supports setting additional properties on request and response objects through new builder methods. Use additionalProperty(key, value) or additionalProperties(map) on any builder to include custom fields. Additionally, appointment booking requests now support optional appointment notes.
  • New CanonicalCandidate type available for biomarker canonicalization with LOINC codes, provider IDs, and confidence scoring. Builder classes now support setting additional properties via additionalProperty() and additionalProperties() methods.
  • New optional appointmentNotes field available on ClientFacingAppointment objects. Builder pattern enhancements across appointment and health data types now support additionalProperty() and additionalProperties() methods for custom field handling.
  • The SDK now provides standardized additionalProperty() and additionalProperties() methods on all model builders for handling additional properties. These methods allow you to add arbitrary key-value pairs to model objects while maintaining fluent builder chaining.
  • The SDK now supports insulin pump as a data source type for device and electrocardiogram data. Builder classes for data models and webhook events now include methods for setting custom additional properties.
  • New builder methods additionalProperty() and additionalProperties() are now available on client-facing types. These methods allow setting custom key-value pairs during object construction for handling dynamic data not explicitly modeled in the API schema.
  • New insulin injection sample enums added for bolus purpose, delivery form, and delivery mode classification. Lab account management capabilities now available through the ClientFacingLabAccount class. Lab report parsing job webhook events are now supported with dedicated event classes.
  • New builder methods additionalProperty() and additionalProperties() are now available on all ClientFacing response types to support custom field handling. The ClientFacingMenstrualCycleSourceType enum now includes an INSULIN_PUMP option.
  • The SDK now supports dynamic property handling through new builder methods. All model builders now include additionalProperty() and additionalProperties() methods for setting custom fields. Additionally, a new INSULIN_PUMP source type is available for sleep cycle data.
  • New builder methods additionalProperty() and additionalProperties() are now available on all model builders, providing a more convenient way to set custom properties when constructing model instances.
  • Builder classes now support additional properties management with new additionalProperty() and additionalProperties() methods, enabling easier handling of dynamic or extended data fields.
  • New additionalProperty() and additionalProperties() methods are now available on response object builders, enabling custom property configuration. The SDK also includes new types: ConvertCompendiumResponse, CompendiumSearchLabs, and DerivedReadinessColumnExpr for enhanced lab test conversion and query capabilities.
  • New builder methods additionalProperty() and additionalProperties() are now available on type builders, allowing custom key-value pairs to be set on model objects. A new GetTeamLabAccountsResponse type has been added for lab account operations.
  • Builder classes for grouped data types now support setting additional properties via new additionalProperty() and additionalProperties() methods. This enables more flexible object construction when working with API responses containing extra fields.
  • Builder classes for grouped data types now support setting additional properties via additionalProperty() and additionalProperties() methods. This enables adding custom key-value pairs to GroupedHypnogram, GroupedIge, GroupedIgg, and other grouped response types.
  • The SDK now supports insulin injection timeseries expressions for health data queries. All builder classes include new additionalProperty() and additionalProperties() methods for enhanced extensibility.
  • New LabAccountStatus enum added with support for ACTIVE, PENDING, and SUSPENDED states. All model classes now support additional properties through new builder methods for enhanced extensibility.
  • New PerLabCandidate type available for handling per-laboratory test candidate information including marker IDs, lab details, LOINC codes, CPT codes, and confidence scoring. Enhanced builder patterns across existing types now support additional property methods for better extensibility.
  • The SDK now supports provider ID conversion with new ProviderIdConversionResponse and RelatedCandidate types. Added support for Tandem Source and Samsung Health providers. Enhanced ResultMetadata with gender field support.
  • New search compendium functionality with SearchCompendiumResponse, SearchMode enum (CANONICAL/CROSSWALK), and UsState enum for US state abbreviations. Enhanced builder pattern support with additional property methods across existing types.

Add configurable logging system with LogConfig and LoggingInterceptor to provide 
optional HTTP request/response logging. Enhance Stream class with event-level 
discrimination support for SSE streams with discriminated unions. Remove deprecated 
InputStream-based lab report upload methods and INSULIN_INJECTION enum value.

Key changes:
- Add logging configuration to ClientOptions with LogConfig and LoggingInterceptor
- Add SSE_EVENT_DISCRIMINATED stream type with SseEventParser integration
- Remove InputStream-based parserCreateJob method overloads from LabReportClient
- Remove INSULIN_INJECTION enum value from IntervalTimeseriesExprTimeseries
- Update documentation to reflect multiple 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