Skip to content

Commit c5d8f38

Browse files
release: 5.1.0 (#534)
* feat(api): api update (#533) * feat(client): support setting base URL via env var (#535) * chore(internal): expand CI branch coverage (#536) * fix(client): bump to better jackson version (#537) * refactor(client): deduplicate page response classes (#538) feat(client): make pagination robust to missing data docs: add comments for page methods * feat(api): benefits mutation API endpoints (create benefit, update benefit, enroll individual, unenroll individual) now properly return async response types (#539) * chore: fix typo (#540) * refactor(client): migrate pages to builder pattern (#541) * feat(api): add models for hrs benefits individuals async responses * chore: fix typo * chore(internal): reduce CI branch coverage * fix(client): page compilation error * release: 5.1.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent c324360 commit c5d8f38

103 files changed

Lines changed: 6717 additions & 5447 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ jobs:
1212
lint:
1313
name: lint
1414
runs-on: ubuntu-latest
15-
16-
1715
steps:
1816
- uses: actions/checkout@v4
1917

@@ -34,7 +32,6 @@ jobs:
3432
test:
3533
name: test
3634
runs-on: ubuntu-latest
37-
3835
steps:
3936
- uses: actions/checkout@v4
4037

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "5.0.0"
2+
".": "5.1.0"
33
}

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 45
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-14d375aab89e6b212fe459805a42d6ea7d7da8eae2037ae710a187d06911be1d.yml
3-
openapi_spec_hash: 08b86ecbec3323717d48e4aaee48ed54
4-
config_hash: ce10384813f68ba3fed61c7b601b396b
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-bf858f37d7ab420841ddc6329dad8c46377308b6a5c8e935908011d0f9845e22.yml
3+
openapi_spec_hash: 2523952a32436e3c7fd3b55508c2e7ee
4+
config_hash: 53778a0b839c4f6ad34fbba051f5e8a6

CHANGELOG.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
11
# Changelog
22

3+
## 5.1.0 (2025-04-11)
4+
5+
Full Changelog: [v5.0.0...v5.1.0](https://github.com/Finch-API/finch-api-java/compare/v5.0.0...v5.1.0)
6+
7+
### Features
8+
9+
* **api:** add models for hrs benefits individuals async responses ([511b7fb](https://github.com/Finch-API/finch-api-java/commit/511b7fb4b6969bfded3c4f021753c1823b10baf1))
10+
* **api:** api update ([#533](https://github.com/Finch-API/finch-api-java/issues/533)) ([a7c802c](https://github.com/Finch-API/finch-api-java/commit/a7c802c84dff751a252c17ea3d4b19624792cba1))
11+
* **api:** benefits mutation API endpoints (create benefit, update benefit, enroll individual, unenroll individual) now properly return async response types ([#539](https://github.com/Finch-API/finch-api-java/issues/539)) ([4d1722f](https://github.com/Finch-API/finch-api-java/commit/4d1722feebfff70b762a41c6ea7c7a72299de8a8))
12+
* **client:** make pagination robust to missing data ([c054662](https://github.com/Finch-API/finch-api-java/commit/c054662ddf6e98fb805574d6851f8f81933bc07a))
13+
* **client:** support setting base URL via env var ([#535](https://github.com/Finch-API/finch-api-java/issues/535)) ([2a19f7e](https://github.com/Finch-API/finch-api-java/commit/2a19f7ec2159e69798afdb92f6f220254276a5fe))
14+
15+
16+
### Bug Fixes
17+
18+
* **client:** bump to better jackson version ([#537](https://github.com/Finch-API/finch-api-java/issues/537)) ([4b3bc8d](https://github.com/Finch-API/finch-api-java/commit/4b3bc8d9e5a06356889f49afd96b19085c0aedfe))
19+
* **client:** page compilation error ([4da1190](https://github.com/Finch-API/finch-api-java/commit/4da1190d2b90298fb4d24ac48f2b9009fb39534f))
20+
21+
22+
### Chores
23+
24+
* fix typo ([94a98e8](https://github.com/Finch-API/finch-api-java/commit/94a98e8ccff95f19fb8faf965525dd063745a3cb))
25+
* fix typo ([#540](https://github.com/Finch-API/finch-api-java/issues/540)) ([c56d73d](https://github.com/Finch-API/finch-api-java/commit/c56d73d2d29464841ec771edfa791fda80fb073f))
26+
* **internal:** expand CI branch coverage ([#536](https://github.com/Finch-API/finch-api-java/issues/536)) ([ed70465](https://github.com/Finch-API/finch-api-java/commit/ed704657d81ca00bc2e0baf40291d754b343d2aa))
27+
* **internal:** reduce CI branch coverage ([72adfa6](https://github.com/Finch-API/finch-api-java/commit/72adfa647da7ce56023200595f04f46379245ff8))
28+
29+
30+
### Documentation
31+
32+
* add comments for page methods ([c054662](https://github.com/Finch-API/finch-api-java/commit/c054662ddf6e98fb805574d6851f8f81933bc07a))
33+
34+
35+
### Refactors
36+
37+
* **client:** deduplicate page response classes ([#538](https://github.com/Finch-API/finch-api-java/issues/538)) ([c054662](https://github.com/Finch-API/finch-api-java/commit/c054662ddf6e98fb805574d6851f8f81933bc07a))
38+
* **client:** migrate pages to builder pattern ([#541](https://github.com/Finch-API/finch-api-java/issues/541)) ([5463e75](https://github.com/Finch-API/finch-api-java/commit/5463e75521312f9b219be62a6c7b4d090bec0754))
39+
340
## 5.0.0 (2025-04-08)
441

542
Full Changelog: [v4.2.0...v5.0.0](https://github.com/Finch-API/finch-api-java/compare/v4.2.0...v5.0.0)

README.md

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<!-- x-release-please-start-version -->
44

5-
[![Maven Central](https://img.shields.io/maven-central/v/com.tryfinch.api/finch-java)](https://central.sonatype.com/artifact/com.tryfinch.api/finch-java/5.0.0)
6-
[![javadoc](https://javadoc.io/badge2/com.tryfinch.api/finch-java/5.0.0/javadoc.svg)](https://javadoc.io/doc/com.tryfinch.api/finch-java/5.0.0)
5+
[![Maven Central](https://img.shields.io/maven-central/v/com.tryfinch.api/finch-java)](https://central.sonatype.com/artifact/com.tryfinch.api/finch-java/5.1.0)
6+
[![javadoc](https://javadoc.io/badge2/com.tryfinch.api/finch-java/5.1.0/javadoc.svg)](https://javadoc.io/doc/com.tryfinch.api/finch-java/5.1.0)
77

88
<!-- x-release-please-end -->
99

@@ -15,7 +15,7 @@ It is generated with [Stainless](https://www.stainless.com/).
1515

1616
<!-- x-release-please-start-version -->
1717

18-
The REST API documentation can be found on [developer.tryfinch.com](https://developer.tryfinch.com/). Javadocs are also available on [javadoc.io](https://javadoc.io/doc/com.tryfinch.api/finch-java/5.0.0).
18+
The REST API documentation can be found on [developer.tryfinch.com](https://developer.tryfinch.com/). Javadocs are also available on [javadoc.io](https://javadoc.io/doc/com.tryfinch.api/finch-java/5.1.0).
1919

2020
<!-- x-release-please-end -->
2121

@@ -26,7 +26,7 @@ The REST API documentation can be found on [developer.tryfinch.com](https://deve
2626
### Gradle
2727

2828
```kotlin
29-
implementation("com.tryfinch.api:finch-java:5.0.0")
29+
implementation("com.tryfinch.api:finch-java:5.1.0")
3030
```
3131

3232
### Maven
@@ -35,7 +35,7 @@ implementation("com.tryfinch.api:finch-java:5.0.0")
3535
<dependency>
3636
<groupId>com.tryfinch.api</groupId>
3737
<artifactId>finch-java</artifactId>
38-
<version>5.0.0</version>
38+
<version>5.1.0</version>
3939
</dependency>
4040
```
4141

@@ -54,7 +54,7 @@ import com.tryfinch.api.models.HrisDirectoryListPage;
5454
import com.tryfinch.api.models.HrisDirectoryListParams;
5555

5656
FinchClient client = FinchOkHttpClient.builder()
57-
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET` and `FINCH_WEBHOOK_SECRET` environment variables
57+
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET`, `FINCH_WEBHOOK_SECRET` and `FINCH_BASE_URL` environment variables
5858
.fromEnv()
5959
.accessToken("My Access Token")
6060
.build();
@@ -71,7 +71,7 @@ import com.tryfinch.api.client.FinchClient;
7171
import com.tryfinch.api.client.okhttp.FinchOkHttpClient;
7272

7373
FinchClient client = FinchOkHttpClient.builder()
74-
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET` and `FINCH_WEBHOOK_SECRET` environment variables
74+
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET`, `FINCH_WEBHOOK_SECRET` and `FINCH_BASE_URL` environment variables
7575
.fromEnv()
7676
.accessToken("My Access Token")
7777
.build();
@@ -95,19 +95,20 @@ import com.tryfinch.api.client.FinchClient;
9595
import com.tryfinch.api.client.okhttp.FinchOkHttpClient;
9696

9797
FinchClient client = FinchOkHttpClient.builder()
98-
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET` and `FINCH_WEBHOOK_SECRET` environment variables
98+
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET`, `FINCH_WEBHOOK_SECRET` and `FINCH_BASE_URL` environment variables
9999
.fromEnv()
100100
.accessToken("My Access Token")
101101
.build();
102102
```
103103

104104
See this table for the available options:
105105

106-
| Setter | Environment variable | Required | Default value |
107-
| --------------- | ---------------------- | -------- | ------------- |
108-
| `clientId` | `FINCH_CLIENT_ID` | false | - |
109-
| `clientSecret` | `FINCH_CLIENT_SECRET` | false | - |
110-
| `webhookSecret` | `FINCH_WEBHOOK_SECRET` | false | - |
106+
| Setter | Environment variable | Required | Default value |
107+
| --------------- | ---------------------- | -------- | ---------------------------- |
108+
| `clientId` | `FINCH_CLIENT_ID` | false | - |
109+
| `clientSecret` | `FINCH_CLIENT_SECRET` | false | - |
110+
| `webhookSecret` | `FINCH_WEBHOOK_SECRET` | false | - |
111+
| `baseUrl` | `FINCH_BASE_URL` | true | `"https://api.tryfinch.com"` |
111112

112113
> [!TIP]
113114
> Don't create more than one client in the same application. Each client has a connection pool and
@@ -139,7 +140,7 @@ import com.tryfinch.api.models.HrisDirectoryListParams;
139140
import java.util.concurrent.CompletableFuture;
140141

141142
FinchClient client = FinchOkHttpClient.builder()
142-
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET` and `FINCH_WEBHOOK_SECRET` environment variables
143+
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET`, `FINCH_WEBHOOK_SECRET` and `FINCH_BASE_URL` environment variables
143144
.fromEnv()
144145
.accessToken("My Access Token")
145146
.build();
@@ -157,7 +158,7 @@ import com.tryfinch.api.models.HrisDirectoryListParams;
157158
import java.util.concurrent.CompletableFuture;
158159

159160
FinchClientAsync client = FinchOkHttpClientAsync.builder()
160-
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET` and `FINCH_WEBHOOK_SECRET` environment variables
161+
// Configures using the `FINCH_CLIENT_ID`, `FINCH_CLIENT_SECRET`, `FINCH_WEBHOOK_SECRET` and `FINCH_BASE_URL` environment variables
161162
.fromEnv()
162163
.accessToken("My Access Token")
163164
.build();

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ repositories {
88

99
allprojects {
1010
group = "com.tryfinch.api"
11-
version = "5.0.0" // x-release-please-version
11+
version = "5.1.0" // x-release-please-version
1212
}
1313

1414
subprojects {

finch-java-client-okhttp/src/main/kotlin/com/tryfinch/api/client/okhttp/FinchOkHttpClient.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,10 @@ class FinchOkHttpClient private constructor() {
2929
class Builder internal constructor() {
3030

3131
private var clientOptions: ClientOptions.Builder = ClientOptions.builder()
32-
private var baseUrl: String = ClientOptions.PRODUCTION_URL
3332
private var timeout: Timeout = Timeout.default()
3433
private var proxy: Proxy? = null
3534

36-
fun baseUrl(baseUrl: String) = apply {
37-
clientOptions.baseUrl(baseUrl)
38-
this.baseUrl = baseUrl
39-
}
35+
fun baseUrl(baseUrl: String) = apply { clientOptions.baseUrl(baseUrl) }
4036

4137
/**
4238
* Whether to throw an exception if any of the Jackson versions detected at runtime are
@@ -190,7 +186,7 @@ class FinchOkHttpClient private constructor() {
190186
clientOptions
191187
.httpClient(
192188
OkHttpClient.builder()
193-
.baseUrl(baseUrl)
189+
.baseUrl(clientOptions.baseUrl())
194190
.timeout(timeout)
195191
.proxy(proxy)
196192
.build()

finch-java-client-okhttp/src/main/kotlin/com/tryfinch/api/client/okhttp/FinchOkHttpClientAsync.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,10 @@ class FinchOkHttpClientAsync private constructor() {
2929
class Builder internal constructor() {
3030

3131
private var clientOptions: ClientOptions.Builder = ClientOptions.builder()
32-
private var baseUrl: String = ClientOptions.PRODUCTION_URL
3332
private var timeout: Timeout = Timeout.default()
3433
private var proxy: Proxy? = null
3534

36-
fun baseUrl(baseUrl: String) = apply {
37-
clientOptions.baseUrl(baseUrl)
38-
this.baseUrl = baseUrl
39-
}
35+
fun baseUrl(baseUrl: String) = apply { clientOptions.baseUrl(baseUrl) }
4036

4137
/**
4238
* Whether to throw an exception if any of the Jackson versions detected at runtime are
@@ -190,7 +186,7 @@ class FinchOkHttpClientAsync private constructor() {
190186
clientOptions
191187
.httpClient(
192188
OkHttpClient.builder()
193-
.baseUrl(baseUrl)
189+
.baseUrl(clientOptions.baseUrl())
194190
.timeout(timeout)
195191
.proxy(proxy)
196192
.build()

finch-java-core/build.gradle.kts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ configurations.all {
1717
}
1818

1919
dependencies {
20-
api("com.fasterxml.jackson.core:jackson-core:2.18.1")
21-
api("com.fasterxml.jackson.core:jackson-databind:2.18.1")
20+
api("com.fasterxml.jackson.core:jackson-core:2.18.2")
21+
api("com.fasterxml.jackson.core:jackson-databind:2.18.2")
2222
api("com.google.errorprone:error_prone_annotations:2.33.0")
2323

24-
implementation("com.fasterxml.jackson.core:jackson-annotations:2.18.1")
25-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.1")
26-
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.1")
27-
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.1")
24+
implementation("com.fasterxml.jackson.core:jackson-annotations:2.18.2")
25+
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.2")
26+
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.2")
27+
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.2")
2828
implementation("org.apache.httpcomponents.core5:httpcore5:5.2.4")
2929
implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
3030

finch-java-core/src/main/kotlin/com/tryfinch/api/core/Check.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ internal fun checkMaxLength(name: String, value: String, maxLength: Int): String
4747
internal fun checkJacksonVersionCompatibility() {
4848
val incompatibleJacksonVersions =
4949
RUNTIME_JACKSON_VERSIONS.mapNotNull {
50+
val badVersionReason = BAD_JACKSON_VERSIONS[it.toString()]
5051
when {
5152
it.majorVersion != MINIMUM_JACKSON_VERSION.majorVersion ->
5253
it to "incompatible major version"
@@ -55,6 +56,7 @@ internal fun checkJacksonVersionCompatibility() {
5556
it.minorVersion == MINIMUM_JACKSON_VERSION.minorVersion &&
5657
it.patchLevel < MINIMUM_JACKSON_VERSION.patchLevel ->
5758
it to "patch version too low"
59+
badVersionReason != null -> it to badVersionReason
5860
else -> null
5961
}
6062
}
@@ -77,6 +79,8 @@ Double-check that you are depending on compatible Jackson versions.
7779
}
7880

7981
private val MINIMUM_JACKSON_VERSION: Version = VersionUtil.parseVersion("2.13.4", null, null)
82+
private val BAD_JACKSON_VERSIONS: Map<String, String> =
83+
mapOf("2.18.1" to "due to https://github.com/FasterXML/jackson-databind/issues/4639")
8084
private val RUNTIME_JACKSON_VERSIONS: List<Version> =
8185
listOf(
8286
com.fasterxml.jackson.core.json.PackageVersion.VERSION,

0 commit comments

Comments
 (0)