Skip to content

Conversation

pflynn-virtru
Copy link
Member

@pflynn-virtru pflynn-virtru commented Sep 30, 2025

This pull request introduces new support for namespace root certificates within the policy service, updates the API to expose these certificates, and makes related improvements to authentication and routing. The most significant changes include extending the Namespace object to include root certificates, updating the API and HTTP routing to allow public access to namespace information, and adding a proof-of-concept implementation for injecting a root CA certificate.

http://localhost:8080/policy/namespace/fqn/https%3A%2F%2Fexample.com

{
  "namespace": {
    "id": "8f1d8839-2851-4bf4-8bf4-5243dbfe517d",
    "name": "example.com",
    "fqn": "https://example.com/",
    "active": true,
    "metadata": {
      "createdAt": "2025-09-30T17:18:59.531514Z",
      "updatedAt": "2025-09-30T17:18:59.531514Z",
      "labels": {

      }
    },
    "grants": [],
    "kasKeys": [],
    "rootCerts": [
      {
        "id": "",
        "x5c": "MIICjTCCAhSg..."
      }
    ]
  }
}

Namespace Root Certificate Support:

  • Added a root_certs repeated field of type Certificate to the Namespace message in policy/objects.proto, and defined a new Certificate message to hold certificate data in x5c format.

@github-actions github-actions bot added comp:policy Policy Configuration ( attributes, subject mappings, resource mappings, kas registry) comp:middleware:auth size/m labels Sep 30, 2025
@pflynn-virtru pflynn-virtru changed the title feat(service): namespace root certificates feat(policy): namespace root certificates Oct 2, 2025
Copy link
Contributor

github-actions bot commented Oct 2, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 355.943783ms
Throughput 280.94 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 37.537871937s
Average Latency 373.798287ms
Throughput 133.20 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 25.788514431s
Average Latency 256.983679ms
Throughput 193.88 requests/second

Copy link
Contributor

github-actions bot commented Oct 2, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 364.260561ms
Throughput 274.53 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 39.432964175s
Average Latency 392.155218ms
Throughput 126.80 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 27.422897667s
Average Latency 272.611464ms
Throughput 182.33 requests/second

Copy link
Contributor

github-actions bot commented Oct 2, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 355.727788ms
Throughput 281.11 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.955485373s
Average Latency 386.922569ms
Throughput 128.35 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 27.012714986s
Average Latency 268.756871ms
Throughput 185.10 requests/second

…or certificate management. Add associated tests.
@pflynn-virtru pflynn-virtru marked this pull request as ready for review October 2, 2025 17:14
@pflynn-virtru pflynn-virtru requested review from a team as code owners October 2, 2025 17:14
Copy link
Contributor

github-actions bot commented Oct 2, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 342.051044ms
Throughput 292.35 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 38.45971998s
Average Latency 382.525569ms
Throughput 130.01 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.076982976s
Average Latency 259.571739ms
Throughput 191.74 requests/second

Copy link
Contributor

github-actions bot commented Oct 2, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 351.284832ms
Throughput 284.67 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 37.804643997s
Average Latency 376.588363ms
Throughput 132.26 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.089247832s
Average Latency 259.643523ms
Throughput 191.65 requests/second

Copy link
Contributor

github-actions bot commented Oct 2, 2025

Benchmark results, click to expand

Benchmark authorization.GetDecisions Results:

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

Benchmark authorization.v2.GetMultiResourceDecision Results:

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

Standard Benchmark Metrics Skipped or Failed

Bulk Benchmark Results

Metric Value
Total Decrypts 100
Successful Decrypts 100
Failed Decrypts 0
Total Time 350.923725ms
Throughput 284.96 requests/second

TDF3 Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 37.261525961s
Average Latency 371.158829ms
Throughput 134.19 requests/second

NANOTDF Benchmark Results:

Metric Value
Total Requests 5000
Successful Requests 5000
Failed Requests 0
Concurrent Requests 50
Total Time 26.007383525s
Average Latency 258.89895ms
Throughput 192.25 requests/second

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:middleware:auth comp:policy Policy Configuration ( attributes, subject mappings, resource mappings, kas registry) size/m
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant