Private-Proxy-Modus mit Reconnect und Verbindungsübernahme implementieren #7

Closed
opened 2026-07-17 09:05:49 +02:00 by frank · 1 comment
Owner

Teil von #1. Blockiert durch Upgrade-Handshake und Tunnel-Lifecycle.

Ziel

Der private Proxy baut die ausgehende Verbindung zum öffentlichen Connector-Port auf, hält sie gesund und stellt nach Störungen selbstständig den Dienst wieder her.

Scope

  • Cobra-Subcommand private-proxy.
  • Connector-URL, Shared Key, TLS-CA, Servername und Timeouts über Viper konfigurieren.
  • HTTP/1.1-Upgrade-Request gemäß Protokoll v1.
  • TLS standardmäßig verifizieren; insecure-skip-verify nur als explizite, deutlich gewarnte Entwicklungsoption.
  • Exponentieller Backoff mit Jitter und konfigurierbaren Obergrenzen.
  • Sofortiger Reconnect nach sauber erkanntem Verbindungsende, ohne Busy Loop.
  • Ping/Pong-Liveness nutzen.
  • Definieren, wie eine neue Verbindung eine alte ersetzt; nie zwei aktive Consumer für dieselbe Proxy-Identität.
  • SIGINT/SIGTERM führt zu Goaway, Drain bis zur Deadline und sauberem Exit.
  • Shared Key und TLS-Material können durch Prozessneustart rotiert werden; Hot Reload ist kein MVP-Zwang.

Akzeptanzkriterien

  • Proxy verbindet sich mit Default-Connector-Port 9335.
  • Startreihenfolge ist egal: Der Proxy wartet/retryt, wenn der Server noch nicht verfügbar ist.
  • Integrationstest simuliert Serverneustart, Netzabbruch und Authentisierungsfehler.
  • Backoff enthält Jitter und wird nach erfolgreicher Verbindung zurückgesetzt.
  • Kein Secret erscheint in Logs, Metrics oder Fehlermeldungen.
  • Shutdown hinterlässt keine laufenden Requests oder Goroutines.

Referenzen

Teil von #1. Blockiert durch Upgrade-Handshake und Tunnel-Lifecycle. ## Ziel Der private Proxy baut die ausgehende Verbindung zum öffentlichen Connector-Port auf, hält sie gesund und stellt nach Störungen selbstständig den Dienst wieder her. ## Scope - Cobra-Subcommand private-proxy. - Connector-URL, Shared Key, TLS-CA, Servername und Timeouts über Viper konfigurieren. - HTTP/1.1-Upgrade-Request gemäß Protokoll v1. - TLS standardmäßig verifizieren; insecure-skip-verify nur als explizite, deutlich gewarnte Entwicklungsoption. - Exponentieller Backoff mit Jitter und konfigurierbaren Obergrenzen. - Sofortiger Reconnect nach sauber erkanntem Verbindungsende, ohne Busy Loop. - Ping/Pong-Liveness nutzen. - Definieren, wie eine neue Verbindung eine alte ersetzt; nie zwei aktive Consumer für dieselbe Proxy-Identität. - SIGINT/SIGTERM führt zu Goaway, Drain bis zur Deadline und sauberem Exit. - Shared Key und TLS-Material können durch Prozessneustart rotiert werden; Hot Reload ist kein MVP-Zwang. ## Akzeptanzkriterien - Proxy verbindet sich mit Default-Connector-Port 9335. - Startreihenfolge ist egal: Der Proxy wartet/retryt, wenn der Server noch nicht verfügbar ist. - Integrationstest simuliert Serverneustart, Netzabbruch und Authentisierungsfehler. - Backoff enthält Jitter und wird nach erfolgreicher Verbindung zurückgesetzt. - Kein Secret erscheint in Logs, Metrics oder Fehlermeldungen. - Shutdown hinterlässt keine laufenden Requests oder Goroutines. ## Referenzen - HTTP Upgrade, RFC 9110: https://www.rfc-editor.org/rfc/rfc9110.html - Go TLS: https://pkg.go.dev/crypto/tls
Author
Owner

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+5 mapped

Private-Proxy-Modus mit Reconnect und Verbindungsübernahme implementieren — Teil von #1. Blockiert durch Upgrade-Handshake und Tunnel-Lifecycle.

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+5 mapped` Private-Proxy-Modus mit Reconnect und Verbindungsübernahme implementieren — Teil von #1. Blockiert durch Upgrade-Handshake und Tunnel-Lifecycle.
frank closed this issue 2026-07-17 13:05:08 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
ai-tools/private-proxy-mcp#7
No description provided.