Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@rhamzeh
Copy link
Member

@rhamzeh rhamzeh commented Oct 15, 2025

Description

Generated from: openfga/sdk-generator#638

What problem is being solved?

How is it being solved?

What changes are made to solve it?

References

Review Checklist

  • I have clicked on "allow edits by maintainers".
  • I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
  • The correct base branch is being used, if not main
  • I have added tests to validate that the change in functionality is working as expected

Summary by CodeRabbit

  • New Features

    • Introduced centralized configuration constants for improved SDK consistency and maintainability.
  • Documentation

    • Updated contributing guidelines with clearer issue reporting procedures, pull request guidance, and cross-repository collaboration instructions.
    • Streamlined README to reference updated contribution documentation.
  • Chores

    • Refactored internal constants to use centralized configuration values across the codebase for better consistency.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 15, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

The PR centralizes OpenFGA SDK configuration values into a new FgaConstants class and replaces hard-coded literals throughout the codebase with references to these constants. It removes auto-generated file headers from numerous files and updates contribution documentation to redirect to a dedicated CONTRIBUTING.md file.

Changes

Cohort / File(s) Summary
Constants centralization
src/main/java/dev/openfga/sdk/constants/FgaConstants.java
New public constants class with SDK metadata, retry configuration, client method headers, connection timeouts, token management, and response header names. Contains 24 public static final fields and a private constructor.
Header removal from auth & API client files
src/main/java/dev/openfga/sdk/api/auth/CredentialsFlow*.java, src/main/java/dev/openfga/sdk/api/auth/OAuth2Client.java, src/main/java/dev/openfga/sdk/api/client/ApiClient.java, src/main/java/dev/openfga/sdk/api/client/ApiResponse.java, src/main/java/dev/openfga/sdk/api/client/ClientAssertion.java
Removal of auto-generated file header comments; no functional changes.
Header removal from client model files
src/main/java/dev/openfga/sdk/api/client/model/Client*.java (33 files)
Removal of auto-generated file header comments; no functional changes.
Header removal from configuration files
src/main/java/dev/openfga/sdk/api/configuration/Client*.java, src/main/java/dev/openfga/sdk/api/configuration/Base*.java, src/main/java/dev/openfga/sdk/api/configuration/Configuration*.java (19 files)
Removal of auto-generated file header comments; no functional changes.
Header removal from error & telemetry files
src/main/java/dev/openfga/sdk/errors/ApiException.java, src/main/java/dev/openfga/sdk/telemetry/*.java (9 files), src/main/java/dev/openfga/sdk/util/Pair.java, src/main/java/dev/openfga/sdk/util/Validation.java
Removal of auto-generated file header comments; no functional changes.
Constant references in auth
src/main/java/dev/openfga/sdk/api/auth/AccessToken.java
Replaced hard-coded token expiry constants (300 seconds) with FgaConstants.TOKEN_EXPIRY_THRESHOLD_BUFFER_IN_SEC and FgaConstants.TOKEN_EXPIRY_JITTER_IN_SEC.
Constant references in HTTP request handling
src/main/java/dev/openfga/sdk/api/client/HttpRequestAttempt.java
Replaced header names "Retry-After" and "fga-query-duration-ms" with FgaConstants.RETRY_AFTER_HEADER_NAME and FgaConstants.QUERY_DURATION_HEADER_NAME.
Constant references in client
src/main/java/dev/openfga/sdk/api/client/OpenFgaClient.java
Replaced hard-coded header keys (X-OpenFGA-Client-Method, X-OpenFga-Client-Bulk-Request-Id) and numeric defaults with FgaConstants references across multiple client methods.
Constant references in configuration
src/main/java/dev/openfga/sdk/api/configuration/Configuration.java
Replaced hard-coded defaults and retry bounds with FgaConstants values; deprecated DEFAULT_MINIMUM_RETRY_DELAY and initialized VERSION from FgaConstants.SDK_VERSION. No method signature changes.
Constant references in error handling
src/main/java/dev/openfga/sdk/errors/FgaError.java
Replaced literal "Retry-After" header name with FgaConstants.RETRY_AFTER_HEADER_NAME.
Constant references in utilities
src/main/java/dev/openfga/sdk/util/ExponentialBackoff.java, src/main/java/dev/openfga/sdk/util/RetryStrategy.java
Replaced hard-coded maximum backoff (120) with FgaConstants.MAX_BACKOFF_TIME_IN_SEC; updated retry delay source to FgaConstants.DEFAULT_MIN_WAIT_IN_MS.
Header removal from tests
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/client/ApiClientTest.java, src/test-integration/java/.../*.java (4 files)
Removal of auto-generated file header comments; no functional changes.
Constant references in tests
src/test/java/dev/openfga/sdk/api/OpenFgaApiTest.java, src/test/java/dev/openfga/sdk/api/auth/OAuth2ClientTest.java, src/test/java/dev/openfga/sdk/api/client/HttpRequestAttemptRetryTest.java, src/test/java/dev/openfga/sdk/api/client/OpenFgaClient*.java (4 files)
Replaced hard-coded API URLs (https://api.fga.example) with FgaConstants.TEST_API_URL; replaced retry and header constants with FgaConstants references.
Documentation updates
.openapi-generator-ignore, README.md, CONTRIBUTING.md
Added ignore patterns for Gradle and generated API client files; streamlined README Contributing section to link to CONTRIBUTING.md; expanded CONTRIBUTING.md with explicit issue/PR paths, security note, and clarified autogenerated file modification process.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Rationale: The diff encompasses ~100+ file modifications with extensive header removals (homogeneous, lower review density) balanced against a new public constants class, widespread constant replacement requiring verification of correct mappings, and documentation updates that shift contribution guidance. The repetitive nature of header removals reduces per-file effort, but the breadth, new public API surface, and need to verify all constant usages across the codebase warrants careful review.

Possibly related PRs

  • feat: non-transaction write fix, retry improvements, telemetry export #206: Modifies retry, backoff, client headers, and write-response-related files (ExponentialBackoff, RetryStrategy, HttpRequestAttempt, OpenFgaClient); this PR centralizes values into FgaConstants used by those components.
  • release: v0.9.1 #233: Both PRs modify Configuration.java's SDK/version-related constants; this PR centralizes defaults via FgaConstants while that PR bumps VERSION values.
  • feat: improved retry handling #186: Both PRs modify retry-related code paths (Configuration, HttpRequestAttempt, ExponentialBackoff, FgaError); this PR centralizes retry/header/backoff values while that PR implements retry strategy using those values.

Suggested reviewers

  • jimmyjames
  • evansims

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 22.60% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "chore: reduce generated code" clearly summarizes the primary objective of the changeset. The PR accomplishes this goal through multiple complementary approaches: adding .openapi-generator-ignore patterns to prevent regeneration of certain files, centralizing SDK constants in a new FgaConstants.java class to replace hardcoded values throughout the codebase, and removing auto-generated header comments from numerous files. A developer scanning the repository history would immediately understand that this PR focuses on minimizing generated code. The title is concise, avoids vague terminology, and uses the conventional "chore:" prefix appropriate for maintenance work.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov-commenter
Copy link

codecov-commenter commented Oct 15, 2025

Codecov Report

❌ Patch coverage is 82.60870% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 36.39%. Comparing base (a46765a) to head (ad2884a).

Files with missing lines Patch % Lines
...dev/openfga/sdk/api/client/HttpRequestAttempt.java 55.55% 3 Missing and 1 partial ⚠️
...v/openfga/sdk/api/configuration/Configuration.java 80.00% 1 Missing and 1 partial ⚠️
...n/java/dev/openfga/sdk/constants/FgaConstants.java 60.00% 2 Missing ⚠️

❌ Your project status has failed because the head coverage (36.39%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #238      +/-   ##
============================================
+ Coverage     36.33%   36.39%   +0.05%     
- Complexity     1140     1141       +1     
============================================
  Files           187      188       +1     
  Lines          7174     7185      +11     
  Branches        822      822              
============================================
+ Hits           2607     2615       +8     
- Misses         4462     4465       +3     
  Partials        105      105              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@rhamzeh rhamzeh force-pushed the chore/reduce-generation branch from 2cef8ad to f01bd0c Compare October 24, 2025 15:55
ewanharris
ewanharris previously approved these changes Oct 24, 2025
@rhamzeh rhamzeh marked this pull request as ready for review October 24, 2025 16:18
Copilot AI review requested due to automatic review settings October 24, 2025 16:18
@rhamzeh rhamzeh requested review from a team as code owners October 24, 2025 16:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR reduces generated code by extracting constants into a centralized FgaConstants class and removing auto-generated license headers from test and utility files. The changes consolidate magic numbers, string literals, and configuration defaults into a single location, while removing redundant OpenAPI Generator license blocks from files that are no longer auto-generated.

  • Introduces FgaConstants class to centralize SDK constants and configuration values
  • Removes auto-generated license headers from test files and utility classes
  • Updates references throughout the codebase to use the new constants class

Reviewed Changes

Copilot reviewed 123 out of 123 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/main/java/dev/openfga/sdk/constants/FgaConstants.java New constants class centralizing SDK-wide configuration values and literals
src/main/java/dev/openfga/sdk/api/configuration/Configuration.java Updated to reference FgaConstants instead of local constants
src/main/java/dev/openfga/sdk/api/client/OpenFgaClient.java Replaced local constants with references to FgaConstants
src/main/java/dev/openfga/sdk/util/RetryStrategy.java Updated to use FgaConstants.DEFAULT_MIN_WAIT_IN_MS
src/main/java/dev/openfga/sdk/util/ExponentialBackoff.java Updated to use FgaConstants.MAX_BACKOFF_TIME_IN_SEC
Test files (multiple) Removed auto-generated license headers from test and utility files
README.md Simplified contributing section to reference CONTRIBUTING.md
CONTRIBUTING.md Updated with clearer contribution guidelines
.openapi-generator/FILES Updated to reflect new file structure
Comments suppressed due to low confidence (1)

src/test/java/dev/openfga/sdk/api/client/OpenFgaClientTest.java:1

  • Unnecessary string concatenation with empty string. Remove the + \"\" suffix: .apiUrl(FgaConstants.TEST_API_URL)
package dev.openfga.sdk.api.client;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
CONTRIBUTING.md (1)

13-14: Resolve PR policy inconsistency.

ToC says “not accepting Pull Requests”, but body welcomes PRs. Align both (prefer welcoming PRs).

-* [Submitting Pull Requests](#submitting-pull-requests) [Note: We are not accepting Pull Requests at this time!]
+* [Submitting Pull Requests](#submitting-pull-requests)

Also applies to: 40-41

README.md (1)

740-758: Fix README example errors that prevent compilation.

Three code examples contain compilation errors:

  • Line 749: reequst should be request
  • Line 777: "cor-3) should be "cor-3"
  • Line 1010: .maxParallelRequests() requires an argument (e.g., .maxParallelRequests(10))

These appear at lines 749, 777, and 1010 across the specified sections.

🧹 Nitpick comments (3)
src/test/java/dev/openfga/sdk/api/client/OpenFgaClientHeadersTest.java (1)

51-51: Remove redundant string concatenation.

FgaConstants.TEST_API_URL is already a String; drop the + "".

-                .apiUrl(FgaConstants.TEST_API_URL + "")
+                .apiUrl(FgaConstants.TEST_API_URL)
src/test/java/dev/openfga/sdk/api/OpenFgaApiTest.java (1)

94-101: Unify remaining URL literals to FgaConstants.TEST_API_URL.

Multiple hard-coded "https://api.fga.example" instances remain. Replace all with FgaConstants.TEST_API_URL to match patterns used throughout the file (e.g., lines 86, 171, 240). This applies to:

  • Line 94: mockHttpClient.verify().get(...)
  • Lines 109, 119: mockHttpClient.onGet(...) and .verify().get(...)
  • Line 135: String.format("https://api.fga.example/stores?name=%s", storeName)
  • Line 159: mockHttpClient.onGet(...)
  • Lines 1398, 1425, 1452, 1479, 1506: postPath variables
src/main/java/dev/openfga/sdk/api/configuration/Configuration.java (1)

23-28: Consider enhancing the deprecation documentation.

The deprecation message states the constant "will be made private in a future release" but lacks specifics. Consider adding:

  • A target version/timeline for removal
  • Guidance on what callers should use instead (e.g., reference FgaConstants.DEFAULT_MIN_WAIT_IN_MS directly)

Example:

/**
 * @deprecated Since 0.9.2. This constant will be made private in version 1.0.0.
 * Use {@link FgaConstants#DEFAULT_MIN_WAIT_IN_MS} instead.
 */
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a46765a and f01bd0c.

