chore: Adds initial code.

This commit is contained in:
Tera << 8 2024-04-17 00:51:53 +00:00
parent a4ea6406e6
commit 939eb0b9d7
8 changed files with 1282 additions and 17 deletions

View file

@ -0,0 +1,43 @@
-- CreateTable
CREATE TABLE "DesinationProvider" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT NOT NULL,
"description" TEXT,
"backend" TEXT NOT NULL,
"connectionDetails" TEXT NOT NULL
);
-- CreateTable
CREATE TABLE "ForwardRule" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT NOT NULL,
"description" TEXT,
"sourceIP" TEXT NOT NULL,
"sourcePort" INTEGER NOT NULL,
"destIP" TEXT NOT NULL,
"destPort" INTEGER NOT NULL,
"destProviderID" INTEGER NOT NULL,
"enabled" BOOLEAN NOT NULL
);
-- CreateTable
CREATE TABLE "Permission" (
"permissionID" TEXT NOT NULL,
"has" BOOLEAN NOT NULL,
"userID" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
CONSTRAINT "Permission_userID_fkey" FOREIGN KEY ("userID") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "User" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"email" TEXT NOT NULL,
"name" TEXT,
"rootToken" TEXT
);
-- CreateIndex
CREATE UNIQUE INDEX "Permission_permissionID_key" ON "Permission"("permissionID");
-- CreateIndex
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");

View file

@ -0,0 +1,3 @@
# Please do not edit this file manually
# It should be added in your version-control system (i.e. Git)
provider = "sqlite"

55
prisma/schema.prisma Normal file
View file

@ -0,0 +1,55 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model DesinationProvider {
id Int @id @default(autoincrement())
name String
description String?
backend String
connectionDetails String
}
model ForwardRule {
id Int @id @default(autoincrement())
name String
description String?
sourceIP String
sourcePort Int
destIP String
destPort Int
destProviderID Int
enabled Boolean
}
model Permission {
permissionID String @unique
has Boolean
user User @relation(fields: [userID], references: [id])
userID Int @id @default(autoincrement())
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
rootToken String?
permissions Permission[]
}