Skip to content

fix(kas): remove testcontainers from consumer dependency graph - #3132

Open
pflynn-virtru wants to merge 12 commits into
mainfrom
fix/export-service-internal-packages
Open

fix(kas): remove testcontainers from consumer dependency graph#3132
pflynn-virtru wants to merge 12 commits into
mainfrom
fix/export-service-internal-packages

Conversation

@pflynn-virtru

@pflynn-virtru pflynn-virtru commented Mar 11, 2026

Copy link
Copy Markdown
Member

Summary

Remove testcontainers-go and its 60+ transitive dependencies from service/go.mod so downstream consumers no longer pull in Docker, OCI, and container runtime libraries.

Two commits:

  1. Export internal packages — move service/internal/fixtures/ and service/internal/subjectmappingbuiltin/ to service/pkg/ so they can be imported from outside the service module
  2. Move integration tests — relocate service/integration/ and service/entityresolution/integration/ into test/integration/ (separate Go module), which is the actual home for testcontainers usage

Part of DSPX-2582

Changes

  • service/internal/fixtures/service/pkg/testutil/fixtures/
  • service/internal/subjectmappingbuiltin/service/pkg/subjectmappingbuiltin/
  • service/integration/test/integration/policy/
  • service/entityresolution/integration/test/integration/entityresolution/
  • Update test/integration/go.mod with service replace directive and new deps
  • Update CI workflow to run policy integration tests from new path
  • All import paths updated across 24+ files

Verification

  • grep testcontainers service/go.mod → empty (the goal)
  • cd service && go build ./... — passes
  • cd service && golangci-lint run ./... — 0 issues
  • cd test/integration && go build ./... — passes
  • cd test/integration && golangci-lint run ./... — 0 issues

Test plan

  • go build ./... passes in both service and test/integration
  • go test ./... -short passes in service
  • go test ./policy/... -short passes in test/integration
  • golangci-lint and gofumpt clean on all changed files
  • CI integration tests pass with updated workflow path

🤖 Generated with Claude Code

@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 refactors the service layer by relocating two internal Go packages, fixtures and subjectmappingbuiltin, to public pkg paths. This strategic move aims to facilitate better test isolation and enable a future separate integration-test module to import these utilities without encountering transitive dependency issues, specifically with testcontainers-go. The changes are purely structural, involving package renames and import path updates, ensuring no alteration to existing functionality.

Highlights

  • Package Relocation: Moved the service/internal/fixtures package to service/pkg/testutil/fixtures to make it publicly accessible for downstream testing.
  • Package Relocation: Moved the service/internal/subjectmappingbuiltin package to service/pkg/subjectmappingbuiltin for similar public accessibility.
  • Import Path Updates: Updated all import paths across 24 files to reflect the new locations of the fixtures and subjectmappingbuiltin packages.
  • Fixture Path Updates: Adjusted YAML fixture load paths to align with the new service/pkg/testutil/fixtures location.
  • No Behavior Change: Implemented a pure refactor with no functional behavior changes, serving as a preparatory step for extracting integration tests into a separate Go module.

🧠 New Feature in Public Preview: You can now enable Memory 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.

