Skip to content

Conversation

c-r33d
Copy link
Contributor

@c-r33d c-r33d commented Oct 15, 2025

Proposed Changes

1.) Protos for ListObligationTriggers rpc

Checklist

  • I have added or updated unit tests
  • I have added or updated integration tests (if appropriate)
  • I have added or updated documentation

Testing Instructions

@c-r33d c-r33d requested review from a team as code owners October 15, 2025 15:18
@github-actions github-actions bot added comp:policy Policy Configuration ( attributes, subject mappings, resource mappings, kas registry) comp:sdk A software development kit, including library, for client applications and inter-service communicati docs Documentation labels Oct 15, 2025
@c-r33d c-r33d changed the title feat(policy): List obligation triggers rpc. feat(policy): Protos List obligation triggers Oct 15, 2025
Copy link
Contributor

Summary of Changes

Hello @c-r33d, 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 lays the groundwork for a new ListObligationTriggers RPC within the policy service. It defines the protobuf messages and service method for this new functionality, updates the client-side Go SDK to expose it, and includes the necessary documentation. While the server-side implementation is currently a stub, this change provides the essential API and client integration for future development of the obligation trigger listing feature.

Highlights

  • New RPC Definition: Introduced the ListObligationTriggers RPC in the obligations.proto file, defining its request and response messages. The request supports filtering by obligation_value_id or obligation_value_fqn and includes pagination.
  • Client SDK Update: The Go SDK client (sdk/sdkconnect/obligations.go) has been updated to include the new ListObligationTriggers method in its interface and wrapper, allowing clients to call this new RPC.
  • Server-Side Stub: A placeholder implementation for the ListObligationTriggers method has been added to the server-side Service (service/policy/obligations/obligations.go), which currently returns an Unimplemented error, indicating that the full logic will be added later.
  • Documentation Updates: The gRPC documentation (docs/grpc/index.html) has been updated to reflect the new ListObligationTriggers RPC, including its request and response message definitions, and its addition to the service methods with NO_SIDE_EFFECTS idempotency.
Ignored Files
  • Ignored by pattern: docs/openapi/**/* (1)
    • docs/openapi/policy/obligations/obligations.openapi.yaml
  • Ignored by pattern: protocol/**/* (3)
    • protocol/go/policy/obligations/obligations.pb.go
    • protocol/go/policy/obligations/obligations_grpc.pb.go
    • protocol/go/policy/obligations/obligationsconnect/obligations.connect.go
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 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 counter productive. 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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


New RPC takes form, Proto, SDK, docs align, Logic waits to bloom.

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.

Copy link
Contributor

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

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 introduces the protobuf definitions for a new ListObligationTriggers RPC, along with the necessary Go SDK wrapper and a service implementation stub. The changes are generally well-structured. My main feedback is to add comments to the new messages, fields, and the RPC in the .proto file. This will ensure the generated documentation is complete and the API is self-describing, which is crucial for maintainability and ease of use.

Copy link
Contributor

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 361.60904ms
Throughput 276.54 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.668479221s
Average Latency 384.138973ms
Throughput 129.30 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 27.297530011s
Average Latency 272.012272ms
Throughput 183.17 requests/second

Copy link
Contributor

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 363.386392ms
Throughput 275.19 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 39.131574445s
Average Latency 388.732766ms
Throughput 127.77 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 27.33587089s
Average Latency 272.385858ms
Throughput 182.91 requests/second

@c-r33d c-r33d requested a review from jakedoublev October 15, 2025 18:43
Copy link
Contributor

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 361.960086ms
Throughput 276.27 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.292016662s
Average Latency 381.174704ms
Throughput 130.58 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 27.124375371s
Average Latency 270.322414ms
Throughput 184.34 requests/second

@c-r33d c-r33d enabled auto-merge October 15, 2025 18:53
@c-r33d c-r33d added this pull request to the merge queue Oct 15, 2025
Merged via the queue into main with commit b32df81 Oct 15, 2025
32 checks passed
@c-r33d c-r33d deleted the feat/DSPX-1758-obligations-globally-protos branch October 15, 2025 20:34
github-merge-queue bot pushed a commit that referenced this pull request Oct 16, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.13.0](protocol/go/v0.12.0...protocol/go/v0.13.0)
(2025-10-16)


### Features

* **policy:** Protos List obligation triggers
([#2803](#2803))
([b32df81](b32df81))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: opentdf-automation[bot] <149537512+opentdf-automation[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp:policy Policy Configuration ( attributes, subject mappings, resource mappings, kas registry) comp:sdk A software development kit, including library, for client applications and inter-service communicati docs Documentation size/s

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants