@@ -5,51 +5,39 @@ All notable changes to the AxonFlow Java SDK will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8- ## [ 3.0.0] - 2026-01-08
9-
10- ### Breaking Changes
11-
12- - ** BREAKING** : Removed ` licenseKey ` config option - use ` clientId ` and ` clientSecret ` instead
13- - ** BREAKING** : Removed ` X-License-Key ` header support - SDK now uses only OAuth2 Basic auth
14- - ** BREAKING** : ` clientId ` and ` clientSecret ` are now required for all enterprise features
8+ ## [ 2.2.0] - 2026-01-08
159
1610### Added
1711
12+ - ** OAuth2-style client credentials** : New ` clientId() ` and ` clientSecret() ` builder methods following OAuth2 client credentials pattern.
13+ - ` clientId ` is used for request identification (required for most API calls)
14+ - ` clientSecret ` is optional - community/self-hosted deployments work without it
15+
1816- ** Enterprise: Close PR** (` closePR ` ): Close a PR without merging and optionally delete the branch
1917 - Useful for cleaning up test/demo PRs created by code governance examples
2018 - Supports all Git providers: GitHub, GitLab, Bitbucket
2119 - Requires enterprise portal authentication
22- - ** PRRecord.closedAt** : Added optional ` closedAt ` field to track when a PR was closed
2320
2421### Changed
2522
26- - ** OAuth2-Only Authentication** : Simplified authentication to use only OAuth2 Basic auth
27- - Uses ` Authorization: Basic base64(clientId:clientSecret) ` header
28- - Removed ` X-License-Key ` and non-standard ` X-Client-ID ` /` X-Client-Secret ` headers
29- - Aligns with industry-standard OAuth2 client credentials pattern
30-
31- ### Fixed
23+ - ** Simplified authentication** : For community mode, simply provide ` clientId ` for request identification. No ` clientSecret ` needed.
3224
33- - ** getPlanStatus endpoint** : Fixed endpoint path from ` /api/v1/orchestrator/plan/{id} ` to ` /api/v1/plan/{id} ` to match agent proxy routes
34-
35- ### Migration Guide
36-
37- ** Before (v2.x):**
3825``` java
39- AxonFlowConfig config = AxonFlowConfig . builder()
26+ // Community mode - no secret needed
27+ AxonFlowClient client = AxonFlowClient . builder()
4028 .endpoint(" http://localhost:8080" )
41- .licenseKey( " AXON-V2-... " )
29+ .clientId( " my-app " ) // Used for request identification
4230 .build();
4331```
4432
45- ** After (v3.0.0): **
46- ``` java
47- AxonFlowConfig config = AxonFlowConfig . builder()
48- .endpoint( " http://localhost:8080 " )
49- .clientId( " my-client-id " )
50- .clientSecret( " my-client-secret " )
51- .build();
52- ```
33+ ### Fixed
34+
35+ - ** getPlanStatus endpoint ** : Fixed endpoint path from ` /api/v1/orchestrator/plan/{id} ` to ` /api/v1/plan/{id} ` to match agent proxy routes
36+
37+ ### Enterprise
38+
39+ - OAuth2 Basic auth: ` Authorization: Basic base64(clientId:clientSecret) ` replaces ` X-License-Key ` header
40+ - Removed ` licenseKey() ` builder method (use ` clientId() ` / ` clientSecret() ` )
5341
5442## [ 2.1.2] - 2026-01-07
5543
0 commit comments