Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4419 +/- ##
==========================================
+ Coverage 89.49% 89.55% +0.06%
==========================================
Files 425 441 +16
Lines 20373 20993 +620
==========================================
+ Hits 18232 18800 +568
- Misses 2141 2193 +52 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
We've found a critical bug in the philter proxy library. It incorrectly folds in the The effect is that any site that has more than one domain/site being served (i.e. most servers) will reject the request because the host/site requested gets set as whatever the host for Lightning is. A fix is underway. |
Replace manual conn.req_headers mutation (Headers module) with Philter's purpose-built API. This fixes a security issue where source authentication headers (x-api-key for API auth, authorization for Basic auth) leaked through to the upstream sink. - Delete inner Headers module that mutated conn.req_headers - Add build_extra_headers/2 for proxy headers (x-forwarded-*, x-request-id, sink auth) - Add build_strip_headers/1 to remove source auth headers before forwarding - Add source_auth_types to SinkRequest struct, populated from channel config - Bump Philter to 0.2.0 for extra_headers/strip_headers support - Add 5 new tests: host rewrite regression, source auth stripping, passthrough
# Conflicts: # CHANGELOG.md # lib/lightning/runs/queue.ex # test/lightning/runs/queue_test.exs
The Headers module was extracted into Philter during the refactor, but this test file was left behind referencing the deleted module.
Summary
Channels adds lightweight reverse-proxy functionality with observability to Lightning. Deploy a Channel between two systems and get instant visibility into requests and responses, with full audit trail.
Streaming proxy powered by philter — constant memory regardless of payload size.
Closes #4322 | Go-live target: 26 Feb 2026
Stories
Phase 1 — Foundation
Phase 2 — Core Proxy
Phase 3 — Observability
Phase 4 — UI
Phase 5 — Performance Confidence
Dependency Graph