Skip to content

feat(sdk): DSPX-2754 add DynamicValueMapping service client wrapper#3635

Open
alkalescent wants to merge 1 commit into
mainfrom
DSPX-2754-sdk-dynamic-value-mapping
Open

feat(sdk): DSPX-2754 add DynamicValueMapping service client wrapper#3635
alkalescent wants to merge 1 commit into
mainfrom
DSPX-2754-sdk-dynamic-value-mapping

Conversation

@alkalescent

Copy link
Copy Markdown
Contributor

Proposed Changes

This is the sdk step of the DSPX-2754 consumer split. Sequencing:

  1. protocol/go protos + generated code (feat(policy): DSPX-2754 DynamicValueMapping protos + generated code #3580) — merged, released as v0.34.0.
  2. sdk wrapper (this PR) — depends on protocol/go v0.34.0.
  3. service consumer (feat(policy): DSPX-2754 dynamic attribute value entitlement mappings #3568) — depends on this sdk release; will bump sdk once it is released.

Checklist

  • I have added or updated unit tests
  • I have added or updated documentation (generated wrapper)

Testing Instructions

  • cd sdk && GOWORK=off go build ./... && GOWORK=off GOFLAGS=-mod=mod go mod tidy (clean)
  • make connect-wrapper-generate produces no diff

Related

@alkalescent alkalescent requested review from a team as code owners June 17, 2026 21:34
@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@alkalescent, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 28 minutes and 48 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 728214ba-051d-45c8-9182-edf0ad9944ad

📥 Commits

Reviewing files that changed from the base of the PR and between 4a7353d and 1da7b39.

⛔ Files ignored due to path filters (1)
  • sdk/go.sum is excluded by !**/*.sum
📒 Files selected for processing (4)
  • sdk/codegen/main.go
  • sdk/go.mod
  • sdk/sdk.go
  • sdk/sdkconnect/dynamicvaluemapping.go
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch DSPX-2754-sdk-dynamic-value-mapping

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.

@github-actions github-actions Bot added comp:sdk A software development kit, including library, for client applications and inter-service communicati size/s labels Jun 17, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces the DynamicValueMapping service client wrapper to the SDK, enabling interaction with the newly added policy service. It includes the necessary dependency updates and integration steps to ensure the SDK can properly utilize the service, following the established pattern for Connect RPC wrappers.

Highlights

  • New Service Client: Added the DynamicValueMapping service client wrapper to the SDK to support the new policy functionality.
  • Dependency Update: Bumped the protocol/go dependency to v0.34.0 to include the necessary dynamicvaluemapping package.
  • SDK Integration: Registered the new service client in the main SDK struct and initialized it in the constructor.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.


A new service client we bring, / To make the SDK sing. / With mappings dynamic, / The code is organic, / And policy is now quite the thing.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request adds support for the DynamicValueMappingServiceClient to the SDK. It updates the codegen configuration to include the new client, upgrades the github.com/opentdf/platform/protocol/go dependency to version 0.34.0, integrates the new client into the SDK struct, and introduces a wrapper implementation in sdk/sdkconnect/dynamicvaluemapping.go. There are no review comments, and I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@github-actions

Copy link
Copy Markdown
Contributor
Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 192.467865ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 103.738378ms

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 430.445885ms
Throughput 232.32 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 44.137417472s
Average Latency 439.472767ms
Throughput 113.28 requests/second

Add the sdkconnect wrapper for the DynamicValueMappingService and register it
in the SDK, and bump protocol/go to v0.34.0 (which carries the dynamicvaluemapping
package). This is the sdk step of the DSPX-2754 consumer split (protocol/go #3580
released first; service consumer PR #3568 depends on this sdk release).

Signed-off-by: Krish Suchak <suchak.krish@gmail.com>
@alkalescent alkalescent force-pushed the DSPX-2754-sdk-dynamic-value-mapping branch from 101a9d9 to 1da7b39 Compare June 17, 2026 21:53
@github-actions

Copy link
Copy Markdown
Contributor
Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 153.245806ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 1000
Denied Decision Requests 0
Total Time 78.759164ms

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 413.312004ms
Throughput 241.95 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 42.845157259s
Average Latency 426.504261ms
Throughput 116.70 requests/second

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Govulncheck found vulnerabilities ⚠️

The following modules have known vulnerabilities:

  • examples
  • otdfctl
  • sdk
  • service
  • lib/fixtures
  • tests-bdd

See the workflow run for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp:sdk A software development kit, including library, for client applications and inter-service communicati size/s

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant