Skip to content

feat: support .NET Standard 2.0#122

Merged
rhamzeh merged 7 commits intomainfrom
feat/dotnet-standard2.0
Oct 1, 2025
Merged

feat: support .NET Standard 2.0#122
rhamzeh merged 7 commits intomainfrom
feat/dotnet-standard2.0

Conversation

@rhamzeh
Copy link
Member

@rhamzeh rhamzeh commented Sep 26, 2025

Description

This PR introduces support for multiple .NET target frameworks and includes significant refactoring in model naming to which results in some breaking changes.

The SDK now officially supports multi-targeting across several frameworks: .NET Standard 2.0, .NET Framework 4.8, .NET Core 3.1, .NET 8.0, and .NET 9.0.

Due to the OpenAPI generator update and standardization of property names, several model fields and enum values have been renamed.

The following properties (previously prefixed with an underscore or implicit constructor arguments) have been renamed across various model classes:

Old Name (Internal/Ctor) New Name (Public Property) Affected Models
_Nodes VarNodes Nodes (and related constructors/references)
_Users VarUsers Users (and related constructors/references)
_base VarBase Difference, UsersetTreeDifference
_object VarObject CheckRequestTupleKey, ExpandRequestTupleKey, TupleKey, TupleKeyWithoutCondition, FgaObject, ObjectRelation, ReadRequestTupleKey, User
_this VarThis Userset
UNSPECIFIED TYPENAMEUNSPECIFIED TypeName (and other members in this enum)
Old Enum Value New Enum Value Affected Enum
WRITE TUPLEOPERATIONWRITE TupleOperation
DELETE TUPLEOPERATIONDELETE TupleOperation

Generated from openfga/sdk-generator#622 using

OPEN_API_REF=0ac19aac54f21f3c78970126b84b4c69c6e3b9a2 OPENAPI_GENERATOR_CLI_DOCKER_TAG=v7.11.0 make test-client-dotnet

What problem is being solved?

How is it being solved?

What changes are made to solve it?

References

replaces/closes: #108
closes: #106

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
    • Broader .NET compatibility and release assets across net48, netcoreapp3.1, net8.0, and net9.0.
    • Improved error mapping for validation (422) and rate limits (429); new ValidationError type.
  • Refactor
    • More reliable, cross-version concurrency for batch writes and checks, improving throughput and stability.
  • Bug Fixes
    • More robust equality comparisons and parameter handling across models.
  • Tests
    • Expanded cross-OS/framework test matrix; stronger request payload assertions.
  • Documentation
    • Clarified property/column names in user-facing docs.
  • Chores
    • Enhanced CI/CD with build verification and per-framework release packaging; tooling version updates.

@coderabbitai
Copy link

coderabbitai bot commented Sep 26, 2025

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

Multi-targeting and CI/release workflow were expanded. Numerous SDK model constructors switched to default literals and updated equality checks. Several parameter names changed (e.g., _object→varObject; Nodes→VarNodes). Client gained cross-version concurrency helpers. New LINQ Chunk extension added for legacy frameworks. Exceptions refined for 422/429 and parsing robustness. Tests adapted and broadened.

Changes

