Skip to content

Conversation

@pflynn-virtru
Copy link
Member

@pflynn-virtru pflynn-virtru commented Aug 25, 2025

Proposed Changes

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

- Replace examples with GeoJSON examples for assertions.
- Update expected hash values and validation logic accordingly.
@pflynn-virtru pflynn-virtru requested review from a team as code owners August 25, 2025 17:40
@github-actions github-actions bot added comp:sdk A software development kit, including library, for client applications and inter-service communicati size/xs labels Aug 25, 2025
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.

Summary of Changes

Hello @pflynn-virtru, 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 updates the assertion tests to utilize GeoJSON examples for statement values. This change involves modifying the format and schema definitions within the assertion configurations, updating the example JSON data to conform to GeoJSON specifications, and adjusting the expected hash values and validation logic in the tests to reflect these new GeoJSON structures. The primary goal is to ensure the assertion mechanism correctly handles and validates GeoJSON data.

Highlights

  • Transition to GeoJSON: Replaced existing assertion examples with valid GeoJSON structures (Point, Polygon, FeatureCollection) in test cases.
  • Schema and Format Updates: Modified the Statement.Format to "json" and Statement.Schema to "https://geojson.org/schema/GeoJSON.json" across relevant assertion configurations.
  • Hash Value Recalculation: Updated the expected hash values in TestTDFWithAssertion and TestTDFWithAssertionJsonObject to match the new GeoJSON assertion content.
  • Validation Logic Refinement: Adjusted the test assertions in TestTDFWithAssertionJsonObject to validate GeoJSON-specific properties (e.g., type, properties, geometry) instead of previous data structures.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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.


GeoJSON takes hold,Data finds its true form now,Tests map the world's shape.

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 updates the assertion tests to use GeoJSON examples, replacing the previous STANAG-based ones. The changes are well-executed, with corresponding updates to expected hash values and validation logic. I have one minor suggestion to improve consistency in one of the test cases.

"appliesToState": null,
"statement": {
"format": "json-structured",
"format": "json",
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The Statement struct defines the Schema field with a validate:"required" tag, but a schema field is not provided in this statement object. For consistency with the other tests in this file that were updated to include a schema, you should consider adding one here as well. For example:

      "statement": {
        "format": "json",
        "schema": "",
        "value": "this is a value"
      },

If no specific schema applies to a plain string value, an empty string would likely suffice to satisfy the validator.

@github-actions
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.785436ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 582.458326ms
Throughput 171.69 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 36.958612033s
Average Latency 368.292508ms
Throughput 135.29 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 25.940723208s
Average Latency 258.526706ms
Throughput 192.75 requests/second

- Adjust comments in `Statement` struct for improved documentation.
- Update `Format` values to `json-structured` in tests.
- Add optional handling for `Schema` field in `Statement`.
@github-actions
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.002447ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 343.129067ms
Throughput 291.44 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 37.161096938s
Average Latency 369.512403ms
Throughput 134.55 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.196247328s
Average Latency 260.919901ms
Throughput 190.87 requests/second

@github-actions
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.584942ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 351.859044ms
Throughput 284.20 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 37.467573822s
Average Latency 373.194179ms
Throughput 133.45 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.568157069s
Average Latency 264.399671ms
Throughput 188.20 requests/second

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/xs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants