Neuigkeiten

4 Min. Lesezeit

Neuigkeiten

Detailliertere Informationen zu den Änderungen in den einzelnen Versionen finden Sie direkt in GitHub Releases.

v2.0.2

  • 🔒 Sicherheitsverbesserungen: Mehrere Befunde aus der statischen Analyse behoben — die Cache-Schlüssel des Direct-Auth-Pools verwenden jetzt HMAC statt eines reinen SHA-256, eine explizite Containment-Prüfung für das Ausliefern statischer Dateien, HTML-Escaping des Login-Statustexts im SSE Tester, eine URL-Schema-Allowlist für Suchergebnis-Links der Doku-Website und Least-Privilege-Berechtigungen im CI-Workflow.
  • 📦 Abhängigkeits-Updates: Alle Go-Abhängigkeiten aktualisiert, u. a. gin-gonic/gin auf v1.12.0 und lib/pq auf v1.12.3 (erfordert nun Go 1.25).
  • 🌐 3 neue Sprachen: Die Dokumentations-Website ist jetzt auch auf Polnisch, Ukrainisch und Griechisch verfügbar — insgesamt 10 Sprachen.

v2.0.1

  • 🔒 Sicherheitskorrektur: Die transitive HTTP/3-Abhängigkeit quic-go wurde auf v0.59.1 aktualisiert und schließt damit eine QPACK-Trailer-Expansionslücke, die es einem böswilligen Peer ermöglichen konnte, den Speicher von Server oder Client zu erschöpfen.
  • 🎨 Verbesserungen an der Doku-Website: Neuer Hell/Dunkel/Auto-Theme-Umschalter und ein reiner Icon-Sprachumschalter, GitHub/Support-Icon-Links in der Navigationsleiste, Behebung doppelt kodierter JSON-LD-Strukturdaten und ein erweitertes llms.txt.

v2.0.0

  • 🔒 Sichere Standardwerte (breaking): DB_SSLMODE ist nun standardmäßig require, ALLOWED_ORIGINS ist nicht mehr standardmäßig *, und JWT_SECRET muss mindestens 32 Byte lang sein. Bestehende Deployments müssen ihre Konfiguration vor dem Upgrade prüfen.
  • 🧹 Legacy-Bereinigung: Die Weiterleitungspfade /api/… und /sse/… sowie der veraltete JSON-RPC-Alias login wurden entfernt. Verwenden Sie direkt /{prefix}/:database/… und get_jwt.
  • 🛡️ Strengere Authentifizierung & Fehlerbehandlung: Ein neues Login-Rate-Limit pro IP (LOGIN_RATE_LIMIT_PER_IP) schließt eine Lücke für Credential-Spraying, und MCP-Tool-Fehler geben standardmäßig keine rohen PostgreSQL-Fehlermeldungen mehr weiter (mit MCP_SQL_ERROR_DETAIL wieder aktivierbar).
  • ⚙️ Konfigurierbare Verbindungslimits: Das Limit für den Direct-Auth-Verbindungspool ist nun über DIRECT_POOL_LIMIT konfigurierbar.
  • 🔑 Unterstützung externer IdPs (BYO JWT): Neue Einstellungen JWT_ISSUER, JWT_AUDIENCE und JWT_LEEWAY binden ausgestellte Token an einen bestimmten Aussteller/Zielgruppe und ermöglichen eine anpassbare Uhr-Toleranz.
  • 🧰 Neue Tools: Ein eigenständiger JWT Getter (/tools/get-jwt) und SSE Tester (/tools/test-sse) ergänzen den Explorer für schnelle manuelle Tests.
  • 🐛 Stabilitätskorrekturen: Ein blockierendes SSE-Shutdown-Problem und ein Fehler bei der Wiederherstellung toter Verbindungen wurden behoben, der den Server dauerhaft von PostgreSQL trennen konnte.
  • 🧪 CI-Härtung: golangci-lint, der Go-Race-Detector und govulncheck laufen nun bei jedem Build, zusätzlich erweiterte Testabdeckung.
  • 📦 Release-Prozess: CHANGELOG.md hinzugefügt und der Release-Workflow in make release-local (Build & Verifikation) und make release (Tag, Veröffentlichung, Aktualisierung des Homebrew-Taps) aufgeteilt.

