Τι Νέο Υπάρχει

4 λεπτά ανάγνωσης

Τι Νέο Υπάρχει

Πιο αναλυτικές πληροφορίες σχετικά με τις αλλαγές σε κάθε έκδοση μπορείτε να βρείτε στα GitHub Releases.

v2.0.2

  • 🔒 Ενίσχυση ασφαλείας: Διορθώθηκαν αρκετά ευρήματα στατικής ανάλυσης — τα κλειδιά cache της δεξαμενής άμεσης αυθεντικοποίησης χρησιμοποιούν πλέον HMAC (αντί για απλό SHA-256), προστέθηκε ρητός έλεγχος περιορισμού για την εξυπηρέτηση στατικών αρχείων, HTML-escaping του κειμένου κατάστασης σύνδεσης στο SSE Tester, μια λίστα επιτρεπόμενων σχημάτων URL για τους συνδέσμους αποτελεσμάτων αναζήτησης του ιστότοπου τεκμηρίωσης, και δικαιώματα ελάχιστου προνομίου στο workflow CI.
  • 📦 Ενημερώσεις εξαρτήσεων: Αναβαθμίστηκαν όλες οι εξαρτήσεις Go, συμπεριλαμβανομένου του gin-gonic/gin στην v1.12.0 και του lib/pq στην v1.12.3 (απαιτεί πλέον Go 1.25).
  • 🌐 3 νέες γλώσσες: Ο ιστότοπος τεκμηρίωσης είναι πλέον διαθέσιμος στα Πολωνικά, Ουκρανικά και Ελληνικά — 10 γλώσσες συνολικά.

v2.0.1

  • 🔒 Διόρθωση ασφαλείας: Αναβαθμίστηκε η μεταβατική εξάρτηση HTTP/3 quic-go στην έκδοση v0.59.1, κλείνοντας μια ευπάθεια επέκτασης QPACK trailer που θα μπορούσε να επιτρέψει σε έναν κακόβουλο peer να εξαντλήσει τη μνήμη στον server ή στον client.
  • 🎨 Βελτιώσεις στον ιστότοπο τεκμηρίωσης: Νέος εναλλάκτης θέματος light/dark/auto και εναλλάκτης γλώσσας μόνο με εικονίδιο, εικονίδια-συνδέσμους GitHub/Support στη γραμμή πλοήγησης, διόρθωση διπλά κωδικοποιημένων δομημένων δεδομένων JSON-LD, και επέκταση του llms.txt.

v2.0.0

  • 🔒 Ασφαλείς προεπιλογές (breaking): Το DB_SSLMODE έχει πλέον προεπιλογή require, το ALLOWED_ORIGINS δεν έχει πλέον προεπιλογή *, και το JWT_SECRET πρέπει να είναι τουλάχιστον 32 bytes. Οι υπάρχουσες εγκαταστάσεις πρέπει να ελέγξουν τη ρύθμισή τους πριν από την αναβάθμιση.
  • 🧹 Καθαρισμός παλαιού κώδικα: Αφαιρέθηκαν οι διαδρομές ανακατεύθυνσης /api/… και /sse/… και το ξεπερασμένο JSON-RPC alias login. Χρησιμοποιήστε απευθείας τα /{prefix}/:database/… και get_jwt.
  • 🛡️ Αυστηρότερη πιστοποίηση & χειρισμός σφαλμάτων: Νέο όριο ρυθμού συνδέσεων ανά IP (LOGIN_RATE_LIMIT_PER_IP) κλείνει ένα κενό ασφαλείας απέναντι σε credential spraying, και τα σφάλματα εργαλείων MCP δεν διαρρέουν πλέον το ανεπεξέργαστο κείμενο σφάλματος της PostgreSQL από προεπιλογή (μπορείτε να το ενεργοποιήσετε ξανά με το MCP_SQL_ERROR_DETAIL).
  • ⚙️ Ρυθμιζόμενα όρια συνδέσεων: Το ανώτατο όριο του connection pool για άμεση πιστοποίηση είναι πλέον ρυθμιζόμενο μέσω του DIRECT_POOL_LIMIT.
  • 🔑 Υποστήριξη εξωτερικού IdP (BYO JWT): Οι νέες ρυθμίσεις JWT_ISSUER, JWT_AUDIENCE, και JWT_LEEWAY συνδέουν τα εκδοθέντα tokens με συγκεκριμένο εκδότη/audience και ρυθμίζουν την ανοχή απόκλισης ρολογιού.
  • 🧰 Νέα εργαλεία: Ένα αυτόνομο JWT Getter (/tools/get-jwt) και SSE Tester (/tools/test-sse) προστίθενται στο Explorer για ταχεία χειροκίνητη δοκιμή.
  • 🐛 Διορθώσεις αξιοπιστίας: Διορθώθηκε ένα κολλημένο shutdown SSE και ένα σφάλμα ανάκτησης νεκρής σύνδεσης που μπορούσε να αφήσει τον server ανίκανο να επανασυνδεθεί στην PostgreSQL.
  • 🧪 Ενίσχυση CI: Προστέθηκαν τα golangci-lint, ο Go race detector, και το govulncheck σε κάθε build, μαζί με διευρυμένη κάλυψη δοκιμών.
  • 📦 Διαδικασία έκδοσης: Προστέθηκε το CHANGELOG.md και το release workflow χωρίστηκε σε make release-local (build & επαλήθευση) και make release (tag, δημοσίευση, ενημέρωση του Homebrew tap).

