Novinky
Novinky
Podrobnější informace o změnách v jednotlivých verzích naleznete přímo v GitHub Releases.
v3.0.0
- 🔑 Nový přihlašovací endpoint (breaking): JSON-RPC metoda
get_jwtje nahrazenaPOST /{prefix}/{database}/token, který přijímá PostgreSQL login a heslo jako HTTP Basic autentizaci — přihlašovací údaje už necestují v těle požadavku a reverzní proxy může omezovat přihlášení podle URL.get_jwtna/jsonrpcnyní vrací 404 /-32601. Migrace:curl -X POST …/token -u login:password. - 📥 Stahování souborů: nový endpoint
POST /{prefix}/{database}/filevrací binární soubory z PostgreSQL funkcí vracejících množinu řádků — jeden řádek přímo, více řádků jako streamovaný ZIP — se stejnou autentizací, přepínáním rolí a rate limitem jako JSON-RPC.capabilities()hlásíkind: "file". Pro nová pole znovu aplikujtesql/schema.sql(je idempotentní). - 🧰 Nástroje: nový JWT Signer, který podepisuje tokeny lokálně v prohlížeči z ručně zadaného
JWT_SECRET(bez síťového přístupu, klíč se nikdy neukládá), screenshoty a hostované verze všech nástrojů (explorer.,sse-tester.,jwt-getter.,jwt-signer.pgarachne.com), klikací karty nástrojů a vzájemné odkazy. Složky vtools/se přejmenovaly naexplorer,jwt-getterasse-tester— pokud je servírujete, upravteSTATIC_FILES_PATH. - 🐛 Opravy a zpřísnění: funkce vracející SQL
NULLnově vrací"result": nullmísto HTTP 500 a ZIP cesty v/fileodmítají názvy nepřátelské Windows a kolize bez ohledu na velikost písmen; prázdné výsledky se vrací zpět (rollback). - 📚 Dokumentace a závislosti: Quick Start krok za krokem, stránka JSON-RPC jako čistá reference, architektonické rozhodnutí „Proč PostgreSQL“, doporučení pro reverzní proxy u velkých stahování a aktualizované Go moduly (bezpečnostní update
golang.org/x/net).
v2.2.0
- 🔑 Volitelné JWT:
JWT_SECRETuž není povinný. Bez něj je podpora JWT vypnutá (get_jwtvrací 404 /-32601) a klienti používají HTTP Basic přihlášení nebo API tokeny. - 🛡️ Omezení počtu pokusů pro všechny způsoby přihlášení (bezpečnost):
LOGIN_RATE_LIMITnově pokrývá i HTTP Basic a Bearer (JWT/API token) na všech endpointech, nejenget_jwt. Dříve šlo hesla bez omezení hádat přesAuthorization: Basic. - 🔒 Přístup řízený pouze oprávněními (breaking):
pgarachne.allowed_schemas()byla odstraněna.capabilities()(a tím i MCPtools/lista export OpenAPI) vypisuje každoujsonbfunkci, kterou smí volající spustit a jejíž schéma smí používat. Kde to není žádoucí, odeberteEXECUTE/USAGE; viz stránka Zabezpečení. - ⚠️ Další breaking změny:
save_idempotency_keynově přijímá rozsah (roli) – před upgradem binárky znovu aplikujtesql/schema.sql;universal_update/universal_deleteodmítnou prázdné filtry, pokud není předáno"all": true;universal_readvselectpřijímá jen*nebo prosté názvy sloupců (uzavírá díru pro SQL injection). - 🐛 Opravy: deadlock SSE při reconnectu listeneru, pomalá nebo chybná přihlášení blokující ostatní požadavky, vykreslování argumentů v MCP
prompts/get, vadný komentář funkce rozbíjejícícapabilities, „falsy“ výsledky zobrazené v Exploreru jako chyby a XSS ve výsledcích Exploreru. - 📚 Dokumentace: nový
llms-full.txt, karta GitHub Sponsors, popisky ikon v navigaci a tato stránka nově uvádí i v2.0.3 a v2.1.0.
v2.1.0
- 📄 Export OpenAPI po jednotlivých metodách:
generate_openapi_spec()nyní navíc vygeneruje jednu dokumentační cestu pro každou vystavenou funkci — pro nástroje, které očekávají jednu operaci na cestu (Swagger UI, Postman, generátory kódu). Nový endpointopenapi.yamlvrací stejnou specifikaci ve formátu YAML. - 🔒 Autentizovaný a rolí filtrovaný OpenAPI export:
/openapi.jsonnyní vyžaduje stejnou autentizaci jako/jsonrpca vrací pouze metody, které smí volat role přihlášeného uživatele — dříve byl endpoint neautentizovaný a zobrazoval úplně všechny metody komukoliv. - 🔌 Aktualizace protokolu MCP: MCP endpoint nyní podporuje výhradně verzi protokolu
2026-07-28; starší handshake (initialize/ping) už není podporován. Úplný referenční popis najdete vAGENTS.md. - 🐛 Oprava poolu spojení: pooly přímé (Basic Auth) autentizace se nyní správně uvolňují, když jsou nečinné — opravuje problém, kdy běžná rotace hesel mohla časem znemožnit přihlášení novým uživatelům.
- 📦 Aktualizace závislostí a CI: rutinní aktualizace Go závislostí (nyní vyžaduje Go 1.26) a odpovídající aktualizace CI nástrojů.
v2.0.3
- 🔒 Zpevnění zabezpečení: přepínání rolí už neskládá SQL dotaz spojováním řetězců (používá parametrizovanou funkci
set_config()), servírování statických souborů nyní prochází přesos.Root, takže symlink nemůže uniknout z nakonfigurované složky, zpřísněna oprávnění log/PID souborů a přísnější validace odkazů ve vyhledávání na webu s dokumentací. - 🚀 Nová stránka Rychlý start (všech 10 jazyků): rychlá cesta od instalace k funkčnímu endpointu bez zacházky přes kompletní Instalaci a Konfiguraci.
- 📄 Lepší dohledatelnost
llms.txt: odkazováno z domovské stránky, stránky MCP, README a hlavičky každé stránky, aby jej LLM prohledávače snadno našly. - 🐛 Opravy: přepínač mobilního menu nyní na širokých obrazovkách správně zobrazuje funkční tlačítko Domů, odkazy na vlastní stránce 404 se nyní správně vyhodnocují bez ohledu na hloubku URL a mobilní menu získalo položku „Domů“.
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/ginna v1.12.0 alib/pqna 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-gona 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_SSLMODEmá nyní výchozí hodnoturequire,ALLOWED_ORIGINSuž nedefaultuje na*aJWT_SECRETmusí 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 aliaslogin. Používejte přímo/{prefix}/:database/…aget_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_AUDIENCEaJWT_LEEWAYumožň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 agovulncheck, rozšířeno testovací pokrytí. - 📦 Vydávací proces: Přidán
CHANGELOG.mda rozdělen release workflow namake release-local(sestavení a ověření) amake 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}/mcpse standardními metodamiresources/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}/jsonrpca/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
idempotencyKeyv 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
loginbyla přejmenována naget_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
/metricsse přesunul z veřejného API na vlastní zabezpečený port (ve výchozím stavu dostupný pouze na127.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í.