Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,8 @@ src/main/java/dev/openfga/sdk/api/client/model/ClientWriteAssertionsResponse.jav
src/main/java/dev/openfga/sdk/api/client/model/ClientWriteAuthorizationModelResponse.java
src/main/java/dev/openfga/sdk/api/client/model/ClientWriteRequest.java
src/main/java/dev/openfga/sdk/api/client/model/ClientWriteResponse.java
src/main/java/dev/openfga/sdk/api/client/model/ClientWriteSingleResponse.java
src/main/java/dev/openfga/sdk/api/client/model/ClientWriteStatus.java
src/main/java/dev/openfga/sdk/api/configuration/AdditionalHeadersSupplier.java
src/main/java/dev/openfga/sdk/api/configuration/ApiToken.java
src/main/java/dev/openfga/sdk/api/configuration/BaseConfiguration.java
Expand Down Expand Up @@ -302,7 +304,10 @@ src/main/java/dev/openfga/sdk/telemetry/Histograms.java
src/main/java/dev/openfga/sdk/telemetry/Metric.java
src/main/java/dev/openfga/sdk/telemetry/Metrics.java
src/main/java/dev/openfga/sdk/telemetry/Telemetry.java
src/main/java/dev/openfga/sdk/util/ExponentialBackoff.java
src/main/java/dev/openfga/sdk/util/Pair.java
src/main/java/dev/openfga/sdk/util/RetryAfterHeaderParser.java
src/main/java/dev/openfga/sdk/util/RetryStrategy.java
src/main/java/dev/openfga/sdk/util/StringUtil.java
src/main/java/dev/openfga/sdk/util/Validation.java
src/test-integration/java/dev/openfga/sdk/api/OpenFgaApiIntegrationTest.java
Expand All @@ -317,6 +322,7 @@ src/test/java/dev/openfga/sdk/api/OpenFgaApiTest.java
src/test/java/dev/openfga/sdk/api/auth/AccessTokenTest.java
src/test/java/dev/openfga/sdk/api/auth/OAuth2ClientTest.java
src/test/java/dev/openfga/sdk/api/client/ApiClientTest.java
src/test/java/dev/openfga/sdk/api/client/HttpRequestAttemptRetryTest.java
src/test/java/dev/openfga/sdk/api/client/OpenFgaClientTest.java
src/test/java/dev/openfga/sdk/api/configuration/ClientCredentialsTest.java
src/test/java/dev/openfga/sdk/api/configuration/ConfigurationTest.java
Expand All @@ -330,6 +336,9 @@ src/test/java/dev/openfga/sdk/telemetry/HistogramsTest.java
src/test/java/dev/openfga/sdk/telemetry/MetricTest.java
src/test/java/dev/openfga/sdk/telemetry/MetricsTest.java
src/test/java/dev/openfga/sdk/telemetry/TelemetryTest.java
src/test/java/dev/openfga/sdk/util/ExponentialBackoffTest.java
src/test/java/dev/openfga/sdk/util/PairTest.java
src/test/java/dev/openfga/sdk/util/RetryAfterHeaderParserTest.java
src/test/java/dev/openfga/sdk/util/RetryStrategyTest.java
src/test/java/dev/openfga/sdk/util/StringUtilTest.java
src/test/java/dev/openfga/sdk/util/ValidationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ public void run(String apiUrl) throws Exception {
if (System.getenv("FGA_CLIENT_ID") != null) {
credentials = new Credentials(new ClientCredentials()
.apiAudience(System.getenv("FGA_API_AUDIENCE"))
.apiTokenIssuer(System.getenv("FGA_TOKEN_ISSUER"))
.clientId("FGA_CLIENT_ID")
.clientSecret("FGA_CLIENT_SECRET"));
.apiTokenIssuer(System.getenv("FGA_API_TOKEN_ISSUER"))
.clientId(System.getenv("FGA_CLIENT_ID"))
.clientSecret(System.getenv("FGA_CLIENT_SECRET")));
} else {
System.out.println("Proceeding with no credentials (expecting localhost)");
}
Expand Down Expand Up @@ -102,10 +102,20 @@ public void run(String apiUrl) throws Exception {
fgaClient
.write(
new ClientWriteRequest()
.writes(List.of(new ClientTupleKey()
.user("user:anne")
.relation("writer")
._object("document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"))),
.writes(List.of(
new ClientTupleKey()
.user("user:anne")
.relation("writer")
._object("document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"),
new ClientTupleKey()
.user("user:anne")
.relation("writer")
._object("document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"), // duplicate
new ClientTupleKey()
.user("user:anne")
.relation("owner")
._object("document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a") // different relation
)),
new ClientWriteOptions()
.disableTransactions(true)
.authorizationModelId(authorizationModel.getAuthorizationModelId()))
Expand Down
7 changes: 7 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
}
}

rootProject.name = 'openfga-sdk'
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ private CompletableFuture<ApiResponse<T>> handleHttpErrorRetry(
Duration retryDelay =
RetryStrategy.calculateRetryDelay(retryAfterDelay, retryNumber, configuration.getMinimumRetryDelay());

// Add telemetry for HTTP error retry
addTelemetryAttribute(Attributes.HTTP_REQUEST_RESEND_COUNT, String.valueOf(retryNumber + 1));

return delayedRetry(retryDelay, retryNumber + 1, error);
}

Expand Down Expand Up @@ -184,8 +187,13 @@ private CompletableFuture<ApiResponse<T>> processHttpResponse(
response.headers().firstValue("fga-query-duration-ms").orElse(null);

if (!isNullOrWhitespace(queryDuration)) {
double queryDurationDouble = Double.parseDouble(queryDuration);
telemetry.metrics().queryDuration(queryDurationDouble, this.getTelemetryAttributes());
try {
double queryDurationDouble = Double.parseDouble(queryDuration);
telemetry.metrics().queryDuration(queryDurationDouble, this.getTelemetryAttributes());
} catch (NumberFormatException e) {
// Ignore malformed fga-query-duration-ms header values to prevent exceptions
// on otherwise valid responses. The telemetry metric will simply not be recorded.
}
}
}

Expand Down
Loading
Loading