Skip to content

chore(ers): add multi-strategy provider contract matrix - #3809

Open
jrschumacher wants to merge 1 commit into
fix/3801-chain-no-rehydratefrom
test-3801-provider-contract-matrix
Open

chore(ers): add multi-strategy provider contract matrix#3809
jrschumacher wants to merge 1 commit into
fix/3801-chain-no-rehydratefrom
test-3801-provider-contract-matrix

Conversation

@jrschumacher

Copy link
Copy Markdown
Member

Summary

  • add a shared resolved-token-chain contract suite for multi-strategy providers
  • enroll claims, SQLite-backed SQL, and seeded LDAP adapters in the same single-token and multi-token scenarios
  • verify token flow avoids a second ResolveEntities call while caller-provided entity chains still use ERS
  • document how new providers and new behavior variations join the matrix

Validation

  • cd service && go test ./entityresolution/integration -run TestMultiStrategyProviderResolvedTokenChainContract -count=1
  • cd service && go test ./entityresolution/multi-strategy/... ./internal/access/v2 -count=1 -coverprofile=/tmp/3801-enhanced.cover
  • cd service && go test ./entityresolution/integration -run "Test(MultiStrategyProviderResolvedTokenChainContract|MultiStrategyEntityResolutionV2|Integration_ResolveEntities_ReturnsPopulatedRepresentation|Integration_TokenChainPreservesResolvedClaims|Integration_FailureIsolation_MixedBatch)" -count=1
  • cd service && golangci-lint run ./internal/access/v2 ./entityresolution/integration
  • go test ./tests-bdd/cukes -count=1

Coverage

  • service/internal/access/v2: 68.5% -> 70.1%
  • aggregate targeted packages: 55.2% -> 55.8%

Stacked on #3808.

@jrschumacher
jrschumacher requested a review from a team as a code owner July 31, 2026 08:08
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6ded7a27-0fc8-4ee9-8516-570343463170

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Benchmark Statistics

Name № Requests Avg Duration Min Duration Max Duration

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 0
Failed Decrypts 100
Total Time 266.161471ms
Throughput 0.00 requests/second

Error Summary

Error Message Occurrences
splitKey.unable to reconstruct split key: map[{https://localhost:8080 }:tdf: rewrap request 403
kao unwrap failed for split {https://localhost:8080 }: permission_denied: request error
rpc error: code = PermissionDenied desc = forbidden: pdp-denied]
tdf: rewrap request 403
kao unwrap failed for split {https://localhost:8080 }: permission_denied: request error
rpc error: code = PermissionDenied desc = forbidden: pdp-denied 100 occurrences

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 0
Failed Requests 5000
Concurrent Requests 50
Total Time 41.518467285s
Throughput 0.00 requests/second

Error Summary:

Error Message Occurrences
read error: reader.WriteTo failed: splitKey.unable to reconstruct split key: map[{https://localhost:8080 }:tdf: rewrap request 403
kao unwrap failed for split {https://localhost:8080 }: permission_denied: request error
rpc error: code = PermissionDenied desc = forbidden: pdp-denied]
tdf: rewrap request 403
kao unwrap failed for split {https://localhost:8080 }: permission_denied: request error
rpc error: code = PermissionDenied desc = forbidden: pdp-denied
5000 occurrences

@jrschumacher jrschumacher changed the title test(entityresolution): add multi-strategy provider contract matrix test(ers): add multi-strategy provider contract matrix Jul 31, 2026
@jrschumacher
jrschumacher force-pushed the test-3801-provider-contract-matrix branch from 103cc9c to 1663292 Compare July 31, 2026 08:18
@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 203.289019ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 403.460748ms
Throughput 247.86 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 49.435820728s
Average Latency 492.287769ms
Throughput 101.14 requests/second

@jrschumacher
jrschumacher force-pushed the test-3801-provider-contract-matrix branch from 1663292 to 7ae6c88 Compare July 31, 2026 08:36
@jrschumacher jrschumacher changed the title test(ers): add multi-strategy provider contract matrix chore(ers): add multi-strategy provider contract matrix Jul 31, 2026
@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 276.22735ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 574.389754ms
Throughput 174.10 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 49.779284466s
Average Latency 496.290737ms
Throughput 100.44 requests/second

@jrschumacher
jrschumacher force-pushed the test-3801-provider-contract-matrix branch from 7ae6c88 to 0eb2217 Compare July 31, 2026 08:52
Signed-off-by: Ryan Schumacher <jschumacher@virtru.com>
@jrschumacher
jrschumacher force-pushed the test-3801-provider-contract-matrix branch from 0eb2217 to 5ef0af5 Compare July 31, 2026 08: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 212.945614ms

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 410.632351ms
Throughput 243.53 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 49.479333661s
Average Latency 493.43816ms
Throughput 101.05 requests/second

@github-actions

Copy link
Copy Markdown
Contributor

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

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 436.429735ms
Throughput 229.13 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 52.45521858s
Average Latency 521.979738ms
Throughput 95.32 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant