Gå til indhold

Principper

basedb er udviklet ud fra et arkitekturdokument — seksten kapitler i repositoriet under docs/architecture. Kapitel 00 fastlægger femogtyve beslutninger; her er ånden i dem.

En brugerdatabase er et PostgreSQL-skema, en tabel er en tabel, et felt er en kolonne med en type og et læsbart navn. Ingen EAV (entity-attribute-value), intet JSON-dokument som rodekasse, ingen uigennemsigtige navne. Kataloget _basedb beskriver disse objekter; det erstatter dem ikke.

Tilsigtet konsekvens: direkte SQL er en legitim brug. Begrænsningerne ligger i databasen, historikken fanges af triggere — intet forudsætter, at skrivningen går gennem applikationen.

Ét enkelt beslutningspunkt for tilladelser

Sektion kaldt “Ét enkelt beslutningspunkt for tilladelser”

Brugerfladen, REST-API’et, MCP-serveren, de delte formularer, webhooks: alt går gennem det samme håndhævelsespunkt for tilladelser i kernen. Brugerfladen er en forbruger af API’et som enhver anden — ingen private ruter, ingen servicetokens. En ressource, du ikke kan se, svarer præcis som en ressource, der ikke findes.

Et TypeScript-monorepo: @basedb/core rummer al logikken (katalog, DDL-motor, tilladelser, poster, historik); apps/api (Hono), apps/mcp og apps/web (Next.js) er adaptere, der ikke kalder hinanden. Brugerfladen afhænger aldrig af kernen: den taler HTTP, punktum.

Sletning flytter til side uden at ødelægge: en slettet tabel beholder sine rækker, som kan læses i SQL under et flyttet navn, og kan gendannes. Omdøbes et fysisk navn, serveres det gamle fortsat via et alias. Den permanente sletning er en administrativ beslutning, der altid indledes med en kontrolleret eksport.

PostgreSQL 16 eller nyere og ingen obligatoriske eksterne afhængigheder: ingen beskedkø, ingen cache, ingen søgemaskine. Webhook-køen, tømningen af historikken, hastighedsgrænserne — alt ligger i databasen eller i processen.

KapitelEmne
00Grundlæggende beslutninger og register over fejlkoder
01Navngivning og slugificering
02Kataloget _basedb, sandhedskilden
03DDL-motor og migreringer
04Felttyper og deres afspejling i PostgreSQL
05Tilladelser
06Livscyklus: omdøbning, sletning, permanent sletning
07Historik
08REST-API og webhooks
09MCP-server
10Softwarearkitektur
11Brugerflade
12AI-integration
13Autentificering
14Miljøer
15Delte formularer

basedb er fri software fra Eodia, et AI-native softwarestudie.