Що нового
Що нового
Детальнішу інформацію про зміни в кожній версії можна знайти на GitHub Releases.
v2.0.2
- 🔒 Посилення безпеки: усунено кілька результатів статичного аналізу — ключі кешу пулу прямої автентифікації тепер використовують HMAC (замість звичайного SHA-256), додано явну перевірку, що файли, які роздаються статично, не можуть вийти за межі налаштованого каталогу, HTML-екранування тексту статусу входу в SSE Tester, білий список URL-схем для посилань результатів пошуку на сайті документації, а також права з найменшими привілеями для CI workflow.
- 📦 Оновлення залежностей: оновлено всі залежності 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, яка могла дозволити зловмиснику виснажити пам’ять сервера або клієнта. - 🎨 Покращення сайту документації: Новий перемикач світлої/темної/автоматичної теми та перемикач мов лише з іконкою, іконки-посилання GitHub/Підтримка в навігаційній панелі, виправлені двічі закодовані структуровані дані JSON-LD та розширений
llms.txt.
v2.0.0
- 🔒 Безпечні значення за замовчуванням (з порушенням сумісності):
DB_SSLMODEтепер за замовчуванням має значенняrequire,ALLOWED_ORIGINSбільше не встановлюється за замовчуванням у*, аJWT_SECRETмає бути щонайменше 32 байти. Перед оновленням наявні розгортання повинні переглянути свою конфігурацію. - 🧹 Очищення застарілого коду: Видалено маршрути перенаправлення
/api/…та/sse/…, а також застарілий псевдонім JSON-RPClogin. Використовуйте безпосередньо/{prefix}/:database/…таget_jwt. - 🛡️ Суворіша автентифікація та обробка помилок: Новий ліміт швидкості входу на IP-адресу (
LOGIN_RATE_LIMIT_PER_IP) закриває прогалину для credential spraying, а помилки інструментів MCP більше не розкривають необроблений текст помилок PostgreSQL за замовчуванням (можна повернути черезMCP_SQL_ERROR_DETAIL). - ⚙️ Налаштовувані ліміти з’єднань: Обмеження пулу з’єднань для прямої автентифікації тепер налаштовується через
DIRECT_POOL_LIMIT. - 🔑 Підтримка зовнішнього постачальника ідентичності (BYO JWT): Нові налаштування
JWT_ISSUER,JWT_AUDIENCEтаJWT_LEEWAYприв’язують видані токени до конкретного видавця/аудиторії та налаштовують допуск розбіжності часу. - 🧰 Нові інструменти: Окремі JWT Getter (
/tools/get-jwt) та SSE Tester (/tools/test-sse) доповнюють Explorer для швидкого ручного тестування. - 🐛 Виправлення надійності: Виправлено зависання завершення роботи SSE та помилку відновлення мертвого з’єднання, яка могла призвести до неможливості сервера повторно підключитися до PostgreSQL.
- 🧪 Посилення CI: До кожної збірки додано
golangci-lint, детектор гонок даних Go таgovulncheck, а також розширено покриття тестами. - 📦 Процес релізу: Додано
CHANGELOG.mdі розділено робочий процес релізу наmake release-local(збірка та перевірка) таmake release(тег, публікація, оновлення Homebrew tap).
v1.3.0
- 🌐 PgArachne Explorer – сучасний PWA: Повне візуальне та функціональне оновлення – темна/світла тема (автоматично), адаптивна компонування карток, підсвічування синтаксису JSON, кнопка копіювання в буфер обміну, кращий UX автентифікації (вкладки пароль/токен), підтримка встановлення PWA (маніфест, іконки, service worker), посилання для спільного доступу через параметр
?url=…. - 🛠️ Підтримка Model Context Protocol (MCP): Новий ендпоінт
/{prefix}/{db}/mcpзі стандартними методамиresources/list,resources/read,prompts/list,prompts/get– повністю підтримується функціями PostgreSQL і повторно використовує наявну автентифікацію та перемикання ролей. - 🔧 Налаштовуваний префікс API: Значення за замовчуванням змінено на
/db/{database}/jsonrpcта/db/{database}/sse, а застарілі шляхи/api/…та/sse/…залишені як перенаправлення 307 для зворотної сумісності. Керується через змінну середовищаAPI_PREFIX. - 🛡️ Захист ідемпотентності: Необов’язкове поле
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(стара назва залишається як застарілий псевдонім із попередженням у логах). - 📊 Очищення логування: При логуванні у файл консоль показує лише мінімальну інформацію про запуск → чистіший вивід у продакшн- / docker-середовищах.
v1.2.0
- 🛡️ Безпека: Перевірка токена доступу тепер відбувається перед встановленням з’єднання з базою даних. Покращено захист від підробки IP-адрес (додано налаштування
TRUSTED_PROXIES) та приховування внутрішніх помилок бази даних від кінцевих користувачів. - 📊 Ізольовані метрики: Ендпоінт Prometheus
/metricsпереміщено з публічного API на власний захищений порт (за замовчуванням доступний лише на127.0.0.1:9090). - 📦 Новий варіант встановлення: Проєкт тепер має офіційний Homebrew tap для macOS і Linux. Збірки підписані та створені за допомогою GoReleaser.
- 📚 Оновлена документація: Повністю новий вигляд на основі фреймворку Hugo. Додано блискавичний повнотекстовий пошук, можливість копіювання коду та приклади для продакшн-розгортання (посилення Nginx, BYO JWT).
- ⚙️ Покращене керування демоном: Додано підтримку налаштування власного шляху
PID_FILE.
v1.1.0
- 🔌 Уніфікований API: Усі викликаються через
POST /api/<db>(метод, що викликається, вказується в тілі JSON-RPC). - ⚡ Сповіщення в реальному часі: Новий ендпоінт
GET /sse/<db>?channels=...для прослуховування подій бази даних з підтримкою кількох каналів. - 📈 Спостережуваність: Детальні метрики Prometheus для HTTP, автентифікації, JSON-RPC та SSE.
- 🏋️ Значні покращення стабільності: Захист від повільних клієнтів, суворі таймаути та автоматичне очищення з’єднань.