Про проєкт та архітектура
Про проєкт та архітектура
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