Skip to content

Conversation

@jrschumacher
Copy link
Member

fix breaking down migration

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

fix breaking down migration
@jrschumacher jrschumacher requested review from a team as code owners June 4, 2025 16:35
@github-actions github-actions bot added comp:db DB component comp:policy Policy Configuration ( attributes, subject mappings, resource mappings, kas registry) comp:ci Github Actions Work size/s labels Jun 4, 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.

Hello @jrschumacher, 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!

Summary of Changes

Hello! Gemini-code-assist here to provide a summary of this pull request. Based on the title and description, the primary goal of this PR is to address a breaking database migration issue and potentially lay the groundwork for adding a CI check for migrations. The core change implemented in the patch is a fix within the 20241125220354_keys_table.sql migration file, specifically correcting a syntax error in a DROP FUNCTION statement.

Highlights

  • Fix Database Migration Syntax: Corrected a syntax error in the DROP FUNCTION IF EXISTS update_was_mapped statement within the keys_table.sql migration script by removing unnecessary parentheses.

Changelog

  • service/policy/db/migrations/20241125220354_keys_table.sql
    • Removed unnecessary parentheses () from the DROP FUNCTION IF EXISTS update_was_mapped statement on line 315 to fix a potential syntax error in the migration script.
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 is currently in preview and 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 to provide feedback.

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.


Migration script runs,
Parens gone, the syntax clean,
Database is pleased.

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 addresses a breaking database down migration by making a minor syntax adjustment to a DROP FUNCTION statement in the SQL migration file. The change from DROP FUNCTION IF EXISTS update_was_mapped (); to DROP FUNCTION IF EXISTS update_was_mapped; is correct, as parentheses are optional for no-argument functions in PostgreSQL when dropping them.

This modification not only fixes the reported issue but also enhances consistency within the file, aligning the syntax with another DROP FUNCTION statement (for update_active_key).

For future pull requests, even for small fixes like this, it would be beneficial to briefly fill out the 'Proposed Changes' section in the PR description to provide a clear summary of the change. The checklist items (tests, documentation) seem appropriate for this type of change (likely not requiring updates).

Overall, this is a good, straightforward fix.

Summary of Findings

  • SQL Syntax Fix for Migration: The pull request corrects the syntax in a DROP FUNCTION statement within a database migration file. This change reportedly resolves an issue that was causing the down migration to fail.
  • Code Consistency: The syntax adjustment for DROP FUNCTION update_was_mapped now aligns with the style used for DROP FUNCTION update_active_key in the same file, improving overall consistency.

Merge Readiness

The change is clear, addresses the stated problem of a breaking down migration, and improves consistency. Based on the review of the code changes, this pull request appears ready for merging. As an AI, I am not authorized to approve pull requests; please ensure it undergoes any further necessary human review and approval processes before merging.

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 467.229633ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 309.070959ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 354.186876ms
Throughput 282.34 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 52.500550067s
Average Latency 522.251029ms
Throughput 95.24 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4936
Failed Requests 64
Concurrent Requests 50
Total Time 42.716160195s
Average Latency 421.376663ms
Throughput 115.55 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
64 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 467.863231ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 309.534983ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 349.693168ms
Throughput 285.96 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 54.039208934s
Average Latency 538.407581ms
Throughput 92.53 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4969
Failed Requests 31
Concurrent Requests 50
Total Time 45.255132177s
Average Latency 448.173214ms
Throughput 109.80 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
31 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 481.33688ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 285.954288ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 357.739829ms
Throughput 279.53 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 53.040244472s
Average Latency 526.614533ms
Throughput 94.27 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4944
Failed Requests 56
Concurrent Requests 50
Total Time 44.293282408s
Average Latency 438.591019ms
Throughput 111.62 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
56 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 486.878954ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 310.095264ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 343.691396ms
Throughput 290.96 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 54.278866941s
Average Latency 539.824739ms
Throughput 92.12 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4940
Failed Requests 60
Concurrent Requests 50
Total Time 45.31132919s
Average Latency 448.064107ms
Throughput 109.02 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
60 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 471.744549ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 299.331315ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 356.316992ms
Throughput 280.65 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 51.803346503s
Average Latency 514.868507ms
Throughput 96.52 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4930
Failed Requests 70
Concurrent Requests 50
Total Time 43.848904358s
Average Latency 431.877794ms
Throughput 112.43 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
70 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 464.055336ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 298.827727ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 361.847197ms
Throughput 276.36 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 51.509106708s
Average Latency 512.722007ms
Throughput 97.07 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4961
Failed Requests 39
Concurrent Requests 50
Total Time 43.124521752s
Average Latency 427.185633ms
Throughput 115.04 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
39 occurrences

