Skip to content

Commit fc3a49c

Browse files
committed
docs: update changelog
1 parent 942a128 commit fc3a49c

3 files changed

Lines changed: 233 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@
22

33
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
44

5+
## [6.0.0-beta.1](https://github.com/GetStream/stream-sdk-java/compare/5.0.1...6.0.0-beta.1) (2026-02-27)
6+
7+
### Breaking Changes
8+
9+
- Type names across all products now follow the OpenAPI spec naming convention: response types are suffixed with `Response`, input types with `Request`. See [MIGRATION_v5_to_v6.md](./MIGRATION_v5_to_v6.md) for the complete rename mapping.
10+
- `Event` (WebSocket envelope type) renamed to `WSEvent`. Base event type renamed from `BaseEvent` to `Event` (with field `type` instead of `T`).
11+
- Event composition changed from monolithic `*Preset` embeds to modular `Has*` types.
12+
- `Pager` renamed to `PagerResponse` and migrated from offset-based to cursor-based pagination (`next`/`prev` tokens).
13+
14+
### Added
15+
16+
- Full product coverage: Chat, Video, Moderation, and Feeds APIs are all supported in a single SDK.
17+
- **Feeds**: activities, feeds, feed groups, follows, comments, reactions, collections, bookmarks, membership levels, feed views, and more.
18+
- **Video**: calls, recordings, transcription, closed captions, SFU, call statistics, user feedback analytics, and more.
19+
- **Moderation**: flags, review queue, moderation rules, config, appeals, moderation logs, and more.
20+
- Push notification types, preferences, and templates.
21+
- Webhook support: `WHEvent` envelope class for receiving webhook payloads, utility methods for decoding and verifying webhook signatures, and a full set of individual typed event classes for every event across all products (Chat, Video, Moderation, Feeds) usable as discriminated event types.
22+
- Cursor-based pagination across all list endpoints.
23+
524
### [5.0.1](https://github.com/GetStream/stream-sdk-java/compare/5.0.0...5.0.1) (2026-02-11)
625

726
## [5.0.0](https://github.com/GetStream/stream-sdk-java/compare/4.1.1...5.0.0) (2026-02-03)

