Ga naar hoofdinhoud

Database

De applicatie gebruikt PostgreSQL met Prisma ORM en de @prisma/adapter-pg-driver.

Schema

better-auth-modellen

Deze modellen worden beheerd door better-auth voor authenticatie:

  • User: id, naam, e-mail, e-mailGeverifieerd, afbeelding, rol (gebruiker/beheerder), aangemaaktOp, bijgewerktOp
  • Session: id, verlooptOp, ipAdres, userAgent, gebruikersId
  • Account: id, accountId, providerId, gebruikersId, accessToken, refreshToken, idToken, scope, wachtwoord, verlooptOp
  • Verification: id, identificatie, waarde, verlooptOp, aangemaaktOp

Applicatiemodellen

Vm: Virtuele machine-record:

KolomTypeBeschrijving
idInt (automatisch oplopend)Primaire sleutel
vmidIntProxmox VM-ID
nodeStringProxmox node-naam
hostnameStringVM-hostnaam
userIdStringGebruikers-ID van eigenaar
statusStringHuidige status (actief/gestopt)
ramIntRAM in MiB
cpusIntAantal vCPUs
ipStringToegewezen IP-adres
osDiskIntOS-schijfgrootte in GB
createdAtDateTimeAanmaaktijdstip

SharedVm: VM-deelrecord:

KolomTypeBeschrijving
idInt (automatisch oplopend)Primaire sleutel
vmIdIntForeign key naar Vm
sharedWithUserIdStringGebruikers-ID van ontvanger
sharedByUserIdStringGebruikers-ID van eigenaar
allowActionsBooleanOf ontvanger de VM mag beheren
acceptedBooleanOf uitnodiging is geaccepteerd

Client-installatie

De Prisma-client wordt gegenereerd naar src/generated/prisma/ en geïnstantieerd als een singleton in src/lib/prisma.ts:

import { PrismaClient } from "@/generated/prisma/client";

Migraties

# Genereer Prisma-client
bun run --filter @proxmox/web db:generate

# Voer migraties uit
bun run --filter @proxmox/web db:migrate