Τι Νέο Υπάρχει
Τι Νέο Υπάρχει
Πιο αναλυτικές πληροφορίες σχετικά με τις αλλαγές σε κάθε έκδοση μπορείτε να βρείτε στα GitHub Releases.
v3.0.0
- 🔑 Νέο endpoint σύνδεσης (breaking): η μέθοδος JSON-RPC
get_jwtαντικαθίσταται από τοPOST /{prefix}/{database}/token, που δέχεται το login και τον κωδικό PostgreSQL ως HTTP Basic authentication — τα διαπιστευτήρια δεν ταξιδεύουν πλέον στο σώμα του αιτήματος και ένας reverse proxy μπορεί να περιορίζει τις συνδέσεις ανά URL. Τοget_jwtστο/jsonrpcαπαντά πλέον 404 /-32601. Μετάβαση:curl -X POST …/token -u login:password. - 📥 Λήψη αρχείων: το νέο endpoint
POST /{prefix}/{database}/fileσερβίρει δυαδικά αρχεία από συναρτήσεις PostgreSQL που επιστρέφουν σύνολα γραμμών — μία γραμμή απευθείας, πολλές γραμμές ως ZIP σε streaming — με την ίδια πιστοποίηση, εναλλαγή ρόλου και περιορισμό ρυθμού όπως το JSON-RPC. Ηcapabilities()αναφέρειkind: "file". Εφαρμόστε ξανά τοsql/schema.sql(είναι idempotent) για τα νέα πεδία. - 🧰 Εργαλεία: νέο JWT Signer, που υπογράφει tokens τοπικά στο πρόγραμμα περιήγησης από χειροκίνητα εισαγόμενο
JWT_SECRET(χωρίς πρόσβαση στο δίκτυο, το μυστικό δεν αποθηκεύεται ποτέ), στιγμιότυπα οθόνης και φιλοξενούμενες εκδόσεις κάθε εργαλείου (explorer.,sse-tester.,jwt-getter.,jwt-signer.pgarachne.com), κλικαρίσιμες κάρτες και αμοιβαίοι σύνδεσμοι. Οι φάκελοι στοtools/μετονομάστηκαν σεexplorer,jwt-getterκαιsse-tester— ενημερώστε τοSTATIC_FILES_PATHαν τους σερβίρετε. - 🐛 Διορθώσεις και ενίσχυση: μια συνάρτηση που επιστρέφει SQL
NULLδίνει πλέον"result": nullαντί για HTTP 500· οι διαδρομές ZIP του/fileαπορρίπτουν ονόματα εχθρικά προς τα Windows και συγκρούσεις χωρίς διάκριση πεζών/κεφαλαίων· τα κενά αποτελέσματα αναιρούνται (rollback). - 📚 Τεκμηρίωση και εξαρτήσεις: Quick Start βήμα προς βήμα, η σελίδα JSON-RPC ως καθαρή αναφορά, η αρχιτεκτονική απόφαση «Γιατί PostgreSQL», οδηγίες reverse proxy για μεγάλες λήψεις και ενημερωμένα modules Go (ενημέρωση ασφαλείας του
golang.org/x/net).
v2.2.0
- 🔑 Προαιρετικό JWT: το
JWT_SECRETδεν είναι πλέον υποχρεωτικό. Χωρίς αυτό το JWT απενεργοποιείται (τοget_jwtεπιστρέφει 404 /-32601) και οι πελάτες χρησιμοποιούν διαπιστευτήρια HTTP Basic ή API tokens. - 🛡️ Περιορισμός προσπαθειών για όλες τις μεθόδους ταυτοποίησης (ασφάλεια): το
LOGIN_RATE_LIMITκαλύπτει πλέον και HTTP Basic και Bearer (JWT/API token) σε όλα τα endpoints, όχι μόνο τοget_jwt. Παλαιότερα οι κωδικοί μπορούσαν να μαντευτούν χωρίς όριο μέσωAuthorization: Basic. - 🔒 Πρόσβαση μόνο με βάση τα δικαιώματα (breaking): το
pgarachne.allowed_schemas()αφαιρέθηκε. Τοcapabilities()(και μαζί του το MCPtools/listκαι η εξαγωγή OpenAPI) εμφανίζει κάθε συνάρτησηjsonbπου ο καλών μπορεί να εκτελέσει και της οποίας το σχήμα μπορεί να χρησιμοποιήσει. ΑνακαλέστεEXECUTE/USAGEόπου δεν το επιθυμείτε· δείτε τη σελίδα Ασφάλεια. - ⚠️ Άλλες ασύμβατες αλλαγές: το
save_idempotency_keyδέχεται πλέον πεδίο ανά ρόλο (εφαρμόστε ξανά τοsql/schema.sqlπριν αναβαθμίσετε το εκτελέσιμο), ταuniversal_update/universal_deleteαπορρίπτουν κενά φίλτρα εκτός αν δοθεί"all": true, και τοuniversal_readδέχεται στοselectμόνο*ή απλά ονόματα στηλών (κλείνει ένα κενό SQL injection). - 🐛 Διορθώσεις: αδιέξοδο (deadlock) του SSE κατά την επανασύνδεση του listener, αργές ή αποτυχημένες συνδέσεις που μπλόκαραν άλλα αιτήματα, απόδοση ορισμάτων στο MCP
prompts/get, κακοσχηματισμένο σχόλιο συνάρτησης που χαλούσε τοcapabilities, αποτελέσματα «falsy» που εμφανίζονταν ως σφάλματα στον Explorer και ένα XSS στην προβολή αποτελεσμάτων του Explorer. - 📚 Τεκμηρίωση: νέο
llms-full.txt, κάρτα GitHub Sponsors, tooltips στα εικονίδια της γραμμής πλοήγησης· η σελίδα αυτή περιλαμβάνει πλέον και τα v2.0.3 και v2.1.0.
v2.1.0
- 📄 Εξαγωγή OpenAPI ανά μέθοδο: Η
generate_openapi_spec()παράγει πλέον και μία διαδρομή τεκμηρίωσης-μόνο ανά εκτεθειμένη μέθοδο, για εργαλεία που αναμένουν μία λειτουργία (operation) ανά διαδρομή (Swagger UI, Postman, codegen). Ένα νέο endpointopenapi.yamlεπιστρέφει το ίδιο spec σε μορφή YAML. - 🔒 Πιστοποιημένη εξαγωγή OpenAPI με φιλτράρισμα ανά ρόλο: Το
/openapi.jsonαπαιτεί πλέον την ίδια πιστοποίηση με το/jsonrpcκαι παραθέτει μόνο τις μεθόδους που επιτρέπεται να εκτελέσει ο ρόλος του καλούντος — προηγουμένως το endpoint ήταν μη πιστοποιημένο και παρέθετε όλες τις μεθόδους σε οποιονδήποτε. - 🔌 Αναβάθμιση πρωτοκόλλου MCP: Το endpoint MCP υποστηρίζει πλέον αποκλειστικά την έκδοση πρωτοκόλλου
2026-07-28· η παλιά χειραψίαinitialize/pingδεν υποστηρίζεται πλέον. Δείτε τοAGENTS.mdγια την πλήρη αναφορά. - 🐛 Διόρθωση δεξαμενής συνδέσεων: Οι δεξαμενές συνδέσεων άμεσης αυθεντικοποίησης (Basic Auth) εκκαθαρίζονται πλέον σωστά όταν παραμένουν αδρανείς, διορθώνοντας ένα ζήτημα όπου η τακτική εναλλαγή κωδικών πρόσβασης μπορούσε τελικά να κλειδώσει έξω νέα διαπιστευτήρια.
- 📦 Ενημερώσεις εξαρτήσεων και CI: Τακτική ανανέωση εξαρτήσεων Go (απαιτεί πλέον Go 1.26) και αντίστοιχες αναβαθμίσεις εργαλείων CI.
v2.0.3
- 🔒 Ενίσχυση ασφαλείας: Η εναλλαγή ρόλων δεν δημιουργεί πλέον SQL μέσω συνένωσης συμβολοσειρών (χρησιμοποιεί αντ’ αυτού την παραμετροποιημένη συνάρτηση
set_config()), η εξυπηρέτηση στατικών αρχείων πλέον επιλύει τις διαδρομές μέσω τουos.Rootώστε ένας symlink να μην μπορεί να διαφύγει από τον εξυπηρετούμενο κατάλογο, αυστηροποιήθηκαν τα δικαιώματα των αρχείων log/PID, και ενισχύθηκε η επικύρωση των συνδέσμων αποτελεσμάτων αναζήτησης του ιστότοπου τεκμηρίωσης. - 🚀 Νέα σελίδα Γρήγορης Εκκίνησης (και στις 10 γλώσσες): Μια γρήγορη διαδρομή από την εγκατάσταση σε ένα λειτουργικό endpoint, χωρίς την πλήρη παράκαμψη Εγκατάστασης/Ρύθμισης.
- 📄 Ανακαλυψιμότητα του
llms.txt: Συνδέεται πλέον από την αρχική σελίδα, τη σελίδα MCP, το README, και την κεφαλίδα κάθε σελίδας, ώστε οι crawlers LLM να μπορούν να το εντοπίσουν. - 🐛 Διορθώσεις: Ο εναλλάκτης του μενού για κινητά εμφανίζει πλέον σωστά ένα λειτουργικό κουμπί Αρχικής σε ευρείες οθόνες, οι σύνδεσμοι της προσαρμοσμένης σελίδας 404 πλέον επιλύονται σωστά ανεξάρτητα από το βάθος του URL, και το μενού για κινητά απέκτησε μια καταχώριση «Αρχική».
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 aliaslogin. Χρησιμοποιήστε απευθείας τα/{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, και αυτόματος καθαρισμός συνδέσεων.