v1.3.0

  • 🌐 PgArachne Explorer – μοντέρνο PWA: Πλήρης οπτική & λειτουργική ανανέωση – θέμα dark/light (αυτόματο), responsive διάταξη καρτών, επισήμανση σύνταξης JSON, κουμπί αντιγραφής στο clipboard, καλύτερη εμπειρία χρήστη πιστοποίησης (καρτέλες κωδικού/token), υποστήριξη εγκατάστασης PWA (manifest, εικονίδια, service worker), κοινοποιήσιμοι σύνδεσμοι μέσω της παραμέτρου ?url=….
  • 🛠️ Υποστήριξη Model Context Protocol (MCP): Νέο endpoint /{prefix}/{db}/mcp με τυπικές μεθόδους resources/list, resources/read, prompts/list, prompts/get – πλήρως υποστηριζόμενο από συναρτήσεις PostgreSQL και επαναχρησιμοποιώντας την υπάρχουσα πιστοποίηση & εναλλαγή ρόλων.
  • 🔧 Ρυθμιζόμενο πρόθεμα API: Η προεπιλογή άλλαξε σε /db/{database}/jsonrpc και /db/{database}/sse, με τις παλαιές διαδρομές /api/… και /sse/… να διατηρούνται ως ανακατευθύνσεις 307 για συμβατότητα με το παρελθόν. Ελέγχεται μέσω της μεταβλητής περιβάλλοντος API_PREFIX.
  • 🛡️ Προστασία idempotency: Προαιρετικό πεδίο idempotencyKey στα αιτήματα JSON-RPC – αυτόματη ανίχνευση διπλότυπων (HTTP 409 + κωδικός σφάλματος σε σύγκρουση) χρησιμοποιώντας το pgarachne.save_idempotency_key().
  • 📚 Βελτιώσεις τεκμηρίωσης: Νέα ενότητα /tools/ με κάρτες (Explorer + επικείμενο macOS Toolbar), νέα σελίδα «Architectural Decisions», SECURITY.md με οδηγίες αναφοράς ευπαθειών, καλύτερη τυπογραφία σε όλες τις γλώσσες μέσω του TypoLima, βελτιωμένη υποστήριξη σελίδας 404 για το GitHub Pages.
  • 📝 Μετονομασία μεθόδου σύνδεσης: Η μέθοδος JSON-RPC login μετονομάστηκε σε get_jwt (το παλιό όνομα διατηρείται ως ξεπερασμένο alias με προειδοποίηση στα logs).
  • 📊 Καθαρισμός καταγραφής: Κατά την καταγραφή σε αρχείο, η κονσόλα εμφανίζει μόνο ελάχιστες πληροφορίες εκκίνησης → καθαρότερη έξοδος σε περιβάλλοντα παραγωγής/docker.

v1.2.0

  • 🛡️ Ασφάλεια: Η επαλήθευση του access token πραγματοποιείται πλέον πριν από τη δημιουργία σύνδεσης με τη βάση δεδομένων. Βελτιωμένη προστασία έναντι IP spoofing (προστέθηκε η ρύθμιση TRUSTED_PROXIES) και απόκρυψη εσωτερικών σφαλμάτων βάσης δεδομένων από τους τελικούς χρήστες.
  • 📊 Απομονωμένες μετρήσεις: Το endpoint Prometheus /metrics μετακινήθηκε από το δημόσιο API στη δική του ασφαλή θύρα (διαθέσιμο εξ ορισμού μόνο στο 127.0.0.1:9090).
  • 📦 Νέα επιλογή εγκατάστασης: Το έργο διαθέτει πλέον επίσημο Homebrew tap για macOS και Linux. Τα builds είναι υπογεγραμμένα και δημιουργούνται μέσω του GoReleaser.
  • 📚 Ανασχεδιασμένη τεκμηρίωση: Εντελώς νέα εμφάνιση βασισμένη στο framework Hugo. Προστέθηκε αστραπιαία αναζήτηση πλήρους κειμένου, δυνατότητα αντιγραφής κώδικα, και παραδείγματα ανάπτυξης σε παραγωγικό περιβάλλον (Nginx hardening, BYO JWT).
  • ⚙️ Βελτιωμένη διαχείριση daemon: Προστέθηκε υποστήριξη για προσαρμοσμένη ρύθμιση διαδρομής PID_FILE.

v1.1.0

  • 🔌 Ενοποιημένο API: Όλες οι κλήσεις γίνονται μέσω POST /api/<db> (η καλούμενη μέθοδος καθορίζεται στο σώμα JSON-RPC).
  • Ειδοποιήσεις σε πραγματικό χρόνο: Νέο endpoint GET /sse/<db>?channels=... για ακρόαση συμβάντων βάσης δεδομένων με υποστήριξη πολλών καναλιών.
  • 📈 Παρατηρησιμότητα: Λεπτομερείς μετρήσεις Prometheus για HTTP, auth, JSON-RPC, και SSE.
  • 🏋️ Σημαντικές βελτιώσεις σταθερότητας: Προστασία έναντι αργών clients, αυστηρά timeouts, και αυτόματος καθαρισμός συνδέσεων.