HarperFast / HarperFast/symphony
PROXY v2 fingerprint/mTLS forwarding: end-to-end integration test against the real Harper consumer
- 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
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