Standard Benchmark Metrics Skipped or Failed

Comment on lines +502 to +524
run: |
set -eo pipefail
goose_exe_name="goose" # Always Linux, so no .exe
determined_goose_path=""
gobin_dir="${{ steps.go_paths.outputs.gobin_path }}"
gopath_bin_dir="${{ steps.go_paths.outputs.gopath_bin_path }}"
# Prefer GOBIN if set and goose is there
if [[ -n "$gobin_dir" && -x "$gobin_dir/$goose_exe_name" ]]; then
determined_goose_path="$gobin_dir/$goose_exe_name"
# Fallback to GOPATH/bin
elif [[ -x "$gopath_bin_dir/$goose_exe_name" ]]; then
determined_goose_path="$gopath_bin_dir/$goose_exe_name"
else
echo "Error: goose executable ('$goose_exe_name') not found in GOBIN ('$gobin_dir') or GOPATH/bin ('$gopath_bin_dir')." >&2
ls -la "$gobin_dir" || true # List contents for debugging
ls -la "$gopath_bin_dir" || true # List contents for debugging
exit 1
fi
echo "Found goose at: $determined_goose_path"
echo "goose_executable_path=${determined_goose_path}" >> "$GITHUB_OUTPUT"

Check notice

Code scanning / zizmor

steps.go_paths.outputs.gobin_path may expand into attacker-controllable code Note

steps.go_paths.outputs.gobin_path may expand into attacker-controllable code
Comment on lines +502 to +524
run: |
set -eo pipefail
goose_exe_name="goose" # Always Linux, so no .exe
determined_goose_path=""
gobin_dir="${{ steps.go_paths.outputs.gobin_path }}"
gopath_bin_dir="${{ steps.go_paths.outputs.gopath_bin_path }}"
# Prefer GOBIN if set and goose is there
if [[ -n "$gobin_dir" && -x "$gobin_dir/$goose_exe_name" ]]; then
determined_goose_path="$gobin_dir/$goose_exe_name"
# Fallback to GOPATH/bin
elif [[ -x "$gopath_bin_dir/$goose_exe_name" ]]; then
determined_goose_path="$gopath_bin_dir/$goose_exe_name"
else
echo "Error: goose executable ('$goose_exe_name') not found in GOBIN ('$gobin_dir') or GOPATH/bin ('$gopath_bin_dir')." >&2
ls -la "$gobin_dir" || true # List contents for debugging
ls -la "$gopath_bin_dir" || true # List contents for debugging
exit 1
fi
echo "Found goose at: $determined_goose_path"
echo "goose_executable_path=${determined_goose_path}" >> "$GITHUB_OUTPUT"

Check notice

Code scanning / zizmor

steps.go_paths.outputs.gopath_bin_path may expand into attacker-controllable code Note

