Перейти до вмісту

Принципи

basedb спроєктовано на основі архітектурного документа — шістнадцять розділів у репозиторії, у docs/architecture. Його розділ 00 фіксує двадцять п’ять рішень; ось їхня суть.

Дані — це таблиці, а не формат

Section titled “Дані — це таблиці, а не формат”

База користувача — це схема PostgreSQL, таблиця — це таблиця, поле — типізований стовпець зі зрозумілою назвою. Жодної EAV (сутність — атрибут — значення), жодного JSON-документа «для всього», жодних непрозорих назв. Каталог _basedb описує ці об’єкти, але не замінює їх.

Бажаний наслідок: прямий SQL — це легітимний спосіб використання. Обмеження задано в базі, історія фіксується тригером — ніщо не передбачає, що запис проходить через застосунок.

Єдина точка прийняття рішень щодо дозволів

Section titled “Єдина точка прийняття рішень щодо дозволів”

Інтерфейс, REST API, сервер MCP, опубліковані форми, вебхуки: усе проходить через ту саму точку застосування дозволів у ядрі. Інтерфейс — такий самий споживач API, як і будь-який інший: жодних приватних маршрутів, жодних службових токенів. Ресурс, який не можна бачити, відповідає точнісінько так само, як ресурс, якого не існує.

Ядро вирішує, адаптери перекладають

Section titled “Ядро вирішує, адаптери перекладають”

Монорепозиторій на TypeScript: @basedb/core містить усю логіку (каталог, рушій DDL, дозволи, записи, історію); apps/api (Hono), apps/mcp і apps/web (Next.js) — це адаптери, які не викликають один одного. Інтерфейс ніколи не залежить від ядра: він спілкується через HTTP, і крапка.

Ніщо не втрачається без рішення

Section titled “Ніщо не втрачається без рішення”

Видалення переміщує вбік, не знищуючи: видалена таблиця зберігає свої рядки, доступні для читання через SQL під зміненою назвою, і її можна відновити. Перейменування фізичної назви лишає стару назву доступною через псевдонім. Остаточне очищення — це рішення адміністрування, якому передує перевірений експорт.

PostgreSQL — і нічого більше

Section titled “PostgreSQL — і нічого більше”

PostgreSQL 16 або новіший і жодних обов’язкових зовнішніх залежностей: ні черги повідомлень, ні кешу, ні пошукового рушія. Черга вебхуків, вивантаження історії, обмеження частоти запитів — усе вміщується в базі або в процесі.

РозділТема
00Ключові рішення та реєстр кодів помилок
01Іменування та слагіфікація
02Каталог _basedb як джерело істини
03Рушій DDL і міграції
04Типи полів і відображення в PostgreSQL
05Дозволи
06Життєвий цикл: перейменування, видалення, очищення
07Історія
08REST API та вебхуки
09Сервер MCP
10Програмна архітектура
11Інтерфейс
12Інтеграція ШІ
13Автентифікація
14Середовища
15Опубліковані форми

basedb — вільне програмне забезпечення від Eodia, студії ШІ-орієнтованого програмного забезпечення.