Cohort / File(s) Summary
CI and tooling
.github/workflows/main.yaml, .editorconfig, .openapi-generator-ignore, .openapi-generator/VERSION, .openapi-generator/FILES, OpenFga.Sdk.sln
Workflow restructured into matrix tests, build verification, artifact/release handling; IDE0005 enforcement disabled; OpenAPI generator updated to 7.11.0 and ignore list extended; solution VS version updated; generator FILES references new extension.
Documentation
docs/Nodes.md, docs/Users.md
Documentation labels updated: Nodes column _NodesVarNodes; Users property _UsersVarUsers.
Tests
src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj, .../Api/OpenFgaApiTests.cs, .../Client/OpenFgaClientTests.cs, .../Models/ModelTests.cs
Tests multi-targeted (netcoreapp3.1, net48, net8.0, net9.0) with framework-specific settings; updated for renamed enums/fields (WRITETUPLEOPERATIONWRITE, _objectvarObject, nodesvarNodes, usersvarUsers); added request content capture/assertions; test class implements IDisposable; added usings.
Client runtime refactor
src/OpenFga.Sdk/Client/Client.cs
Introduced helper methods to process write chunks and batch checks concurrently with NET6+ and legacy fallbacks; replaced in-method parallelization with helpers; unified response aggregation.
Legacy compatibility extension
src/OpenFga.Sdk/Client/Extensions/LinqExtensions.cs
Added Chunk<T>(..., int size) extension for NETSTANDARD2_0/NET48 to emulate LINQ chunking.
API and ApiClient imports
src/OpenFga.Sdk/Api/*, src/OpenFga.Sdk/ApiClient/*
Added missing using directives (System, Collections, Http, Threading, Tasks, Json/Linq) to multiple files; no behavioral changes.
Client models (imports/aux)
src/OpenFga.Sdk/Client/Model/*
Added using directives across multiple client model files; no public API changes.
Exceptions and parsing
src/OpenFga.Sdk/Exceptions/*, src/OpenFga.Sdk/Exceptions/Parsers/*
Added mappings for 422/429 via enum casts for net48; new FgaValidationError; FgaApiInternalError.CreateAsync made async; parser guards against ObjectDisposedException; added usings; minor path split fix.
Configuration
src/OpenFga.Sdk/Configuration/*
Added using directives; no behavioral changes.
Models: defaults/equality/renames
src/OpenFga.Sdk/Model/*
Broad updates: constructors use default literal; equality for AdditionalProperties changed from Count/Except to key-by-key ContainsKey+value equality; parameter renames _objectvarObject, _basevarBase; Nodes collection _NodesVarNodes; Any no longer derives from Dictionary, adds AdditionalProperties with [JsonExtensionData]; numerous constructors and equality methods updated accordingly.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant App as Application
  participant Client as OpenFgaClient
  participant Helper as Concurrency Helpers
  participant API as OpenFga API

  rect rgba(230,245,255,0.5)
  note over Client,Helper: Write (NET6+ or legacy path)
  App->>Client: Write(request)
  Client->>Helper: ProcessWriteChunksAsync(writeChunks)
  par For each chunk
    Helper->>API: POST /write (chunk)
    API-->>Helper: Response (success/error)
  end
  Helper-->>Client: Per-item results
  Client-->>App: Aggregated WriteResponse
  end

  rect rgba(235,255,235,0.5)
  note over Client,Helper: BatchCheck
  App->>Client: BatchCheck(requests)
  Client->>Helper: ProcessCheckRequestsAsync(items)
  par For each item
    Helper->>API: POST /check
    API-->>Helper: Result (allowed/error)
  end
  Helper-->>Client: Per-request results
  Client-->>App: BatchCheckResponse
  end

  rect rgba(255,245,230,0.5)
  note right of Client: On net48, 422/429 handled via (HttpStatusCode) casts
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "feat: support .NET Standard 2.0" is partially related to the changeset but does not capture the main scope of the changes. While the PR does add .NET Standard 2.0 support through multi-targeting (which includes netstandard2.0, net48, netcoreapp3.1, net8.0, and net9.0), the changeset also includes extensive breaking changes throughout the codebase. The summary reveals widespread identifier renames (such as _Nodes → VarNodes, _object → varObject, WRITE → TUPLEOPERATIONWRITE), updated equality logic across many model classes, workflow enhancements, OpenAPI generator version updates, and compatibility changes for multiple .NET frameworks. The title highlights only one aspect (adding .NET Standard 2.0 support) and omits the significant breaking API changes and refactoring that dominate the changeset, making it incomplete as a summary of the primary developer-facing impact.
Docstring Coverage ✅ Passed Docstring coverage is 92.14% which is sufficient. The required threshold is 80.00%.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/dotnet-standard2.0

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.

@socket-security
Copy link

socket-security bot commented Sep 26, 2025

@socket-security
Copy link

socket-security bot commented Sep 26, 2025

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: ms-net-library (dotnet_library_license.txt)

License: ms-net-library (Microsoft.NETCore.Platforms.nuspec)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]nuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: CC-BY-3.0 (THIRD-PARTY-NOTICES.TXT)

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

License: CC-BY-SA-3.0 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk/OpenFga.Sdk.csprojnuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: HP-1989 (THIRD-PARTY-NOTICES.TXT)

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
[email protected] has a License Policy Violation.

License: Unicode-3.0 (THIRD-PARTY-NOTICES.TXT)

License: W3C-20150513 (THIRD-PARTY-NOTICES.TXT)

From: src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csprojnuget/[email protected]nuget/[email protected]

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore nuget/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

See 4 more rows in the dashboard

View full report

@rhamzeh rhamzeh force-pushed the feat/dotnet-standard2.0 branch 2 times, most recently from 91f1de7 to 84599f1 Compare September 29, 2025 13:31
@codecov-commenter
Copy link

codecov-commenter commented Sep 29, 2025

Codecov Report

❌ Patch coverage is 36.94915% with 186 lines in your changes missing coverage. Please review.
✅ Project coverage is 36.26%. Comparing base (0b57734) to head (3a38a66).

Files with missing lines Patch % Lines
src/OpenFga.Sdk/Model/Any.cs 0.00% 12 Missing ⚠️
...c/OpenFga.Sdk/Exceptions/Parsers/ApiErrorParser.cs 44.44% 5 Missing ⚠️
src/OpenFga.Sdk/Model/AssertionTupleKey.cs 0.00% 5 Missing ⚠️
src/OpenFga.Sdk/Model/CheckRequestTupleKey.cs 0.00% 5 Missing ⚠️
src/OpenFga.Sdk/Model/Difference.cs 0.00% 5 Missing ⚠️
src/OpenFga.Sdk/Model/ListUsersRequest.cs 0.00% 5 Missing ⚠️
src/OpenFga.Sdk/Model/Nodes.cs 58.33% 4 Missing and 1 partial ⚠️
src/OpenFga.Sdk/Model/TupleKeyWithoutCondition.cs 0.00% 5 Missing ⚠️
src/OpenFga.Sdk/Model/Users.cs 58.33% 4 Missing and 1 partial ⚠️
src/OpenFga.Sdk/Model/ExpandRequestTupleKey.cs 40.00% 2 Missing and 1 partial ⚠️
... and 71 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #122      +/-   ##
==========================================
+ Coverage   31.69%   36.26%   +4.56%     
==========================================
  Files         135      135              
  Lines        6862     5303    -1559     
  Branches      900      965      +65     
==========================================
- Hits         2175     1923     -252     
+ Misses       4499     3200    -1299     
+ Partials      188      180       -8     

☔ 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 feat/dotnet-standard2.0 branch from 84599f1 to b16315b Compare September 29, 2025 14:51
@rhamzeh rhamzeh force-pushed the feat/dotnet-standard2.0 branch 4 times, most recently from 4b77fe9 to e22259d Compare September 29, 2025 19:51
@rhamzeh rhamzeh marked this pull request as ready for review September 29, 2025 19:51
@rhamzeh rhamzeh requested a review from a team as a code owner September 29, 2025 19:51
@rhamzeh
Copy link
Member Author

rhamzeh commented Sep 29, 2025

@CodeRabbit

@coderabbitai
Copy link

coderabbitai bot commented Sep 29, 2025

@rhamzeh I'll review the changes in this PR. This looks like a significant update that adds multi-targeting support for .NET Standard 2.0 and includes breaking changes from the OpenAPI generator update.

I'll analyze the code changes, breaking changes documentation, and provide feedback on the implementation.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@rhamzeh rhamzeh requested a review from Copilot September 29, 2025 19:53
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 introduces support for multiple .NET target frameworks and includes significant refactoring in model naming that results in some breaking changes. The SDK now officially supports multi-targeting across several frameworks: .NET Standard 2.0, .NET Framework 4.8, .NET Core 3.1, .NET 8.0, and .NET 9.0.

Key changes:

  • Multi-framework support with conditional compilation for compatibility
  • Model property renaming from underscore-prefixed to PascalCase (e.g., _Users to VarUsers)
  • Updated OpenAPI generator from v6.4.0 to v7.11.0

Reviewed Changes

Copilot reviewed 140 out of 140 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/OpenFga.Sdk/OpenFga.Sdk.csproj Adds multi-targeting configuration with framework-specific dependencies
src/OpenFga.Sdk/Client/Client.cs Adds framework-specific parallel processing implementations
src/OpenFga.Sdk/Model/*.cs Updates model constructors and Equals methods for compatibility
src/OpenFga.Sdk/Telemetry/Attributes.cs Improves path parameter access using TryGetValue
.github/workflows/main.yaml Expands CI to test all target frameworks across platforms

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

@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: 6

Caution

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

⚠️ Outside diff range comments (1)
src/OpenFga.Sdk/Model/Status.cs (1)

149-151: Fix GetHashCode to match value-based equality.

Same issue as in Any.cs: Dictionary.GetHashCode() is reference-based, but Equals performs value-based comparison of AdditionalProperties. This violates the GetHashCode/Equals contract.

Apply this diff:

                 if (this.AdditionalProperties != null) {
-                    hashCode = (hashCode * 9923) + this.AdditionalProperties.GetHashCode();
+                    foreach (var kvp in this.AdditionalProperties) {
+                        hashCode = (hashCode * 9923) + kvp.Key.GetHashCode();
+                        if (kvp.Value != null) {
+                            hashCode = (hashCode * 9923) + kvp.Value.GetHashCode();
+                        }
+                    }
                 }
🧹 Nitpick comments (7)
src/OpenFga.Sdk/Model/AuthErrorCode.cs (1)

14-22: Unused using directives in auto-generated enum.

Several using directives appear unused in this enum-only file: System.Collections.Generic, System.ComponentModel.DataAnnotations, System.Linq, and System.Text.Json. Since this is auto-generated code, the generator likely adds a standard set of imports uniformly. While harmless, unused imports add minor cognitive overhead.

Consider updating the code generator template to conditionally emit using directives based on file content type (e.g., omit collection/LINQ imports for pure enums).

src/OpenFga.Sdk/Model/NullValue.cs (1)

14-20: Potentially unused using directives.

Several of the added using directives (System.Collections.Generic, System.ComponentModel.DataAnnotations, System.Linq, System.Text.Json) don't appear to be used by the NullValue enum itself. Since this is auto-generated code, the generator may include them as a blanket policy across all model files. If the generator supports more granular using inclusion, consider adjusting it to reduce noise.

src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj (1)

29-34: Consider updating System.Memory and System.Threading.Tasks.Extensions to latest stable versions.

All packages are free from known security vulnerabilities. System.Text.Json 6.0.10 is the patched version for CVE-2024-43485 and is secure. However, System.Memory (currently 4.5.5) and System.Threading.Tasks.Extensions (currently 4.5.4) have stable updates available (4.6.3) that are compatible with .NET Framework 4.8 and include bug fixes and improvements.

Optional updates:

  • System.Memory: 4.5.5 → 4.6.3
  • System.Threading.Tasks.Extensions: 4.5.4 → 4.6.3
.github/workflows/main.yaml (2)

259-276: Consider using GitHub Actions instead of curl for asset uploads.

The manual curl-based upload for framework-specific ZIPs (Lines 266-272) is more fragile than using actions/upload-release-asset. If the action doesn't support multiple uploads easily, consider a loop with the action or ensure error handling is robust.

Example using the action in a loop:

- name: Upload framework-specific ZIPs
  run: |
    for framework in netstandard2.0 net48 net8.0 net9.0; do
      if [ -f "./release-assets/OpenFga.Sdk-${framework}.zip" ]; then
        echo "framework=${framework}" >> $GITHUB_OUTPUT
      fi
    done
# Then use upload-release-asset with matrix or multiple steps

Alternatively, the current curl approach works but ensure the upload_url format is compatible with the query parameter approach.


259-276: Framework-specific ZIPs uploaded correctly.

The curl-based upload with ${{ secrets.GITHUB_TOKEN }} is secure (GitHub Actions masks secrets in logs). However, consider using actions/upload-release-asset for all uploads instead of mixing curl and GitHub Actions—this would provide more consistent error handling and logging.

src/OpenFga.Sdk/Model/CreateStoreRequest.cs (1)

105-105: Consider defensive null check for AdditionalProperties.

The updated equality logic is more thorough than the previous Except-based approach, correctly checking both key presence and value equality. However, if input.AdditionalProperties is null (e.g., if modified externally after construction), this line will throw NullReferenceException.

While constructors always initialize AdditionalProperties to non-null, consider adding a defensive check:

-                && (this.AdditionalProperties.Count == input.AdditionalProperties.Count && this.AdditionalProperties.All(kv => input.AdditionalProperties.ContainsKey(kv.Key) && Equals(kv.Value, input.AdditionalProperties[kv.Key])));
+                && (this.AdditionalProperties.Count == input.AdditionalProperties?.Count && this.AdditionalProperties.All(kv => input.AdditionalProperties.ContainsKey(kv.Key) && Equals(kv.Value, input.AdditionalProperties[kv.Key])));

Or handle null explicitly:

-                && (this.AdditionalProperties.Count == input.AdditionalProperties.Count && this.AdditionalProperties.All(kv => input.AdditionalProperties.ContainsKey(kv.Key) && Equals(kv.Value, input.AdditionalProperties[kv.Key])));
+                && ((this.AdditionalProperties == null && input.AdditionalProperties == null) || (this.AdditionalProperties != null && input.AdditionalProperties != null && this.AdditionalProperties.Count == input.AdditionalProperties.Count && this.AdditionalProperties.All(kv => input.AdditionalProperties.ContainsKey(kv.Key) && Equals(kv.Value, input.AdditionalProperties[kv.Key]))));
src/OpenFga.Sdk/Model/ContextualTupleKeys.cs (1)

106-106: Consider defensive null check for AdditionalProperties.

The updated equality logic correctly performs per-key value comparison, which is more robust than the previous Except-based approach. However, the same concern applies here as in CreateStoreRequest.cs: if input.AdditionalProperties is null, this will throw NullReferenceException.

Consider adding a defensive null check as suggested in CreateStoreRequest.cs.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6832959 and e22259d.

📒 Files selected for processing (107)
  • .editorconfig (1 hunks)
  • .github/workflows/main.yaml (3 hunks)
  • .openapi-generator-ignore (1 hunks)
  • .openapi-generator/FILES (1 hunks)
  • .openapi-generator/VERSION (1 hunks)
  • OpenFga.Sdk.sln (1 hunks)
  • docs/Nodes.md (1 hunks)
  • docs/Users.md (1 hunks)
  • src/OpenFga.Sdk.Test/Api/OpenFgaApiTests.cs (6 hunks)
  • src/OpenFga.Sdk.Test/Client/OpenFgaClientTests.cs (23 hunks)
  • src/OpenFga.Sdk.Test/Models/ModelTests.cs (1 hunks)
  • src/OpenFga.Sdk.Test/OpenFga.Sdk.Test.csproj (1 hunks)
  • src/OpenFga.Sdk/Api/OpenFgaApi.cs (1 hunks)
  • src/OpenFga.Sdk/ApiClient/ApiClient.cs (1 hunks)
  • src/OpenFga.Sdk/ApiClient/BaseClient.cs (1 hunks)
  • src/OpenFga.Sdk/ApiClient/OAuth2Client.cs (1 hunks)
  • src/OpenFga.Sdk/ApiClient/RequestBuilder.cs (1 hunks)
  • src/OpenFga.Sdk/ApiClient/Utils.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Client.cs (4 hunks)
  • src/OpenFga.Sdk/Client/Extensions/LinqExtensions.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientBatchCheckResponse.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientCheckRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientExpandRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientListObjectsRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientListRelationsRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientListRelationsResponse.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientListStoresRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientListUsersRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientReadChangesRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientTupleKey.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientTupleKeyWithoutCondition.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientWriteAssertionsRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientWriteRequest.cs (1 hunks)
  • src/OpenFga.Sdk/Client/Model/ClientWriteResponse.cs (1 hunks)
  • src/OpenFga.Sdk/Configuration/Configuration.cs (1 hunks)
  • src/OpenFga.Sdk/Configuration/Credentials.cs (1 hunks)
  • src/OpenFga.Sdk/Configuration/TelemetryConfig.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/ApiAuthenticationError.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/ApiError.cs (2 hunks)
  • src/OpenFga.Sdk/Exceptions/ApiException.cs (2 hunks)
  • src/OpenFga.Sdk/Exceptions/ApiInternalError.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/ApiNotFoundError.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/ApiValidationError.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/GenericError.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/Parsers/ApiErrorParser.cs (2 hunks)
  • src/OpenFga.Sdk/Exceptions/Parsers/RateLimitParser.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/RateLimitExceededError.cs (1 hunks)
  • src/OpenFga.Sdk/Exceptions/ValidationError.cs (1 hunks)
  • src/OpenFga.Sdk/Model/AbortedMessageResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Any.cs (4 hunks)
  • src/OpenFga.Sdk/Model/Assertion.cs (3 hunks)
  • src/OpenFga.Sdk/Model/AssertionTupleKey.cs (3 hunks)
  • src/OpenFga.Sdk/Model/AuthErrorCode.cs (1 hunks)
  • src/OpenFga.Sdk/Model/AuthorizationModel.cs (3 hunks)
  • src/OpenFga.Sdk/Model/BatchCheckItem.cs (3 hunks)
  • src/OpenFga.Sdk/Model/BatchCheckRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/BatchCheckResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/BatchCheckSingleResult.cs (3 hunks)
  • src/OpenFga.Sdk/Model/CheckError.cs (3 hunks)
  • src/OpenFga.Sdk/Model/CheckRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/CheckRequestTupleKey.cs (4 hunks)
  • src/OpenFga.Sdk/Model/CheckResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Computed.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Condition.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ConditionMetadata.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ConditionParamTypeRef.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ConsistencyPreference.cs (1 hunks)
  • src/OpenFga.Sdk/Model/ContextualTupleKeys.cs (3 hunks)
  • src/OpenFga.Sdk/Model/CreateStoreRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/CreateStoreResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Difference.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ErrorCode.cs (1 hunks)
  • src/OpenFga.Sdk/Model/ExpandRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ExpandRequestTupleKey.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ExpandResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/FgaObject.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ForbiddenResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/GetStoreResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/InternalErrorCode.cs (1 hunks)
  • src/OpenFga.Sdk/Model/InternalErrorMessageResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/JsonStringEnumMemberConverter.cs (2 hunks)
  • src/OpenFga.Sdk/Model/Leaf.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ListObjectsRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ListObjectsResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ListStoresResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ListUsersRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ListUsersResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Metadata.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Node.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Nodes.cs (4 hunks)
  • src/OpenFga.Sdk/Model/NotFoundErrorCode.cs (1 hunks)
  • src/OpenFga.Sdk/Model/NullValue.cs (1 hunks)
  • src/OpenFga.Sdk/Model/ObjectRelation.cs (3 hunks)
  • src/OpenFga.Sdk/Model/PathUnknownErrorMessageResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadAssertionsResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadAuthorizationModelResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadAuthorizationModelsResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadChangesResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadRequest.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadRequestTupleKey.cs (3 hunks)
  • src/OpenFga.Sdk/Model/ReadResponse.cs (3 hunks)
  • src/OpenFga.Sdk/Model/RelationMetadata.cs (3 hunks)
  • src/OpenFga.Sdk/Model/RelationReference.cs (3 hunks)
  • src/OpenFga.Sdk/Model/RelationshipCondition.cs (3 hunks)
  • src/OpenFga.Sdk/Model/SourceInfo.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Status.cs (3 hunks)
  • src/OpenFga.Sdk/Model/Store.cs (3 hunks)
⛔ Files not processed due to max files limit (33)
  • src/OpenFga.Sdk/Model/Tuple.cs
  • src/OpenFga.Sdk/Model/TupleChange.cs
  • src/OpenFga.Sdk/Model/TupleKey.cs
  • src/OpenFga.Sdk/Model/TupleKeyWithoutCondition.cs
  • src/OpenFga.Sdk/Model/TupleOperation.cs
  • src/OpenFga.Sdk/Model/TupleToUserset.cs
  • src/OpenFga.Sdk/Model/TypeDefinition.cs
  • src/OpenFga.Sdk/Model/TypeName.cs
  • src/OpenFga.Sdk/Model/TypedWildcard.cs
  • src/OpenFga.Sdk/Model/UnauthenticatedResponse.cs
  • src/OpenFga.Sdk/Model/UnprocessableContentErrorCode.cs
  • src/OpenFga.Sdk/Model/UnprocessableContentMessageResponse.cs
  • src/OpenFga.Sdk/Model/User.cs
  • src/OpenFga.Sdk/Model/UserTypeFilter.cs
  • src/OpenFga.Sdk/Model/Users.cs
  • src/OpenFga.Sdk/Model/Userset.cs
  • src/OpenFga.Sdk/Model/UsersetTree.cs
  • src/OpenFga.Sdk/Model/UsersetTreeDifference.cs
  • src/OpenFga.Sdk/Model/UsersetTreeTupleToUserset.cs
  • src/OpenFga.Sdk/Model/UsersetUser.cs
  • src/OpenFga.Sdk/Model/Usersets.cs
  • src/OpenFga.Sdk/Model/ValidationErrorMessageResponse.cs
  • src/OpenFga.Sdk/Model/WriteAssertionsRequest.cs
  • src/OpenFga.Sdk/Model/WriteAuthorizationModelRequest.cs
  • src/OpenFga.Sdk/Model/WriteAuthorizationModelResponse.cs
  • src/OpenFga.Sdk/Model/WriteRequest.cs
  • src/OpenFga.Sdk/Model/WriteRequestDeletes.cs
  • src/OpenFga.Sdk/Model/WriteRequestWrites.cs
  • src/OpenFga.Sdk/OpenFga.Sdk.csproj
  • src/OpenFga.Sdk/Telemetry/Attributes.cs
  • src/OpenFga.Sdk/Telemetry/Histograms.cs
  • src/OpenFga.Sdk/Telemetry/Meters.cs
  • src/OpenFga.Sdk/Telemetry/Metrics.cs
🧰 Additional context used
🪛 GitHub Check: Test net48 on windows-latest
src/OpenFga.Sdk/Model/AbortedMessageResponse.cs

[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Any.cs

[warning] 41-41:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Assertion.cs

[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.

🪛 GitHub Check: Test net8.0 on macos-latest
src/OpenFga.Sdk/Model/AbortedMessageResponse.cs

[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/AssertionTupleKey.cs

[warning] 43-43:
Cannot convert null literal to non-nullable reference type.


[warning] 43-43:
Cannot convert null literal to non-nullable reference type.


[warning] 43-43:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Any.cs

[warning] 41-41:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Assertion.cs

[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.

🪛 GitHub Check: Test net8.0 on ubuntu-latest
src/OpenFga.Sdk/Model/AbortedMessageResponse.cs

[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Any.cs

[warning] 41-41:
Cannot convert null literal to non-nullable reference type.

🪛 GitHub Check: Test net8.0 on windows-latest
src/OpenFga.Sdk/Model/AbortedMessageResponse.cs

[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Any.cs

[warning] 41-41:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Assertion.cs

[warning] 44-44:
Cannot convert null literal to non-nullable reference type.

🪛 GitHub Check: Test net9.0 on ubuntu-latest
src/OpenFga.Sdk/Model/AbortedMessageResponse.cs

[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/AssertionTupleKey.cs

[warning] 43-43:
Cannot convert null literal to non-nullable reference type.


[warning] 43-43:
Cannot convert null literal to non-nullable reference type.


[warning] 43-43:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Any.cs

[warning] 41-41:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Assertion.cs

[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.

🪛 GitHub Check: Test netcoreapp3.1 on windows-latest
src/OpenFga.Sdk/Model/AbortedMessageResponse.cs

[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.


[warning] 42-42:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/CreateStoreResponse.cs

[warning] 44-44:
Cannot convert null literal to non-nullable reference type.


[warning] 44-44:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Any.cs

[warning] 41-41:
Cannot convert null literal to non-nullable reference type.

src/OpenFga.Sdk/Model/Assertion.cs

[warning] 44-44:
Cannot convert null literal to non-nullable reference type.

🪛 markdownlint-cli2 (0.18.1)
docs/Users.md

7-7: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


7-7: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)

docs/Nodes.md

7-7: Table pipe style
Expected: no_leading_or_trailing; Actual: trailing_only; Unexpected trailing pipe

(MD055, table-pipe-style)


7-7: Table column count
Expected: 4; Actual: 3; Too few cells, row will be missing data

(MD056, table-column-count)

evansims
evansims previously approved these changes Sep 30, 2025
Copy link
Contributor

@evansims evansims left a comment

Choose a reason for hiding this comment

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

Looks good; one minor optimization worth considering, but not a blocker.

Base automatically changed from chore/sync-generator to main September 30, 2025 05:32
@rhamzeh rhamzeh dismissed evansims’s stale review September 30, 2025 05:32

The base branch was changed.

@rhamzeh rhamzeh requested review from a team as code owners September 30, 2025 05:32
@rhamzeh rhamzeh force-pushed the feat/dotnet-standard2.0 branch 2 times, most recently from cc453b3 to 5c9667e Compare September 30, 2025 18:20
@rhamzeh rhamzeh force-pushed the feat/dotnet-standard2.0 branch from 5c9667e to 976506a Compare September 30, 2025 21:37
Copy link
Contributor

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

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

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@rhamzeh rhamzeh force-pushed the feat/dotnet-standard2.0 branch from 0a92edf to 348cd3b Compare October 1, 2025 18:02
@rhamzeh rhamzeh enabled auto-merge October 1, 2025 18:48
@rhamzeh rhamzeh added this pull request to the merge queue Oct 1, 2025
Merged via the queue into main with commit 7f6db0a Oct 1, 2025
34 checks passed
@rhamzeh rhamzeh deleted the feat/dotnet-standard2.0 branch October 1, 2025 18:55
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.

Support for .NET Standard 2.0

3 participants

Comments