v1.3.0

  • 🌐 PgArachne Explorer – moderne PWA: Komplette visuelle und funktionale Überarbeitung – dunkles/helles Farbschema (automatisch), responsives Kartenlayout, JSON-Syntaxhervorhebung, Kopieren-in-die-Zwischenablage-Schaltfläche, bessere Auth-Benutzerführung (Passwort/Token-Tabs), PWA-Installationsunterstützung (Manifest, Icons, Service Worker), freigebbare Links über ?url=…-Parameter.
  • 🛠️ Model Context Protocol (MCP) Unterstützung: Neuer Endpunkt /{prefix}/{db}/mcp mit Standardmethoden resources/list, resources/read, prompts/list, prompts/get – vollständig von PostgreSQL-Funktionen unterstützt und unter Wiederverwendung der bestehenden Authentifizierung & Rollenumschaltung.
  • 🔧 Konfigurierbares API-Präfix: Standard wurde auf /db/{database}/jsonrpc und /db/{database}/sse geändert, die Legacy-Pfade /api/… und /sse/… bleiben als 307-Weiterleitung für Abwärtskompatibilität erhalten. Gesteuert über die Umgebungsvariable API_PREFIX.
  • 🛡️ Idempotenzschutz: Optionales idempotencyKey-Feld in JSON-RPC-Anfragen – automatische Duplikatserkennung (HTTP 409 + Fehlercode bei Kollision) mittels pgarachne.save_idempotency_key().
  • 📚 Dokumentationsverbesserungen: Neuer /tools/-Bereich mit Karten (Explorer + kommende macOS Toolbar), neue Seite“Architectural Decisions”, SECURITY.md mit Anweisungen zur Meldung von Schwachstellen, bessere Typografie in allen Sprachen durch TypoLima, verbesserte 404-Seitenunterstützung für GitHub Pages.
  • 📝 Umbenennung der Login-Methode: JSON-RPC-Methode login umbenannt in get_jwt (alter Name bleibt als veralteter Alias mit Warnung im Log erhalten).
  • 📊 Logging-Bereinigung: Bei der Protokollierung in eine Datei zeigt die Konsole nur minimale Startinformationen an → sauberere Ausgabe in Produktions-/Docker-Umgebungen.

v1.2.0

  • 🛡️ Sicherheit: Die Validierung des Zugriffstokens erfolgt nun vor dem Herstellen einer Datenbankverbindung. Verbesserter Schutz gegen IP-Spoofing (Einstellung TRUSTED_PROXIES hinzugefügt) und Verbergen interner Datenbankfehler vor dem Endbenutzer.
  • 📊 Isolierte Metriken: Der Prometheus-Endpunkt /metrics wurde von der öffentlichen API auf einen eigenen, sicheren Port verschoben (standardmäßig nur unter 127.0.0.1:9090 verfügbar).
  • 📦 Neue Installationsmöglichkeit: Das Projekt verfügt nun über einen offiziellen Homebrew-Tap für macOS und Linux. Builds werden signiert und über GoReleaser generiert.
  • 📚 Überarbeitete Dokumentation: Komplett neues Erscheinungsbild basierend auf dem Hugo-Framework. Blitzschnelle Volltextsuche, Möglichkeit zum Kopieren von Code und Beispiele für den Produktiveinsatz (Nginx-Hardening, BYO JWT) hinzugefügt.
  • ⚙️ Verbesserte Daemon-Verwaltung: Unterstützung für die benutzerdefinierte Pfadkonfiguration der PID_FILE hinzugefügt.

v1.1.0

  • 🔌 Vereinheitlichte API: Aufrufe über POST /api/<db> (die aufgerufene Methode wird im JSON-RPC-Body angegeben).
  • Echtzeit-Benachrichtigungen: Neuer Endpunkt GET /sse/<db>?channels=... zum Abhören von Datenbankereignissen mit Mehrkanalunterstützung.
  • 📈 Observability (Beobachtbarkeit): Detaillierte Prometheus-Metriken für HTTP, Auth, JSON-RPC und SSE.
  • 🏋️ Wesentliche Stabilitätsverbesserungen: Schutz vor langsamen Clients, strikte Timeouts und automatische Verbindungsbereinigung.