Novità
Novità
Informazioni più dettagliate sulle modifiche in ogni versione sono disponibili direttamente su GitHub Releases.
v2.0.2
- 🔒 Rafforzamento della sicurezza: Risolti diversi rilievi dell’analisi statica — le chiavi della cache del pool di autenticazione diretta usano ora HMAC (invece di un semplice SHA-256), un controllo di contenimento esplicito per la distribuzione dei file statici, l’escaping HTML del testo di stato di login dello SSE Tester, una allowlist degli schemi URL per i link ai risultati di ricerca del sito di documentazione, e permessi a privilegio minimo nel workflow CI.
- 📦 Aggiornamento delle dipendenze: Aggiornate tutte le dipendenze Go, tra cui
gin-gonic/ginalla v1.12.0 elib/pqalla v1.12.3 (ora richiede Go 1.25). - 🌐 3 nuove lingue: Il sito di documentazione è ora disponibile anche in polacco, ucraino e greco — 10 lingue in totale.
v2.0.1
- 🔒 Correzione di sicurezza: Aggiornata la dipendenza transitiva HTTP/3
quic-goalla v0.59.1, chiudendo una vulnerabilità di espansione dei trailer QPACK che poteva consentire a un peer malevolo di esaurire la memoria del server o del client. - 🎨 Miglioramenti al sito della documentazione: Nuovo selettore di tema chiaro/scuro/automatico e selettore di lingua solo a icone, link a icona GitHub/Supporto nella barra di navigazione, corretti i dati strutturati JSON-LD codificati due volte, e un
llms.txtampliato.
v2.0.0
- 🔒 Valori predefiniti sicuri (con modifiche incompatibili):
DB_SSLMODEora èrequiredi default,ALLOWED_ORIGINSnon è più*di default eJWT_SECRETdeve avere almeno 32 byte. I deployment esistenti devono rivedere la configurazione prima dell’aggiornamento. - 🧹 Pulizia del codice legacy: Rimossi i percorsi di reindirizzamento
/api/…e/sse/…e l’alias JSON-RPC deprecatologin. Usa direttamente/{prefix}/:database/…eget_jwt. - 🛡️ Autenticazione e gestione errori più rigorose: Un nuovo limite di login per IP (
LOGIN_RATE_LIMIT_PER_IP) chiude una falla di credential spraying, e gli errori degli strumenti MCP non espongono più il testo grezzo degli errori PostgreSQL per default (riattivabile conMCP_SQL_ERROR_DETAIL). - ⚙️ Limiti di connessione configurabili: Il limite del pool di connessioni per l’autenticazione diretta è ora configurabile tramite
DIRECT_POOL_LIMIT. - 🔑 Supporto per IdP esterni (BYO JWT): Le nuove impostazioni
JWT_ISSUER,JWT_AUDIENCEeJWT_LEEWAYassociano i token emessi a un emittente/pubblico specifico e permettono di regolare la tolleranza di sfasamento orario. - 🧰 Nuovi strumenti: Un JWT Getter (
/tools/get-jwt) e un SSE Tester (/tools/test-sse) autonomi si uniscono all’Explorer per test manuali rapidi. - 🐛 Correzioni di stabilità: Risolto un blocco nello spegnimento SSE e un bug nel ripristino delle connessioni morte che poteva impedire al server di riconnettersi a PostgreSQL.
- 🧪 Rafforzamento della CI: Aggiunti
golangci-lint, il race detector di Go egovulnchecka ogni build, oltre a una maggiore copertura dei test. - 📦 Processo di rilascio: Aggiunto
CHANGELOG.mde suddiviso il flusso di rilascio inmake release-local(build e verifica) emake release(tag, pubblicazione, aggiornamento del tap Homebrew).
v1.3.0
- 🌐 PgArachne Explorer – PWA moderno: Completo rinnovamento visivo e funzionale – tema scuro/chiaro (automatico), layout a schede responsive, evidenziazione della sintassi JSON, pulsante copia negli appunti, migliore UX di autenticazione (schede password/token), supporto all’installazione PWA (manifest, icone, service worker), link condivisibili tramite parametro
?url=…. - 🛠️ Supporto Model Context Protocol (MCP): Nuovo endpoint
/{prefix}/{db}/mcpcon i metodi standardresources/list,resources/read,prompts/list,prompts/get– interamente supportato da funzioni PostgreSQL e che riutilizza l’autenticazione e il cambio di ruolo esistenti. - 🔧 Prefisso API configurabile: Il valore predefinito è stato modificato in
/db/{database}/jsonrpce/db/{database}/sse, i vecchi percorsi/api/…e/sse/…restano disponibili come redirect 307 per compatibilità. Controllato tramite la variabile d’ambienteAPI_PREFIX. - 🛡️ Protezione idempotenza: Campo opzionale
idempotencyKeynelle richieste JSON-RPC – rilevamento automatico dei duplicati (HTTP 409 + codice errore in caso di collisione) utilizzandopgarachne.save_idempotency_key(). - 📚 Miglioramenti alla documentazione: Nuova sezione /tools/ con schede (Explorer + prossima barra degli strumenti per macOS), nuova pagina “Architectural Decisions”, SECURITY.md con istruzioni per la segnalazione di vulnerabilità, migliore tipografia in tutte le lingue tramite TypoLima, supporto migliorato per la pagina 404 per GitHub Pages.
- 📝 Rinominato metodo di accesso: Il metodo JSON-RPC
loginè stato rinominato inget_jwt(il vecchio nome rimane come alias deprecato con avviso nei log). - 📊 Pulizia della registrazione (logging): Quando si registra su file, la console mostra solo informazioni minime di avvio → output più pulito in ambienti di produzione/docker.
v1.2.0
- 🛡️ Sicurezza: La validazione dei token di accesso avviene prima di stabilire una connessione al database. Migliorata la protezione contro l’IP spoofing (aggiunta l’impostazione
TRUSTED_PROXIES) e mascheramento degli errori interni del database per l’utente finale. - 📊 Metriche isolate: L’endpoint Prometheus
/metricsè stato spostato dall’API pubblica a una porta sicura dedicata (di default disponibile solo su127.0.0.1:9090). - 📦 Nuova opzione di installazione: Il progetto ora ha un tap Homebrew ufficiale per macOS e Linux. Le build sono firmate e generate tramite GoReleaser.
- 📚 Documentazione riprogettata: Look completamente nuovo basato sul framework Hugo. Aggiunta una ricerca full-text ultra rapida, la possibilità di copiare il codice e resi disponibili esempi di deployment in produzione (Nginx hardening, BYO JWT).
- ⚙️ Gestione del demone migliorata: Aggiunto il supporto per la configurazione personalizzata del percorso
PID_FILE.
v1.1.0
- 🔌 API unificata: Chiamate tramite
POST /api/<db>(il metodo chiamato è specificato nel corpo JSON-RPC). - ⚡ Notifiche in tempo reale: Nuovo endpoint
GET /sse/<db>?channels=...per l’ascolto di eventi del database con supporto multicanale. - 📈 Osservabilità: Metriche Prometheus dettagliate per HTTP, auth, JSON-RPC e SSE.
- 🏋️ Importanti miglioramenti della stabilità: Protezione contro client lenti, timeout rigorosi e pulizia automatica delle connessioni.