📒 Files selected for processing (107)
  • .openapi-generator-ignore (1 hunks)
  • .openapi-generator/FILES (1 hunks)
  • CONTRIBUTING.md (1 hunks)
  • README.md (1 hunks)
  • src/main/java/dev/openfga/sdk/api/auth/AccessToken.java (1 hunks)
  • src/main/java/dev/openfga/sdk/api/auth/CredentialsFlowRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/auth/CredentialsFlowResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/auth/OAuth2Client.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/ApiClient.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/ApiResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/ClientAssertion.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/HttpRequestAttempt.java (3 hunks)
  • src/main/java/dev/openfga/sdk/api/client/OpenFgaClient.java (6 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckClientResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckItem.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckSingleResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientCheckRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientCheckResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientCreateStoreResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientDeleteStoreResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientExpandRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientExpandResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientGetStoreResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListObjectsRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListObjectsResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListRelationsRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListRelationsResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListStoresResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListUsersRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListUsersResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadAssertionsResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadAuthorizationModelResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadAuthorizationModelsResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadChangesRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadChangesResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientRelationshipCondition.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientTupleKey.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientTupleKeyWithoutCondition.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteAssertionsResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteAuthorizationModelResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteRequest.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteSingleResponse.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteStatus.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/AdditionalHeadersSupplier.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ApiToken.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/BaseConfiguration.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientBatchCheckClientOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientBatchCheckOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientCheckOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientConfiguration.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientCreateStoreOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientCredentials.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientDeleteStoreOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientDeleteTuplesOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientExpandOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientGetStoreOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListObjectsOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListRelationsOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListStoresOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListUsersOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadAssertionsOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadAuthorizationModelOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadAuthorizationModelsOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadChangesOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadLatestAuthorizationModelOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteAssertionsOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteAuthorizationModelOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteTuplesOptions.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/Configuration.java (5 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/ConfigurationOverride.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/Credentials.java (0 hunks)
  • src/main/java/dev/openfga/sdk/api/configuration/CredentialsMethod.java (0 hunks)
  • src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1 hunks)
  • src/main/java/dev/openfga/sdk/errors/ApiException.java (0 hunks)
  • src/main/java/dev/openfga/sdk/errors/FgaError.java (2 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Attribute.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Attributes.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Counter.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Counters.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Histogram.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Histograms.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Metric.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Metrics.java (0 hunks)
  • src/main/java/dev/openfga/sdk/telemetry/Telemetry.java (0 hunks)
  • src/main/java/dev/openfga/sdk/util/ExponentialBackoff.java (2 hunks)
  • src/main/java/dev/openfga/sdk/util/Pair.java (0 hunks)
  • src/main/java/dev/openfga/sdk/util/RetryAfterHeaderParser.java (0 hunks)
  • src/main/java/dev/openfga/sdk/util/RetryStrategy.java (2 hunks)
  • src/main/java/dev/openfga/sdk/util/StringUtil.java (0 hunks)
  • src/main/java/dev/openfga/sdk/util/Validation.java (0 hunks)
  • src/test-integration/java/dev/openfga/sdk/api/OpenFgaApiIntegrationTest.java (0 hunks)
  • src/test-integration/java/dev/openfga/sdk/api/client/OpenFgaClientIntegrationTest.java (0 hunks)
  • src/test/java/dev/openfga/sdk/api/OpenFgaApiTest.java (87 hunks)
  • src/test/java/dev/openfga/sdk/api/auth/AccessTokenTest.java (0 hunks)
  • src/test/java/dev/openfga/sdk/api/auth/OAuth2ClientTest.java (3 hunks)
  • src/test/java/dev/openfga/sdk/api/client/ApiClientTest.java (0 hunks)
  • src/test/java/dev/openfga/sdk/api/client/HttpRequestAttemptRetryTest.java (9 hunks)
  • src/test/java/dev/openfga/sdk/api/client/OpenFgaClientHeadersTest.java (36 hunks)
  • src/test/java/dev/openfga/sdk/api/client/OpenFgaClientTest.java (111 hunks)
  • src/test/java/dev/openfga/sdk/api/configuration/ClientCredentialsTest.java (0 hunks)
⛔ Files not processed due to max files limit (16)
  • src/test/java/dev/openfga/sdk/api/configuration/ConfigurationTest.java
  • src/test/java/dev/openfga/sdk/telemetry/AttributeTest.java
  • src/test/java/dev/openfga/sdk/telemetry/AttributesTest.java
  • src/test/java/dev/openfga/sdk/telemetry/CounterTest.java
  • src/test/java/dev/openfga/sdk/telemetry/CountersTest.java
  • src/test/java/dev/openfga/sdk/telemetry/HistogramTest.java
  • 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
💤 Files with no reviewable changes (90)
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckClientResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteSingleResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteAuthorizationModelResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadChangesResponse.java
  • src/main/java/dev/openfga/sdk/api/client/ApiResponse.java
  • src/main/java/dev/openfga/sdk/errors/ApiException.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadAuthorizationModelOptions.java
  • src/main/java/dev/openfga/sdk/util/StringUtil.java
  • src/main/java/dev/openfga/sdk/telemetry/Telemetry.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientRelationshipCondition.java
  • src/test-integration/java/dev/openfga/sdk/api/client/OpenFgaClientIntegrationTest.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientConfiguration.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientDeleteTuplesOptions.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientTupleKeyWithoutCondition.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientGetStoreResponse.java
  • src/main/java/dev/openfga/sdk/telemetry/Attribute.java
  • src/test/java/dev/openfga/sdk/api/auth/AccessTokenTest.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientBatchCheckClientOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListObjectsOptions.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadAuthorizationModelResponse.java
  • src/main/java/dev/openfga/sdk/util/RetryAfterHeaderParser.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientCreateStoreOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteOptions.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientCheckRequest.java
  • src/test-integration/java/dev/openfga/sdk/api/OpenFgaApiIntegrationTest.java
  • src/main/java/dev/openfga/sdk/util/Pair.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListObjectsResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadAssertionsResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientCreateStoreResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListUsersResponse.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientExpandOptions.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientExpandResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListStoresResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListRelationsRequest.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteRequest.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckSingleResponse.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteAssertionsOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientCheckOptions.java
  • src/main/java/dev/openfga/sdk/telemetry/Attributes.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteResponse.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadOptions.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListRelationsResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadAuthorizationModelsResponse.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckItem.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientCheckResponse.java
  • src/main/java/dev/openfga/sdk/telemetry/Metric.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteStatus.java
  • src/main/java/dev/openfga/sdk/api/auth/CredentialsFlowRequest.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientDeleteStoreResponse.java
  • src/main/java/dev/openfga/sdk/util/Validation.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadChangesOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadAssertionsOptions.java
  • src/main/java/dev/openfga/sdk/telemetry/Counters.java
  • src/main/java/dev/openfga/sdk/api/auth/CredentialsFlowResponse.java
  • src/main/java/dev/openfga/sdk/api/auth/OAuth2Client.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadAuthorizationModelsOptions.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientTupleKey.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckRequest.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientBatchCheckResponse.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientDeleteStoreOptions.java
  • src/main/java/dev/openfga/sdk/api/client/ApiClient.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadResponse.java
  • src/main/java/dev/openfga/sdk/api/client/ClientAssertion.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListUsersOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListRelationsOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/Credentials.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientWriteAssertionsResponse.java
  • src/main/java/dev/openfga/sdk/telemetry/Counter.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListUsersRequest.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientListStoresOptions.java
  • src/main/java/dev/openfga/sdk/telemetry/Histograms.java
  • src/main/java/dev/openfga/sdk/telemetry/Histogram.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadChangesRequest.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientListObjectsRequest.java
  • src/main/java/dev/openfga/sdk/api/configuration/ConfigurationOverride.java
  • src/main/java/dev/openfga/sdk/telemetry/Metrics.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteTuplesOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientReadLatestAuthorizationModelOptions.java
  • src/test/java/dev/openfga/sdk/api/client/ApiClientTest.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientReadRequest.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientCredentials.java
  • src/main/java/dev/openfga/sdk/api/client/model/ClientExpandRequest.java
  • src/main/java/dev/openfga/sdk/api/configuration/ApiToken.java
  • src/main/java/dev/openfga/sdk/api/configuration/CredentialsMethod.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientWriteAuthorizationModelOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/AdditionalHeadersSupplier.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientGetStoreOptions.java
  • src/main/java/dev/openfga/sdk/api/configuration/BaseConfiguration.java
  • src/main/java/dev/openfga/sdk/api/configuration/ClientBatchCheckOptions.java
  • src/test/java/dev/openfga/sdk/api/configuration/ClientCredentialsTest.java
🧰 Additional context used
🧬 Code graph analysis (12)
src/main/java/dev/openfga/sdk/errors/FgaError.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/test/java/dev/openfga/sdk/api/client/HttpRequestAttemptRetryTest.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/test/java/dev/openfga/sdk/api/OpenFgaApiTest.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/test/java/dev/openfga/sdk/api/client/OpenFgaClientHeadersTest.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/test/java/dev/openfga/sdk/api/client/OpenFgaClientTest.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/main/java/dev/openfga/sdk/api/auth/AccessToken.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/main/java/dev/openfga/sdk/api/client/OpenFgaClient.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/main/java/dev/openfga/sdk/util/ExponentialBackoff.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/main/java/dev/openfga/sdk/util/RetryStrategy.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/main/java/dev/openfga/sdk/api/client/HttpRequestAttempt.java (2)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/main/java/dev/openfga/sdk/util/RetryAfterHeaderParser.java (1)
  • RetryAfterHeaderParser (18-92)
src/main/java/dev/openfga/sdk/api/configuration/Configuration.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
src/test/java/dev/openfga/sdk/api/auth/OAuth2ClientTest.java (1)
src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)
  • FgaConstants (19-104)
🪛 LanguageTool
CONTRIBUTING.md

[style] ~39-~39: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ...acker.** ### Submitting Pull Requests Feel free to submit a Pull Request against this repo...

(FEEL_FREE_TO_STYLE_ME)

🔇 Additional comments (17)
.openapi-generator-ignore (1)

20-32: LGTM! Proper exclusions for manually managed files.

The added ignore patterns appropriately exclude Gradle build files and manually maintained API client files from code generation, which aligns with the PR's objective to reduce generated code.

src/main/java/dev/openfga/sdk/util/ExponentialBackoff.java (1)

3-3: LGTM! Centralized constant improves maintainability.

The replacement of the hardcoded 120 with FgaConstants.MAX_BACKOFF_TIME_IN_SEC properly centralizes the maximum backoff time constant.

Also applies to: 18-18

src/main/java/dev/openfga/sdk/errors/FgaError.java (1)

7-7: LGTM! Centralized header constant reduces duplication.

The replacement of the hardcoded "Retry-After" string with FgaConstants.RETRY_AFTER_HEADER_NAME ensures consistency across the codebase when reading this standard HTTP header.

Also applies to: 66-66

src/test/java/dev/openfga/sdk/api/client/HttpRequestAttemptRetryTest.java (1)

12-12: LGTM! Test updates align with production code changes.

All hardcoded "Retry-After" header references have been consistently replaced with FgaConstants.RETRY_AFTER_HEADER_NAME across the test scenarios.

Also applies to: 59-61, 96-98, 160-162, 289-289, 539-539, 587-587, 710-710, 757-757

src/test/java/dev/openfga/sdk/api/auth/OAuth2ClientTest.java (1)

16-16: LGTM! Test improvements with centralized constants.

The changes properly centralize the "Retry-After" header name using FgaConstants.RETRY_AFTER_HEADER_NAME, and the JSON payloads are now properly structured objects rather than implicit strings.

Also applies to: 129-129, 136-137, 156-156

src/main/java/dev/openfga/sdk/api/auth/AccessToken.java (1)

5-5: LGTM! Token expiry constants properly centralized.

The replacement of hardcoded 300 values with FgaConstants.TOKEN_EXPIRY_THRESHOLD_BUFFER_IN_SEC and FgaConstants.TOKEN_EXPIRY_JITTER_IN_SEC ensures consistent token expiry behavior across the SDK.

Also applies to: 11-13

src/main/java/dev/openfga/sdk/util/RetryStrategy.java (1)

3-3: LGTM! Retry delay constant moved to centralized location.

The refactoring properly moves the default minimum retry delay from Configuration.DEFAULT_MINIMUM_RETRY_DELAY to FgaConstants.DEFAULT_MIN_WAIT_IN_MS, reducing coupling and centralizing retry-related constants.

Also applies to: 66-66

src/main/java/dev/openfga/sdk/api/client/HttpRequestAttempt.java (1)

7-7: LGTM! HTTP header names properly centralized.

The replacement of hardcoded header strings "Retry-After" and "fga-query-duration-ms" with FgaConstants.RETRY_AFTER_HEADER_NAME and FgaConstants.QUERY_DURATION_HEADER_NAME ensures consistency and reduces the risk of typos.

Also applies to: 168-170, 187-192

src/test/java/dev/openfga/sdk/api/client/OpenFgaClientHeadersTest.java (1)

70-75: LGTM: centralized TEST_API_URL usage in headers tests.

Consistent use of FgaConstants.TEST_API_URL improves maintainability.

Also applies to: 85-89, 99-104, 113-117, 126-131, 140-145, 153-159, 169-175, 183-187, 196-202, 207-214, 288-299, 323-326, 355-360, 392-401, 426-435, 461-470, 494-503, 530-539, 565-577, 599-608, 619-625, 630-646, 872-876, 886-889, 898-915, 935-946

README.md (1)

1377-1377: LGTM: consolidate contribution guidance link.

.openapi-generator/FILES (1)

186-186: Confirm generation ownership of FgaConstants.java.

If FgaConstants.java is generated by sdk‑generator, keeping it in this list is correct. If it’s hand‑maintained, consider removing it to avoid accidental overwrites on regen.

src/test/java/dev/openfga/sdk/api/OpenFgaApiTest.java (1)

13-14: LGTM: constants centralization in tests.

Using FgaConstants for URLs and retry values improves cohesion and reduces duplication.

Also applies to: 60-66, 86-87, 171-172, 185-196, 207-219, 229-241, 256-268, 289-299, 330-341, 353-361, 380-386, 431-446, 468-477, 490-501, 510-523, 535-546, 573-581, 597-610, 620-633, 645-651, 690-701, 733-746, 758-766, 804-816, 846-862, 874-885, 914-922, 1000-1013, 1026-1031, 1100-1111, 1122-1138, 1154-1160, 1168-1186, 1194-1212, 1217-1244, 1250-1260, 1330-1342, 1352-1367, 1373-1386, 1394-1407, 1539-1561, 1713-1725, 1756-1769, 1781-1802, 1828-1845, 1871-1888, 1897-1912, 1949-1966, 1972-1988, 1994-2010, 2019-2037, 2078-2095, 2101-2117, 2135-2140

CONTRIBUTING.md (1)

26-26: LGTM: clearer contribution flow and generator guidance.

Issue links and generator notes look good.

Also applies to: 32-37, 40-43

src/main/java/dev/openfga/sdk/api/client/OpenFgaClient.java (1)

10-10: LGTM! Centralized constants improve maintainability.

The refactoring successfully replaces hard-coded literals with centralized constants from FgaConstants. This improves maintainability and reduces the risk of inconsistencies across the codebase.

Also applies to: 546-546, 551-553, 830-831, 836-838, 843-843, 892-893, 898-900, 935-936, 944-944, 1128-1129, 1134-1136

src/test/java/dev/openfga/sdk/api/client/OpenFgaClientTest.java (1)

19-19: LGTM! Test updates are comprehensive and consistent.

The test file has been thoroughly updated to use centralized constants from FgaConstants. This ensures that tests remain in sync with production code values and improves maintainability.

Also applies to: 80-80, 83-84, 106-106, 152-152, 172-172, 208-208, 228-228, 246-246, 252-252, 267-267, 341-341, 352-352, 374-374, 383-383, 395-395, 404-404, 415-415, 425-425, 438-438, 468-468, 489-489, 509-509, 519-519, 532-532, 560-560, 581-581, 601-601, 625-625, 663-663, 686-686, 708-708, 720-720, 730-731, 792-793, 842-843, 865-866, 887-888, 900-900, 913-915, 939-940, 987-991, 1013-1014, 1035-1036, 1046-1046, 1059-1059, 1090-1090, 1120-1120, 1142-1142, 1163-1163, 1188-1188, 1220-1220, 1241-1241, 1268-1269, 1285-1286, 1292-1293, 1299-1300, 1306-1307, 1315-1315, 1325-1326, 1331-1332, 1353-1354, 1360-1361, 1367-1368, 1393-1393, 1433-1433, 1478-1478, 1501-1501, 1689-1689, 1721-1721, 1748-1748, 1774-1774, 1804-1804, 1854-1854, 1876-1876, 1897-1897, 1922-1922, 1929-1930, 1949-1950, 1993-1993, 2000-2001, 2020-2021, 2043-2043, 2069-2069, 2094-2094, 2156-2156, 2285-2285, 2317-2317, 2333-2333, 2346-2346, 2396-2396, 2418-2418, 2439-2439, 2464-2464, 2503-2503, 2525-2525, 2546-2546, 2568-2568, 2595-2595, 2602-2603, 2622-2623, 2634-2634, 2641-2642, 2660-2661, 2726-2726, 2756-2756, 2785-2785, 2815-2815, 2829-2830, 2853-2854, 2867-2867, 2916-2917, 2970-2971, 2992-2993, 3013-3014, 3024-3024, 3037-3038, 3089-3090, 3111-3112, 3133-3133, 3159-3159, 3183-3184

src/main/java/dev/openfga/sdk/api/configuration/Configuration.java (1)

6-6: LGTM! Constants centralization improves maintainability.

The updates correctly reference FgaConstants for default values and validation bounds, improving consistency across the codebase.

Also applies to: 30-30, 43-48, 148-148, 265-267

src/main/java/dev/openfga/sdk/constants/FgaConstants.java (1)

19-19: LGTM! Well-structured constants class.

The class is appropriately marked final and includes a private constructor to prevent instantiation, following best practices for utility classes. The constants are well-organized by category with clear documentation.

Also applies to: 101-103

@rhamzeh rhamzeh force-pushed the chore/reduce-generation branch from 48d2029 to 8f9c7d7 Compare October 24, 2025 18:05
@rhamzeh rhamzeh added this pull request to the merge queue Oct 27, 2025
Merged via the queue into main with commit aa07907 Oct 27, 2025
25 checks passed
@rhamzeh rhamzeh deleted the chore/reduce-generation branch October 27, 2025 20:25
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.

5 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.