Принципи
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 або новіший і жодних обов’язкових зовнішніх залежностей: ні черги повідомлень, ні кешу, ні пошукового рушія. Черга вебхуків, вивантаження історії, обмеження частоти запитів — усе вміщується в базі або в процесі.
Щоб дізнатися більше
Section titled “Щоб дізнатися більше”| Розділ | Тема |
|---|---|
| 00 | Ключові рішення та реєстр кодів помилок |
| 01 | Іменування та слагіфікація |
| 02 | Каталог _basedb як джерело істини |
| 03 | Рушій DDL і міграції |
| 04 | Типи полів і відображення в PostgreSQL |
| 05 | Дозволи |
| 06 | Життєвий цикл: перейменування, видалення, очищення |
| 07 | Історія |
| 08 | REST API та вебхуки |
| 09 | Сервер MCP |
| 10 | Програмна архітектура |
| 11 | Інтерфейс |
| 12 | Інтеграція ШІ |
| 13 | Автентифікація |
| 14 | Середовища |
| 15 | Опубліковані форми |
basedb — вільне програмне забезпечення від Eodia, студії ШІ-орієнтованого програмного забезпечення.