Changelog
  • service/authorization/authorization.go
    • Updated the import path for subjectmappingbuiltin.
  • service/cmd/provisionFixtures.go
    • Updated the import path for fixtures.
    • Updated the YAML fixture data path.
  • service/entityresolution/integration/claims_attributes_test.go
    • Updated the import path for subjectmappingbuiltin.
  • service/entityresolution/integration/keycloak_attributes_test.go
    • Updated the import path for subjectmappingbuiltin.
  • service/integration/actions_test.go
    • Updated the import path for fixtures.
  • service/integration/attribute_fqns_test.go
    • Updated the import path for fixtures.
  • service/integration/attribute_values_test.go
    • Updated the import path for fixtures.
  • service/integration/attributes_test.go
    • Updated the import path for fixtures.
  • service/integration/kas_registry_key_test.go
    • Updated the import path for fixtures.
  • service/integration/kas_registry_test.go
    • Updated the import path for fixtures.
  • service/integration/keymanagement_test.go
    • Updated the import path for fixtures.
  • service/integration/main_test.go
    • Updated the import path for fixtures.
    • Updated the YAML fixture data path.
  • service/integration/namespaces_test.go
    • Updated the import path for fixtures.
  • service/integration/obligation_triggers_test.go
    • Updated the import path for fixtures.
  • service/integration/obligations_test.go
    • Updated the import path for fixtures.
  • service/integration/policy_test.go
    • Updated the import path for fixtures.
  • service/integration/registered_resources_test.go
    • Updated the import path for fixtures.
  • service/integration/resource_mappings_test.go
    • Updated the import path for fixtures.
  • service/integration/subject_mappings_test.go
    • Updated the import path for fixtures.
  • service/internal/access/v2/evaluate.go
    • Updated the import path for subjectmappingbuiltin.
  • service/internal/access/v2/evaluate_test.go
    • Updated the import path for subjectmappingbuiltin.
  • service/internal/access/v2/pdp.go
    • Updated the import path for subjectmappingbuiltin.
  • service/internal/access/v2/validators.go
    • Updated the import path for subjectmappingbuiltin.
  • service/internal/fixtures/db.go
    • Renamed to service/pkg/testutil/fixtures/db.go.
  • service/internal/fixtures/fixtures.go
    • Renamed to service/pkg/testutil/fixtures/fixtures.go.
  • service/internal/fixtures/policy_fixtures.yaml
    • Renamed to service/pkg/testutil/fixtures/policy_fixtures.yaml.
  • service/internal/subjectmappingbuiltin/README.md
    • Renamed to service/pkg/subjectmappingbuiltin/README.md.
  • service/internal/subjectmappingbuiltin/subject_mapping_builtin.go
    • Renamed to service/pkg/subjectmappingbuiltin/subject_mapping_builtin.go.
  • service/internal/subjectmappingbuiltin/subject_mapping_builtin_actions.go
    • Renamed to service/pkg/subjectmappingbuiltin/subject_mapping_builtin_actions.go and updated its internal import path.
  • service/internal/subjectmappingbuiltin/subject_mapping_builtin_actions_test.go
    • Renamed to service/pkg/subjectmappingbuiltin/subject_mapping_builtin_actions_test.go and updated its internal import path.
  • service/internal/subjectmappingbuiltin/subject_mapping_builtin_test.go
    • Renamed to service/pkg/subjectmappingbuiltin/subject_mapping_builtin_test.go and updated its internal import path.
  • service/logger/audit/getDecision.go
    • Updated the import path for subjectmappingbuiltin.
Activity
  • The author linked to Jira ticket DSPX-2582, indicating this PR is part A of a two-part fix.
  • The author confirmed that go build ./..., go vet ./..., go test ./... -short, golangci-lint, and gofumpt all passed, ensuring code quality and functionality.
  • The PR description notes it was generated with Claude Code.
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.


Paths now redefined, Tests can run in isolation, Code finds new freedom.

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.

@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 186.129277ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 366.628868ms
Throughput 272.76 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.054517559s
Average Latency 377.827773ms
Throughput 131.39 requests/second

@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 refactors the project structure by moving two internal packages, fixtures and subjectmappingbuiltin, to public paths under service/pkg/. The goal is to allow downstream consumers to import these packages for test isolation. The changes involve moving files and updating import paths in numerous files, along with adjusting YAML fixture load paths. The changes are consistent with the stated goal of refactoring for test isolation. The new package locations are service/pkg/testutil/fixtures/ and service/pkg/subjectmappingbuiltin/. The import and file path updates across the codebase appear to be correct based on this refactoring. No behavioral changes were introduced.

Note: Security Review did not run due to the size of the PR.

@github-actions

Copy link
Copy Markdown
Contributor

@pflynn-virtru
pflynn-virtru force-pushed the fix/export-service-internal-packages branch from 8d3ab27 to e3a7d00 Compare March 11, 2026 15:23
@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 197.4081ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 379.401888ms
Throughput 263.57 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 39.281737844s
Average Latency 391.047574ms
Throughput 127.29 requests/second

@github-actions

Copy link
Copy Markdown
Contributor

github-merge-queue Bot pushed a commit that referenced this pull request Mar 11, 2026
## Summary

- Moved keycloak integration tests from `sdk/auth/oauth/oauth_test.go`
to a new `test/integration/` module with its own `go.mod`
- Removed `testcontainers-go` and 60+ transitive container dependencies
(docker, containerd, moby, etc.) from `sdk/go.mod`
- Downstream SDK consumers no longer inherit test-only dependencies that
trigger false CVE alerts in vulnerability scanners

