Novinky

4 min čtení

Novinky

Podrobnější informace o změnách v jednotlivých verzích naleznete přímo v GitHub Releases.

v2.0.2

  • 🔒 Zpevnění zabezpečení: Uzavřeno několik nálezů ze statické analýzy — cache klíče poolu přímé autentizace nyní používají HMAC (namísto pouhého SHA-256), přidána explicitní kontrola, že servírované statické soubory nemohou uniknout z nakonfigurované složky, HTML escapování stavového textu přihlášení v nástroji SSE Tester, whitelist URL schémat pro odkazy ve výsledcích vyhledávání na webu s dokumentací a oprávnění s nejmenšími právy pro CI workflow.
  • 📦 Aktualizace závislostí: Aktualizovány všechny Go závislosti, včetně gin-gonic/gin na v1.12.0 a lib/pq na v1.12.3 (nyní vyžaduje Go 1.25).
  • 🌐 3 nové jazyky: Web s dokumentací je nyní dostupný v polštině, ukrajinštině a řečtině — celkem 10 jazyků.

v2.0.1

  • 🔒 Bezpečnostní oprava: Aktualizována tranzitivní HTTP/3 závislost quic-go na v0.59.1, čímž se uzavírá zranitelnost v expanzi QPACK trailerů, která mohla útočníkovi umožnit vyčerpání paměti serveru nebo klienta.
  • 🎨 Vylepšení webu s dokumentací: Nový přepínač světlého/tmavého/automatického motivu a ikonový přepínač jazyků, ikonové odkazy GitHub/Podpora v navigaci, oprava duplicitně zakódovaných strukturovaných dat JSON-LD a rozšířený llms.txt.

v2.0.0

  • 🔒 Bezpečné výchozí hodnoty (bez zpětné kompatibility): DB_SSLMODE má nyní výchozí hodnotu require, ALLOWED_ORIGINS už nedefaultuje na * a JWT_SECRET musí mít alespoň 32 bajtů. Před upgradem je nutné zkontrolovat konfiguraci stávajících nasazení.
  • 🧹 Odstranění starých cest: Zrušeny přesměrovací cesty /api/… a /sse/… a zastaralý JSON-RPC alias login. Používejte přímo /{prefix}/:database/… a get_jwt.
  • 🛡️ Přísnější autentizace a chybové zprávy: Nový limit přihlašovacích pokusů na IP adresu (LOGIN_RATE_LIMIT_PER_IP) uzavírá mezeru pro credential spraying a chyby MCP nástrojů už standardně nevyzrazují surové chybové zprávy PostgreSQL (lze zapnout zpět pomocí MCP_SQL_ERROR_DETAIL).
  • ⚙️ Konfigurovatelné limity spojení: Limit poolu přímých (Basic Auth) spojení je nyní konfigurovatelný přes DIRECT_POOL_LIMIT.
  • 🔑 Podpora externích IdP (BYO JWT): Nová nastavení JWT_ISSUER, JWT_AUDIENCE a JWT_LEEWAY umožňují navázat vydané tokeny na konkrétního vydavatele/publikum a upravit toleranci časového posunu.
  • 🧰 Nové nástroje: Samostatný JWT Getter (/tools/get-jwt) a SSE Tester (/tools/test-sse) doplňují Explorer pro rychlé manuální testování.
  • 🐛 Opravy stability: Opraveno zaseknuté vypínání SSE a chyba v obnově mrtvého spojení, která mohla serveru znemožnit opětovné připojení k PostgreSQL.
  • 🧪 Zpřísnění CI: Do každého buildu přidán golangci-lint, Go race detector a govulncheck, rozšířeno testovací pokrytí.
  • 📦 Vydávací proces: Přidán CHANGELOG.md a rozdělen release workflow na make release-local (sestavení a ověření) a make release (tag, publikace, aktualizace Homebrew tapu).

v1.3.0

  • 🌐 PgArachne Explorer – moderní PWA: Kompletní vizuální a funkční obnova – tmavý/světlý motiv (automaticky), responzivní rozložení karet, zvýrazňování syntaxe JSON, tlačítko pro kopírování, lepší UX přihlašování (záložky heslo/token), podpora instalace PWA (manifest, ikony, service worker), sdílitelné odkazy pomocí parametru ?url=….
  • 🛠️ Podpora Model Context Protocol (MCP): Nový endpoint /{prefix}/{db}/mcp se standardními metodami resources/list, resources/read, prompts/list, prompts/get – plně podporovaný funkcemi PostgreSQL a znovu využívající stávající autentizaci a přepínání rolí.
  • 🔧 Konfigurovatelný prefix API: Výchozí hodnota změněna na /db/{database}/jsonrpc a /db/{database}/sse, původní cesty /api/… a /sse/… zůstaly zachovány jako přesměrování 307 pro zpětnou kompatibilitu. Řízeno proměnnou prostředí API_PREFIX.
  • 🛡️ Ochrana idempotence: Volitelné pole idempotencyKey v JSON-RPC požadavcích – automatická detekce duplicit (HTTP 409 + chybový kód při kolizi) pomocí pgarachne.save_idempotency_key().
  • 📚 Vylepšení dokumentace: Nová sekce /tools/ s kartami (Explorer + chystaný macOS Toolbar), nová stránka“Architectural Decisions”, SECURITY.md s instrukcemi pro hlášení zranitelností, lepší typografie ve všech jazycích díky TypoLima, vylepšená podpora stránky 404 pro GitHub Pages.
  • 📝 Přejmenování metody přihlášení: JSON-RPC metoda login byla přejmenována na get_jwt (starý název zůstává jako zastaralý alias s varováním v logu).
  • 📊 Vyčištění logování: Při logování do souboru se na konzoli zobrazují pouze minimální informace o spuštění → čistší výstup v produkčních/docker prostředích.

v1.2.0

  • 🛡️ Bezpečnost: Validace přístupových tokenů probíhá ještě před navázáním spojení s databází. Zlepšena ochrana proti podvržení IP adres (přidáno nastavení TRUSTED_PROXIES) a skrytí interních databázových chyb před koncovým uživatelem.
  • 📊 Izolované metriky: Prometheus endpoint /metrics se přesunul z veřejného API na vlastní zabezpečený port (ve výchozím stavu dostupný pouze na 127.0.0.1:9090).
  • 📦 Nová možnost instalace: Projekt má nyní oficiální Homebrew tap pro macOS a Linux. Buildy jsou podepsané a generované přes GoReleaser.
  • 📚 Přepracovaná dokumentace: Zcela nový vzhled postavený na frameworku Hugo. Přidáno bleskové full-textové vyhledávání, možnost kopírování kódu a příklady pro produkční nasazení (Nginx hardening, BYO JWT).
  • ⚙️ Vylepšená správa démona: Přidána podpora pro vlastní konfiguraci cesty k PID_FILE.

v1.1.0

  • 🔌 Sjednocené API: Volání přes POST /api/<db> (volaná metoda je specifikována v JSON-RPC body).
  • Real-time notifikace: Nový endpoint GET /sse/<db>?channels=... pro poslouchání událostí z databáze s podporou více kanálů.
  • 📈 Pozorovatelnost: Podrobné Prometheus metriky pro HTTP, auth, JSON-RPC a SSE.
  • 🏋️ Zásadní zvýšení stability: Ochrana proti pomalým klientům, přísné časové limity a automatické čištění spojení.