HarperFast / HarperFast/symphony

PROXY v2 fingerprint/mTLS forwarding: end-to-end integration test against the real Harper consumer

Open
#29 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Follow-up from @hdbjeff's review on #23 (documentation/assurance point) and the mTLS forwarding work in #27.

## What's missing
Symphony's PROXY v2 TLV emission (JA3 `0xE0` / JA4 `0xE1` fingerprints, and mTLS client-cert chain `0xE2` + SSL/authority/ALPN TLVs from #27) is currently covered only by symphony-side encoder tests — we assert the bytes symphony *writes*, not that the intended consumer *reads* them correctly.

The consumer is Harper, whose PROXY v1/v2 decoder lands in [HarperFast/harper#1858](https://github.com/HarperFast/harper/pull/1858) (shared decoder + `withProxyProtocol` for MQTT/raw sockets, synthesized `getPeerCertificate`). The two sides agree on a wire contract (TLV type numbers, SSL `verify` semantics, DER-leaf-first chain ordering) that nothing tests jointly.

## Proposed
Once symphony #27 and harper #1858 both merge, add an integration test that:
1. Stands up a real Harper instance behind symphony (TLS termination + mTLS on a route with `sourceAddressHeader: 'proxyProtocolV2'`).
2. Connects a client with a CA-signed client cert.
3. Asserts Harper authenticates the request via the forwarded cert (HTTP **and** MQTT paths) and sees the correct fingerprint — i.e. the full wire contract round-trips.

This belongs wherever the cross-repo harness lives (symphony's `test:integration` already pulls Harper as a dev-dep, or a harper-side integration test). Documenting the expected consumer / trust boundary / TLV encoding in the README (partially done in #27) is the lighter-weight half of the same ask.

Blocked on: #27, HarperFast/harper#1858.

🤖 Filed by Claude Fable 5 on Kris's behalf

Contributor guide

Open the contributing guide

Research direction

Start by reviewing symphony's existing test:integration harness and the README's PROXY v2 documentation, then confirm the prerequisites in #27 and HarperFast/harper#1858. Add a real Harper integration covering TLS/mTLS, HTTP and MQTT, forwarded certificate authentication, and JA3/JA4 fingerprints; done means the complete wire contract is verified end to end.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking, security, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.