MIGRATION_v5_to_v6.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# Migration Guide: v5 → v6
2+
3+
This guide covers all breaking changes when upgrading from `stream-sdk-java` v5 to v6.
4+
5+
## Overview
6+
7+
v6 is a full OpenAPI-aligned release. The primary change is a **systematic type renaming**: types that appear in API responses now have a `Response` suffix, and input types have a `Request` suffix. There are no removed features — all functionality from v5 is available in v6. Additionally, v6 adds complete coverage of the **Feeds**, **Video**, and **Moderation** product APIs.
8+
9+
## Installation
10+
11+
Update your Maven `pom.xml`:
12+
13+
```xml
14+
<dependency>
15+
<groupId>io.getstream</groupId>
16+
<artifactId>stream-sdk-java</artifactId>
17+
<version>6.0.0</version>
18+
</dependency>
19+
```
20+
21+
Or your Gradle `build.gradle`:
22+
23+
```groovy
24+
implementation 'io.getstream:stream-sdk-java:6.0.0'
25+
```
26+
27+
## Naming Conventions
28+
29+
All types use `PascalCase` and fields use `camelCase` (standard Java convention). The general rules:
30+
31+
- Types returned in API responses: `Foo``FooResponse`
32+
- Types used as API inputs: `Foo``FooRequest`
33+
- Some moderation action payloads: `FooRequest``FooRequestPayload`
34+
35+
## Breaking Changes
36+
37+
### Common / Shared Types
38+
39+
| v5 | v6 | Notes |
40+
| --- | --- | --- |
41+
| `ApplicationConfig` | `AppResponseFields` | App configuration in responses |
42+
| `ChannelPushPreferences` | `ChannelPushPreferencesResponse` | Per-channel push settings |
43+
| `Device` | `DeviceResponse` | Device data (push, voip) |
44+
| `Event` | `WSEvent` | WebSocket event envelope |
45+
| `FeedsPreferences` | `FeedsPreferencesResponse` | Feeds push preferences |
46+
| `ImportV2Task` | `ImportV2TaskItem` | V2 import task |
47+
| `OwnUser` | `OwnUserResponse` | Authenticated user data |
48+
| `Pager` | `PagerResponse` | Now cursor-based (`next`/`prev`) |
49+
| `PushPreferences` | `PushPreferencesResponse` | Push preferences |
50+
| `PushTemplate` | `PushTemplateResponse` | Push template |
51+
| `PrivacySettings` | `PrivacySettingsResponse` | Typing indicators, read receipts |
52+
| `RateLimitInfo` | `LimitInfoResponse` | Rate limit info |
53+
| `SortParam` | `SortParamRequest` | Sort parameter for queries |
54+
| `User` | `UserResponse` | Full user in responses |
55+
| `UserBlock` | `BlockedUserResponse` | Blocked user details |
56+
| `UserCustomEvent` | `CustomEvent` | Custom user event |
57+
| `UserMute` | `UserMuteResponse` | User mute details |
58+
59+
### Event System
60+
61+
| Before (v5) | After (v6) | Notes |
62+
| --- | --- | --- |
63+
| `BaseEvent` (field `T`) | `Event` (field `type`) | Base event type |
64+
| `Event` (WS envelope) | `WSEvent` | WebSocket event wrapper |
65+
| `*Preset` embeds | `Has*` composition types | e.g., `HasChannel`, `HasMessage` |
66+
|| `WHEvent` | New webhook envelope type |
67+
68+
New composition types: `HasOwnUser`, `HasUserCommonFields`, `HasUserPrivacyFields`, `HasOptionalUserCommonFields`, `HasChannel`, `HasOptionalChannel`, `HasMessage`, `HasOptionalMessage`, `HasThreadParticipants`, `HasChannelTypeAndID`.
69+
70+
### Chat Types
71+
72+
| v5 | v6 | Notes |
73+
| --- | --- | --- |
74+
| `Campaign` | `CampaignResponse` | |
75+
| `CampaignStats` | `CampaignStatsResponse` | |
76+
| `Channel` | `ChannelResponse` | |
77+
| `ChannelConfigFields` | `ChannelConfigWithInfo` | Channel config + commands/grants |
78+
| `ChannelMember` | `ChannelMemberResponse` | |
79+
| `ChannelTypeConfigWithInfo` | `ChannelTypeConfig` | |
80+
| `ConfigOverrides` | `ConfigOverridesRequest` | |
81+
| `DraftMessage` / `DraftMessagePayload` | `DraftResponse` | Two types merged into one |
82+
| `Message` | `MessageResponse` | |
83+
| `MessageReminder` | `ReminderResponseData` | |
84+
| `PendingMessage` | `PendingMessageResponse` | |
85+
| `Poll` | `PollResponse` | |
86+
| `PollOption` | `PollOptionResponse` | |
87+
| `PollVote` | `PollVoteResponse` | |
88+
| `Reaction` | `ReactionResponse` | |
89+
| `ReadState` | `ReadStateResponse` | |
90+
| `Thread` | `ThreadResponse` | |
91+
92+
### Video Types
93+
94+
| v5 | v6 | Notes |
95+
| --- | --- | --- |
96+
| `AudioSettings` | `AudioSettingsResponse` | |
97+
| `BackstageSettings` | `BackstageSettingsResponse` | |
98+
| `BroadcastSettings` | `BroadcastSettingsResponse` | |
99+
| `Call` | `CallResponse` | |
100+
| `CallEgress` | `EgressResponse` | |
101+
| `CallMember` | `MemberResponse` | Note: not `CallMemberResponse` |
102+
| `CallParticipant` | `CallParticipantResponse` | |
103+
| `CallParticipantFeedback` | *(removed)* | Use `CollectUserFeedbackRequest` |
104+
| `CallSession` | `CallSessionResponse` | |
105+
| `CallSettings` | `CallSettingsResponse` | |
106+
| `CallType` | `CallTypeResponse` | |
107+
| `EventNotificationSettings` | `EventNotificationSettingsResponse` | |
108+
| `FrameRecordSettings` | `FrameRecordingSettingsResponse` | `Recording` inserted in name |
109+
| `GeofenceSettings` | `GeofenceSettingsResponse` | |
110+
| `HLSSettings` | `HLSSettingsResponse` | |
111+
| `IndividualRecordSettings` | `IndividualRecordingSettingsResponse` | `Recording` inserted in name |
112+
| `IngressSettings` | `IngressSettingsResponse` | |
113+
| `IngressSource` | `IngressSourceResponse` | |
114+
| `IngressAudioEncodingOptions` | `IngressAudioEncodingResponse` | Shortened name |
115+
| `IngressVideoEncodingOptions` | `IngressVideoEncodingResponse` | Shortened name |
116+
| `IngressVideoLayer` | `IngressVideoLayerResponse` | |
117+
| `LimitsSettings` | `LimitsSettingsResponse` | |
118+
| `NotificationSettings` | `NotificationSettingsResponse` | |
119+
| `RawRecordSettings` | `RawRecordingSettingsResponse` | `Recording` inserted in name |
120+
| `RecordSettings` | `RecordSettingsResponse` | |
121+
| `RingSettings` | `RingSettingsResponse` | |
122+
| `RTMPSettings` | `RTMPSettingsResponse` | |
123+
| `ScreensharingSettings` | `ScreensharingSettingsResponse` | |
124+
| `SessionSettings` | `SessionSettingsResponse` | |
125+
| `SIPCallConfigs` | `SIPCallConfigsResponse` | |
126+
| `SIPCallerConfigs` | `SIPCallerConfigsResponse` | |
127+
| `SIPDirectRoutingRuleCallConfigs` | `SIPDirectRoutingRuleCallConfigsResponse` | |
128+
| `SIPInboundRoutingRules` | `SIPInboundRoutingRuleResponse` | Plural → singular |
129+
| `SIPPinProtectionConfigs` | `SIPPinProtectionConfigsResponse` | |
130+
| `SIPTrunk` | `SIPTrunkResponse` | |
131+
| `ThumbnailsSettings` | `ThumbnailsSettingsResponse` | |
132+
| `TranscriptionSettings` | `TranscriptionSettingsResponse` | |
133+
| `VideoSettings` | `VideoSettingsResponse` | |
134+
135+
### Moderation Types
136+
137+
| v5 | v6 | Notes |
138+
| --- | --- | --- |
139+
| `ActionLog` | `ActionLogResponse` | |
140+
| `Appeal` | `AppealItemResponse` | |
141+
| `AutomodDetails` | `AutomodDetailsResponse` | |
142+
| `Ban` | `BanInfoResponse` | |
143+
| `BanOptions` | *(removed)* | Merged into `BanActionRequestPayload` |
144+
| `BanActionRequest` | `BanActionRequestPayload` | |
145+
| `BlockActionRequest` | `BlockActionRequestPayload` | |
146+
| `BlockedMessage` | *(removed)* | Internal only |
147+
| `CustomActionRequest` | `CustomActionRequestPayload` | |
148+
| `DeleteMessageRequest` | `DeleteMessageRequestPayload` | |
149+
| `DeleteUserRequest` | `DeleteUserRequestPayload` | |
150+
| `EntityCreator` | `EntityCreatorResponse` | |
151+
| `Evaluation` | `EvaluationResponse` | |
152+
| `FeedsModerationTemplate` | `QueryFeedModerationTemplate` | No `Response` suffix |
153+
| `FeedsModerationTemplateConfig` | `FeedsModerationTemplateConfigPayload` | |
154+
| `Flag` | *(removed)* | Use `ModerationFlagResponse` |
155+
| `Flag2` | `ModerationFlagResponse` | |
156+
| `FlagDetails` | `FlagDetailsResponse` | |
157+
| `FlagFeedback` | `FlagFeedbackResponse` | |
158+
| `FlagMessageDetails` | `FlagMessageDetailsResponse` | |
159+
| `FlagReport` | *(removed)* | Internal only |
160+
| `FutureChannelBan` | `FutureChannelBanResponse` | |
161+
| `MarkReviewedRequest` | `MarkReviewedRequestPayload` | |
162+
| `Match` | `MatchResponse` | |
163+
| `ModerationActionConfig` | `ModerationActionConfigResponse` | |
164+
| `ModerationBulkSubmitActionRequest` | `BulkSubmitActionRequest` | `Moderation` prefix dropped |
165+
| `ModerationConfig` | `ConfigResponse` | |
166+
| `ModerationFlags` | *(removed)* | Use `List<ModerationFlagResponse>` |
167+
| `ModerationLog` | *(removed)* | Use `ActionLogResponse` |
168+
| `ModerationLogResponse` | *(removed)* | Use `QueryModerationLogsResponse` |
169+
| `ModerationUsageStats` | `ModerationUsageStatsResponse` | |
170+
| `RestoreActionRequest` | `RestoreActionRequestPayload` | |
171+
| `ReviewQueueItem` | `ReviewQueueItemResponse` | |
172+
| `Rule` | `RuleResponse` | |
173+
| `ShadowBlockActionRequest` | `ShadowBlockActionRequestPayload` | |
174+
| `Task` | `TaskResponse` | |
175+
| `Trigger` | `TriggerResponse` | |
176+
| `UnbanActionRequest` | `UnbanActionRequestPayload` | |
177+
| `UnblockActionRequest` | `UnblockActionRequestPayload` | |
178+
| `VideoEndCallRequest` | `VideoEndCallRequestPayload` | |
179+
| `VideoKickUserRequest` | `VideoKickUserRequestPayload` | |
180+
181+
### Feeds Types
182+
183+
| v5 | v6 | Notes |
184+
| --- | --- | --- |
185+
| `Activity` | `ActivityResponse` | |
186+
| `ActivityFeedback` | `ActivityFeedbackRequest` | Request-only (no `Response` suffix) |
187+
| `ActivityMark` | `MarkActivityRequest` | |
188+
| `ActivityPin` | `ActivityPinResponse` | |
189+
| `AggregatedActivity` | `AggregatedActivityResponse` | |
190+
| `Bookmark` | `BookmarkResponse` | |
191+
| `BookmarkFolder` | `BookmarkFolderResponse` | |
192+
| `Collection` | `CollectionResponse` | |
193+
| `Comment` | `CommentResponse` | |
194+
| `CommentMedia` | *(removed)* | Embedded inline in `CommentResponse` |
195+
| `CommentMention` | *(removed)* | Embedded inline in `CommentResponse` |
196+
| `DenormalizedFeedsReaction` | *(removed)* | Internal only |
197+
| `Feed` | `FeedResponse` | |
198+
| `FeedGroup` | `FeedGroupResponse` | |
199+
| `FeedMember` | `FeedMemberResponse` | |
200+
| `FeedsReaction` | `FeedsReactionResponse` | |
201+
| `FeedsReactionGroup` | `FeedsReactionGroupResponse` | |
202+
| `FeedSuggestion` | `FeedSuggestionResponse` | |
203+
| `FeedView` | `FeedViewResponse` | |
204+
| `FeedVisibilityInfo` | `FeedVisibilityResponse` | |
205+
| `Follow` | `FollowResponse` | |
206+
| `MembershipLevel` | `MembershipLevelResponse` | |
207+
| `ThreadedComment` | `ThreadedCommentResponse` | |
208+
209+
## Getting Help
210+
211+
- [Stream documentation](https://getstream.io/docs/)
212+
- [GitHub Issues](https://github.com/GetStream/stream-sdk-java/issues)
213+
- [Stream support](https://getstream.io/contact/support/)

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=5.0.1
1+
version=6.0.0-beta.1

0 commit comments

Comments
 (0)