Add MariaDB integration and repositories

Introduce DB support and repos: add modules/database.js (connection pool + runDDL) and SQL DDL files (data/ddl/*) for servers, users, providers, identities and credentials. Add repository layers: users, servers, providers, identities, credentials. Update server.js to run DDL at startup. Update .env.example with DB settings and bump dependencies in package.json/package-lock.json (add mariadb, bump dotenv/helmet/path-to-regexp/zod and dev tool upgrades). Error handling and logging included for DDL and repo operations.
This commit is contained in:
2026-08-30 11:03:12 +02:00
parent f1a2850dc8
commit 7a87a98c82
15 changed files with 737 additions and 358 deletions
+11
View File
@@ -0,0 +1,11 @@
CREATE TABLE IF NOT EXISTS `users` (
`id` UUID PRIMARY KEY DEFAULT UUID(),
`serverId` UUID NULL,
`remoteId` VARCHAR(255) NULL,
`displayName` VARCHAR(255) NOT NULL,
`avatarUrl` TEXT NULL,
`createdAt` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT `fk_users_serverId` FOREIGN KEY (`serverId`) REFERENCES `servers` (`id`) ON DELETE CASCADE,
CONSTRAINT `uq_users_server_remote` UNIQUE (`serverId`, `remoteId`)
)