steps.go_paths.outputs.gopath_bin_path may expand into attacker-controllable code
@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 478.930169ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 301.05871ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 359.821998ms
Throughput 277.92 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 52.98688097s
Average Latency 527.485012ms
Throughput 94.36 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4932
Failed Requests 68
Concurrent Requests 50
Total Time 46.624921233s
Average Latency 459.939735ms
Throughput 105.78 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
68 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 475.939463ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 295.49907ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 352.59867ms
Throughput 283.61 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 51.968318967s
Average Latency 517.58941ms
Throughput 96.21 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4970
Failed Requests 30
Concurrent Requests 50
Total Time 44.117832918s
Average Latency 438.771263ms
Throughput 112.65 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
30 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 456.266603ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 293.103096ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 358.391037ms
Throughput 279.02 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 55.414274656s
Average Latency 551.002957ms
Throughput 90.23 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4974
Failed Requests 26
Concurrent Requests 50
Total Time 46.951167979s
Average Latency 465.673507ms
Throughput 105.94 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
26 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 503.250911ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 307.00973ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 360.298094ms
Throughput 277.55 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 1m2.475544833s
Average Latency 622.601268ms
Throughput 80.03 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4948
Failed Requests 52
Concurrent Requests 50
Total Time 54.079590895s
Average Latency 533.342503ms
Throughput 91.49 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
52 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 462.552836ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 292.884873ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 357.744821ms
Throughput 279.53 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 52.732424538s
Average Latency 524.57757ms
Throughput 94.82 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4935
Failed Requests 65
Concurrent Requests 50
Total Time 43.766074645s
Average Latency 432.360536ms
Throughput 112.76 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
65 occurrences

Standard Benchmark Metrics Skipped or Failed

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 467.826266ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 300.060097ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 355.384034ms
Throughput 281.39 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 52.269994372s
Average Latency 520.2982ms
Throughput 95.66 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4946
Failed Requests 54
Concurrent Requests 50
Total Time 42.558989076s
Average Latency 420.333599ms
Throughput 116.22 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
54 occurrences

Standard Benchmark Metrics Skipped or Failed

@jakedoublev
Copy link
Contributor

I think it could be worth a step back before merging this because running the up/down migrations without data in the database could lead to false positives and greater confidence than is justified. I think this is positive progress to run up/down on the schema alone for SQL & migration validity, but without stored data, the test passing could lead to overconfidence.

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 462.913162ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 305.479757ms

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 350.135036ms
Throughput 285.60 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 52.707135857s
Average Latency 524.48979ms
Throughput 94.86 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 4949
Failed Requests 51
Concurrent Requests 50
Total Time 43.988477665s
Average Latency 434.605911ms
Throughput 112.51 requests/second

Error Summary:

Error Message Occurrences
ReadNanoTDF error: getNanoRewrapKey: rewrapError: internal: internal error
rpc error: code = Internal desc = could not perform access
51 occurrences

Standard Benchmark Metrics Skipped or Failed

@jakedoublev
Copy link
Contributor

I think it could be worth a step back before merging this because running the up/down migrations without data in the database could lead to false positives and greater confidence than is justified. I think this is positive progress to run up/down on the schema alone for SQL & migration validity, but without stored data, the test passing could lead to overconfidence.

Revising the above to state that this is great incremental progress and we will choose not to be overconfident and aware of enhancements as capacity allows.

@github-actions
Copy link
Contributor

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 545.225626ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 347.316452ms

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 359.423323ms
Throughput 278.22 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.598449537s
Average Latency 383.678415ms
Throughput 129.54 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.757470528s
Average Latency 266.444008ms
Throughput 186.86 requests/second

@github-actions
Copy link
Contributor

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 560.073002ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 340.631918ms

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 359.216645ms
Throughput 278.38 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.507660792s
Average Latency 382.255683ms
Throughput 129.84 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.911097995s
Average Latency 267.839752ms
Throughput 185.80 requests/second

@github-actions
Copy link
Contributor

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 517.995915ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

Metric Value
Approved Decision Requests 5000
Denied Decision Requests 0
Total Time 348.630154ms

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 350.085749ms
Throughput 285.64 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 36.556654535s
Average Latency 364.051667ms
Throughput 136.77 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 25.626110357s
Average Latency 255.395568ms
Throughput 195.11 requests/second

@github-actions github-actions bot added the Stale label Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp:ci Github Actions Work comp:db DB component comp:policy Policy Configuration ( attributes, subject mappings, resource mappings, kas registry) size/s Stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants