Skip to content

docs(rfc): rfc 0030 specified — tls/mtls on the data-plane listeners - #440

Merged
jensholdgaard merged 8 commits into
mainfrom
rfc0030-tls-specified
Jul 8, 2026
Merged

docs(rfc): rfc 0030 specified — tls/mtls on the data-plane listeners#440
jensholdgaard merged 8 commits into
mainfrom
rfc0030-tls-specified

Conversation

@jensholdgaard

@jensholdgaard jensholdgaard commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Advances epic #331's next slice ("TLS/mTLS on both listeners first — everything else depends on it"). Spec only — no implementation until maintainer sign-off on §5 (the RFC 0019/0029 pattern).

Design in one breath: opt-in per-listener tls blocks mirroring the OTel Collector's configtls server model (cert_file/key_file/client_ca_file ⇒ require-and-verify mTLS, min_version default 1.2, reload_interval; field semantics verified against the Collector docs via the OTel MCP), one rustls TlsAcceptor seam in front of all three listeners (gRPC 4317 / HTTP 4318 / querier+MCP 4319 — tonic's own tls feature deliberately unused), RwLock-swapped cert reload (std only, no new runtime crate) that never drops the listener on a bad rotation, plaintext+credentials ⇒ startup warning (not an error — mesh termination stays legitimate). mTLS is transport hardening only; identity remains the RFC 0026/0029 bearer layer (cert-SAN→tenant deferred, §7.1).

Nine §5 GWT arms incl. served Collector-shaped end-to-end (.8), reload under rotation (.6), and min-version enforcement (.9). Test certs minted with rcgen at test time — no committed key material.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added a new RFC entry for TLS/mTLS support on listener endpoints.
    • Documented optional per-listener TLS settings, certificate validation rules, mTLS behavior, certificate reload handling, and related acceptance criteria.

…331)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jensholdgaard
jensholdgaard requested a review from Copilot July 8, 2026 16:48
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@jensholdgaard, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 33 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 53950c5b-f634-4f09-b2ff-92fe7caafd6a

📥 Commits

Reviewing files that changed from the base of the PR and between 6219919 and 229a49c.

📒 Files selected for processing (1)
  • docs/rfcs/0030-tls-mtls-listeners.md
📝 Walkthrough

Walkthrough

Adds RFC 0030 documenting TLS/mTLS support for Ourios data-plane listeners (OTLP gRPC, OTLP HTTP, querier HTTP/MCP), covering config schema, certificate reload, mTLS semantics, validation rules, acceptance criteria, and testing strategy, plus a linking entry in docs/SUMMARY.md.

Changes

RFC Documentation

Layer / File(s) Summary
RFC index entry
docs/SUMMARY.md
Adds a link to RFC 0030 under the RFCs section.
Front-matter, summary, and motivation
docs/rfcs/0030-tls-mtls-listeners.md
Introduces RFC metadata, summary of TLS/mTLS deliverables (listener TLS, mTLS, cert reload, config model), and motivation for the change.
Design and alternatives
docs/rfcs/0030-tls-mtls-listeners.md
Describes the config schema (*_tls blocks), validation rules, shared TLS builder/acceptor implementation shape, reload behavior, mTLS semantics with bearer auth, and rejected alternative approaches.
Acceptance criteria, testing, open questions, references
docs/rfcs/0030-tls-mtls-listeners.md
Lists Given/When/Then acceptance criteria, the testing strategy with minted certs, open questions, and references to related RFCs and libraries.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

  • jensholdgaard/ourios#374: RFC 0030's mTLS/TLS semantics compose with and warn about the bearer auth behavior defined in this related PR's RFC 0026.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description lacks the required Summary, Related, and Checklist sections from the repository template. Rewrite the PR description using the template headings and include the summary, related issue/RFC link, and checklist items.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the RFC and the TLS/mTLS listener change, matching the main scope of the PR.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rfc0030-tls-specified

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.

Copilot AI 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.

Pull request overview

Advances the RFC process by adding RFC 0030 in specified state, documenting the intended design for enabling opt-in TLS/mTLS on all data-plane listeners (OTLP gRPC 4317, OTLP HTTP 4318, querier+MCP 4319), including certificate reload semantics and acceptance criteria aligned with the project’s verification gates.

Changes:

  • Add new specified RFC describing TLS/mTLS configuration, runtime wiring approach (rustls + tokio-rustls), and reload behavior.
  • Define Given/When/Then acceptance criteria and a testing strategy for the eventual implementation.
  • Register the new RFC in the mdBook SUMMARY.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
docs/SUMMARY.md Adds RFC 0030 to the RFC index.
docs/rfcs/0030-tls-mtls-listeners.md Introduces RFC 0030 (specified) describing TLS/mTLS listener design, config surface, and acceptance criteria.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md
… schema

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/rfcs/0030-tls-mtls-listeners.md`:
- Around line 299-301: The References section uses the wrong setting name for
the TLS config and drops the `_secs` suffix, which can mislead readers away from
the actual field. Update the reference text in the RFC to use the same
terminology as the config model defined in §3.1, specifically the
reload_interval_secs field, and keep the surrounding config symbols like
cert_file, key_file, client_ca_file, and min_version consistent.
- Around line 249-255: Clarify the ownership of RFC0030.8 by rewriting this
scenario so it no longer implies a single binary serves both receiver listeners
and the querier; the current wording conflicts with the binary split established
in the RFC. Update the wording in the RFC0030.8 section to either describe a
deployment-level end-to-end flow across ourios-ingester and ourios-server, or
split the scenario into separate steps tied to each binary so the
implementation/test boundary is explicit.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7e28c56e-07d3-4024-acb1-0257db323af0

📥 Commits

Reviewing files that changed from the base of the PR and between 938e186 and 6219919.

📒 Files selected for processing (2)
  • docs/SUMMARY.md
  • docs/rfcs/0030-tls-mtls-listeners.md

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
…l claim

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md Outdated
Comment thread docs/rfcs/0030-tls-mtls-listeners.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread docs/rfcs/0030-tls-mtls-listeners.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

Copilot AI 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.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@jensholdgaard
jensholdgaard merged commit dc64aff into main Jul 8, 2026
24 checks passed
@jensholdgaard
jensholdgaard deleted the rfc0030-tls-specified branch July 8, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants