Про проєкт та архітектура

2 хв читання

Про проєкт та архітектура

PgArachne™ виступає як легкий, високопродуктивний веб-сервер, що розташований між вашими HTTP-клієнтами та базою даних PostgreSQL. Він усуває потребу в традиційних backend-мовах (таких як Python, Node.js або PHP), відображаючи HTTP-запити безпосередньо на функції бази даних.

Основні технічні можливості

  • Шлюз JSON-RPC 2.0: Усі взаємодії з API відповідають строгій специфікації JSON-RPC 2.0. Немає потреби проєктувати жодних REST-ендпоінтів; ви просто викликаєте SQL-функції за назвою через POST-запити.
  • Нативна автентифікація через БД: Жодних окремих таблиць користувачів. Користувачі входять зі своїми справжніми облiковими даними PostgreSQL, щоб отримати JWT. Альтернативно сервісні облікові записи можуть використовувати постійні API-токени.
  • Маскування ролі (Role Masquerading): PgArachne™ підключається як проксі-користувач, але виконує кожен запит за допомогою SET LOCAL ROLE, перемикаючись на ідентичність автентифікованого користувача. Row-Level Security (RLS) працює автоматично.
  • MCP (Model Context Protocol): Нативний ендпоінт MCP дозволяє AI-клієнтам, таким як Claude Desktop, Cursor та іншим MCP-сумісним інструментам, виявляти ваші функції PostgreSQL як інструменти та викликати їх безпосередньо — без жодного додаткового сполучного коду. Застосовуються ті самі механізми автентифікації та безпеки ролей. Ресурси (таблиці/представлення) та шаблони промптів також надаються через MCP.
  • Сповіщення в реальному часі (SSE): Підписуйтеся на канали PostgreSQL NOTIFY через SSE для живих оновлень без опитування (polling).
  • Сервер статичних файлів: PgArachne™ може надавати статичні ресурси (HTML, JS, CSS), дозволяючи вам розміщувати односторінкові застосунки (SPA) або інструмент Explorer безпосередньо.

Ця архітектура значно спрощує стек: База даних ↔ PgArachne ↔ Frontend/AI-агент.

Структура ендпоінтів: Усі ендпоінти бази даних мають спільний префікс (за умовчанням db, налаштовується через API_PREFIX):
POST /{prefix}/{database}/jsonrpc — шлюз JSON-RPC 2.0
GET  /{prefix}/{database}/sse    — потік PostgreSQL NOTIFY
POST /{prefix}/{database}/mcp   — Model Context Protocol

Переглянути детальні архітектурні рішення