[Feature] Add raw request method to Java SDK for calling arbitrary API endpoints
Checklist
- [x] I agree to the terms within the OpenFGA Code of Conduct.
Describe the problem you'd like to have solved
Currently, the SDK provides typed methods for specific API endpoints (check, write, read, etc.). However, there is no way to call arbitrary OpenFGA API endpoints that may not yet have dedicated SDK methods. This creates a gap when:
- New OpenFGA API endpoints are released but SDK updates have not been implemented yet
- Experimental endpoints need to be tested
- Developers need a temporary alternative while waiting for official SDK support
Without a raw request method, developers are forced to either wait for SDK updates, or fork and modify the SDK code themselves, or call the OpenFGA API directly without the SDK, losing the benefits of SDK authentication, configuration, and error handling patterns. This reduces developer agility and creates friction in adopting new OpenFGA features.
Describe the ideal solution
Add a raw request method to the SDKs that allows developers to make arbitrary HTTP requests to any OpenFGA API endpoint while still leveraging the SDK's authentication, configuration, and error handling patterns.
This would provide an escape hatch for developers while maintaining consistency with the SDK's configuration. The typed methods would remain the recommended approach for standard API calls, while the raw request method provides flexibility during early adoption of new features.
Alternatives and current workarounds
- Fork and modify the SDK code
- Call the OpenFGA API directly without the SDK
Neither workaround is ideal.
References
- SDK generator issue: https://github.com/openfga/sdk-generator/issues/658
- OpenFGA roadmap item: https://github.com/openfga/roadmap/issues/88
Additional context
No response
[!CAUTION] The CodeRabbit agent failed during execution: 400 {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 200623 tokens > 200000 maximum"},"request_id":"req_011CUob9X92qEKDje7qTqwwF"}