Skip to content

feat(dotnet): use build-client-streamed for .NET SDK#659

Merged
daniel-jonathan merged 3 commits intomainfrom
feat/dotnet-use-streamed-build
Nov 19, 2025
Merged

feat(dotnet): use build-client-streamed for .NET SDK#659
daniel-jonathan merged 3 commits intomainfrom
feat/dotnet-use-streamed-build

Conversation

@daniel-jonathan
Copy link
Copy Markdown
Contributor

@daniel-jonathan daniel-jonathan commented Nov 10, 2025

Summary

Use build-client-streamed for .NET SDK to include streaming endpoints.

Changes

Related

  • feat: add StreamedListObjects support openfga/dotnet-sdk#156
  • [All SDKs] Support streaming endpoints (StreamedListObjects) #76
  • feat(js): use build-client-streamed for JS SDK #657

Summary by CodeRabbit

  • Chores
    • Updated the .NET client build process to use an optimized build variant.

- Switch from build-client to build-client-streamed
- Aligns with Python SDK and JS SDK (PR #657)
- Includes StreamedListObjects endpoint in generated SDK
- No library parameter needed (not applicable to .NET generator)

Related:
- openfga/dotnet-sdk#156
- #76
@daniel-jonathan daniel-jonathan requested a review from a team as a code owner November 10, 2025 23:28
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Nov 10, 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.

Walkthrough

A Makefile modification switches the build-client-dotnet target to invoke build-client-streamed instead of build-client, while maintaining identical parameters for the OpenAPI generator invocation.

Changes

Cohort / File(s) Summary
Makefile target update
Makefile
Modified build-client-dotnet target to call build-client-streamed instead of build-client with the same parameters (sdk_language=dotnet, tmpdir, OPENAPI_GENERATOR_CLI_DOCKER_TAG)

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

  • Verify that the build-client-streamed target exists and accepts the same parameters as build-client
  • Confirm that switching to the streamed variant is the intended behavior for the .NET client build

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: switching the .NET SDK build process to use the streamed variant for building the client.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

rhamzeh
rhamzeh previously approved these changes Nov 12, 2025
Add template-driven streaming support for .NET SDK generation using
OpenAPI vendor extensions.

Changes:
- Makefile: Inject x-streaming metadata into OpenAPI spec for
  streamed-list-objects endpoint
- config.overrides.json: Add supportsStreamedListObjects feature flag
- template/api.mustache: Add IAsyncEnumerable streaming method generation
  with proper cancellation support via [EnumeratorCancellation]
- template/README_calling_api.mustache: Add StreamedListObjects
  documentation with usage examples

This template-driven approach enables consistent streaming API generation
across SDK clients while maintaining idiomatic patterns per language.

Related: openfga/dotnet-sdk#110
Copy link
Copy Markdown
Member

@rhamzeh rhamzeh left a comment

Choose a reason for hiding this comment

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

Nice! Thanks @daniel-jonathan!

I'm slightly surprised we did not need similar changes on the Python, JS, Go and Java SDK fronts - I would have expected that the streaming endpoint required similar special handling across all SDKs.

cc @SoulPancake

@daniel-jonathan daniel-jonathan added this pull request to the merge queue Nov 19, 2025
@daniel-jonathan
Copy link
Copy Markdown
Contributor Author

Nice! Thanks @daniel-jonathan!

I'm slightly surprised we did not need similar changes on the Python, JS, Go and Java SDK fronts - I would have expected that the streaming endpoint required similar special handling across all SDKs.

cc @SoulPancake

Thank you! I will review the js-sdk in a moment, and then discuss with @SoulPancake about the others.

Merged via the queue into main with commit fbdfb43 Nov 19, 2025
12 of 15 checks passed
@daniel-jonathan daniel-jonathan deleted the feat/dotnet-use-streamed-build branch November 19, 2025 17:52
@SoulPancake
Copy link
Copy Markdown
Member

SoulPancake commented Nov 19, 2025

@rhamzeh @daniel-jonathan so Basically didn't need it in SDK-generator in go/java as I just created a separate file instead of the config/clients/dotnet/template/api.mustache
Just to avoid having to change the generator with the changes required in the API layer.

So essentially, same layer, but the file doesn't come from the templates

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.

3 participants