## Details

The `sdk/go.mod` previously listed `testcontainers-go` as a direct
dependency because `oauth_test.go` imported it for keycloak integration
tests. Even though it was only used in test files, Go modules include
all dependencies (test and non-test) in `go.mod`. Any downstream
consumer running `go get github.com/opentdf/platform/sdk` would inherit
these deps.

**This PR (SDK only):** Unit test (`TestTokenExpiration_RespectsLeeway`)
stays in the SDK; keycloak integration suite moves to
`test/integration/oauth/`.

**Service module:** Still has testcontainers in `service/go.mod` from
`service/integration/` and `service/entityresolution/integration/`
tests. This is being addressed in #3132 (export internal packages) and a
follow-up PR to move service integration tests to their own module.

Part of [DSPX-2582](https://virtru.atlassian.net/browse/DSPX-2582)

## Test plan

- [x] SDK unit tests pass (`go test ./...` in `sdk/`)
- [x] `testcontainers-go` no longer in `sdk/go.mod`
- [x] No docker/containerd/moby deps in `sdk/go.mod`
- [x] Integration tests compile in `test/integration/` module
- [ ] CI checks pass
- [ ] Verify with `go mod why -m
github.com/testcontainers/testcontainers-go` from a downstream consumer
after release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

[DSPX-2582]:
https://virtru.atlassian.net/browse/DSPX-2582?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Signed-off-by: Paul Flynn <pflynn@virtru.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@pflynn-virtru
pflynn-virtru force-pushed the fix/export-service-internal-packages branch from e3a7d00 to 54a2f04 Compare March 11, 2026 17:56
@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 181.190824ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 370.178074ms
Throughput 270.14 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 39.886271397s
Average Latency 396.732999ms
Throughput 125.36 requests/second

@pflynn-virtru pflynn-virtru changed the title refactor(service): export internal packages for downstream test isolation refactor(core): export service internal packages for downstream test isolation Mar 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

@pflynn-virtru
pflynn-virtru requested review from a team as code owners March 11, 2026 21:40
@pflynn-virtru pflynn-virtru changed the title refactor(core): export service internal packages for downstream test isolation fix(service): remove testcontainers from consumer dependency graph Mar 11, 2026
@pflynn-virtru
pflynn-virtru force-pushed the fix/export-service-internal-packages branch from 44ed71c to 63cd3e7 Compare March 11, 2026 22:08
@pflynn-virtru
pflynn-virtru requested a review from a team as a code owner March 12, 2026 13:57
@elizabethhealy

Copy link
Copy Markdown
Member

CI coverage seems reduced after the move. In this workflow, only ./policy/... under test/ integration is exercised, and neither test/integration nor test/fixtures are part of the main Go matrix
jobs (go test ./... -short, golangci-lint, govulncheck).

That means entityresolution integration tests + new module-level lint/vuln checks can be skipped.

Could we add dedicated checks (or matrix entries) for:

  • test/integration
  • test/fixtures

Comment thread .github/workflows/checks.yaml Outdated
@pflynn-virtru

Copy link
Copy Markdown
Member Author

/gemini review

pflynn-virtru and others added 6 commits March 12, 2026 10:55
…tion

Move fixtures and subjectmappingbuiltin out of service/internal/ so they
can be imported from a separate integration-test module (DSPX-2582).
This eliminates the testcontainers-go transitive dependency leak into
downstream consumers by enabling integration tests to live in their own
Go module.

- service/internal/fixtures/ → service/pkg/testutil/fixtures/
- service/internal/subjectmappingbuiltin/ → service/pkg/subjectmappingbuiltin/
- Update all import paths and YAML load paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
Move service/integration/ and service/entityresolution/integration/
into test/integration/ so that testcontainers-go and its 60+ transitive
dependencies no longer leak into service/go.mod. Downstream consumers
that depend on the service module will no longer pull in Docker, OCI,
and container runtime libraries.

- service/integration/ → test/integration/policy/
- service/entityresolution/integration/ → test/integration/entityresolution/
- Update test/integration/go.mod with service replace directive
- Update CI workflow to run policy integration tests from new path
- Verify: grep testcontainers service/go.mod → empty

Part of DSPX-2582

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
Fixtures are test-only code and should not be part of the service's
public API surface. Move them to a dedicated test/fixtures module with
its own go.mod, importable by test/integration via replace directive.

- service/pkg/testutil/fixtures/ → test/fixtures/ (own go.mod)
- Extract provisionCmd to service/cmd/provision.go (provisionKeycloak needs it)
- Delete service/cmd/provisionFixtures.go from service binary
- Create test/integration/cmd/provision-fixtures/ as standalone tool
- Update all 15 integration test imports and YAML load path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
The keycloak provisioner is test infrastructure, not a platform
requirement. Move it out of the service binary into a standalone tool
alongside provision-fixtures. Update CI workflows, composite action,
and documentation to use the new invocation pattern.

- service/cmd/provisionKeycloak.go → test/integration/cmd/provision-keycloak/
- Delete service/cmd/provision.go (no longer needed)
- CI uses: GOWORK=off go run -C test/integration ./cmd/provision-keycloak
- Update docs: Contributing.md, Consuming.md, service/README.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
Move subjectmappingbuiltin from service/pkg/ back to service/internal/
now that no cross-module imports remain. The claims_attributes_test.go
unit test (selector evaluation logic) moves into the package itself.
The keycloak_attributes_test.go integration test is refactored to assert
on flattened entity keys instead of calling EvaluateSubjectMappings
directly.

- service/pkg/subjectmappingbuiltin/ → service/internal/subjectmappingbuiltin/
- claims_attributes_test.go → service/internal/subjectmappingbuiltin/
- keycloak_attributes_test.go refactored to remove subjectmappingbuiltin import
- Update all 8 import paths within service/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
This file was unintentionally staged in a prior commit on this branch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
- Merge test/integration/go.mod and test/fixtures/go.mod into test/go.mod
- Create test/main.go CLI: `go run . provision keycloak|fixtures`
- Add `make provision-keycloak` and `make provision-fixtures` Makefile targets
- Move keycloak_data.yaml from service/cmd/ to test/fixtures/
- Update CI workflows, docs, and action.yaml to use new paths
- Docs now lead with `make` targets for better developer experience

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
@pflynn-virtru
pflynn-virtru force-pushed the fix/export-service-internal-packages branch from 842f6bc to 7eb3efd Compare March 12, 2026 14:56
@pflynn-virtru pflynn-virtru changed the title fix(service): remove testcontainers from consumer dependency graph fix(kas): remove testcontainers from consumer dependency graph Mar 12, 2026

@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 effectively refactors the project to separate integration test dependencies from the main service module. By moving test-related code, including fixtures and integration tests, into a new test Go module, you've successfully removed testcontainers-go and its large number of transitive dependencies from the service's dependency graph. The changes to the Makefile, documentation, and CI workflows are consistent with this refactoring. The overall change significantly improves the dependency hygiene for downstream consumers of the service module. I have one suggestion to improve the error handling in the new provisioning CLI tool.

Comment thread test/provision_keycloak.go
@github-actions

Copy link
Copy Markdown
Contributor

The BDD tests imported cmd.LoadKeycloakData from service/cmd which was
removed when provision tools moved to test/. Inline the function
directly in steps_localplatform.go since it's a small utility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
@github-actions

Copy link
Copy Markdown
Contributor

- provision fixtures needs -config-file ../opentdf.yaml since -C test
  changes CWD away from repo root where opentdf.yaml lives
- integration policy tests need ./integration/policy/... path prefix
  and GOWORK=off since working-directory changed from test/integration
  to test

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
@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 200.90316ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 371.172607ms
Throughput 269.42 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 39.243421459s
Average Latency 391.094576ms
Throughput 127.41 requests/second

@github-actions

Copy link
Copy Markdown
Contributor

pflynn-virtru and others added 2 commits March 12, 2026 12:39
The start-up-with-containers action is referenced at @main by external
consumers. Add fallback to legacy `go run ./service provision` so the
action works with both old and new platform layouts during transition.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
…ternal-packages

# Conflicts:
#	service/go.mod
@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 211.216687ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 377.005336ms
Throughput 265.25 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 39.401250715s
Average Latency 392.188076ms
Throughput 126.90 requests/second

@github-actions

Copy link
Copy Markdown
Contributor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Paul Flynn <pflynn@virtru.com>
@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 202.5405ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 393.494985ms
Throughput 254.13 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 43.12781743s
Average Latency 429.633615ms
Throughput 115.93 requests/second

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot added the Stale label Jul 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants