nsecbunkerd/prisma/schema.prisma

118 lines
3.1 KiB
Plaintext
Raw Normal View History

2023-05-15 20:05:55 +02:00
generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "linux-musl-openssl-3.0.x", "linux-musl-arm64-openssl-3.0.x"]
2023-05-15 20:05:55 +02:00
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
2023-05-15 20:05:55 +02:00
}
2023-11-05 18:29:57 +09:00
model Request {
id String @id @default(uuid())
2023-12-01 11:18:39 +00:00
keyName String?
2023-11-05 18:29:57 +09:00
createdAt DateTime @default(now())
requestId String
remotePubkey String
method String
params String?
2023-12-01 11:18:39 +00:00
allowed Boolean?
2023-11-05 18:29:57 +09:00
}
2023-05-15 20:05:55 +02:00
model KeyUser {
id Int @id @default(autoincrement())
keyName String
userPubkey String
2023-06-04 10:03:02 +02:00
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
revokedAt DateTime?
2023-06-04 10:03:02 +02:00
lastUsedAt DateTime?
2023-06-28 21:44:39 +02:00
description String?
logs Log[]
signingConditions SigningCondition[]
2023-06-04 10:03:02 +02:00
Token Token[]
2023-05-15 20:05:55 +02:00
@@unique([keyName, userPubkey], name: "unique_key_user")
}
2023-12-20 10:21:24 +00:00
model Key {
id Int @id @default(autoincrement())
keyName String @unique
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
deletedAt DateTime?
pubkey String
}
2024-01-02 10:34:49 +00:00
model User {
id Int @id @default(autoincrement())
username String @unique
domain String
password String
email String
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
deletedAt DateTime?
pubkey String
}
2023-05-15 20:05:55 +02:00
model SigningCondition {
2023-06-28 21:44:39 +02:00
id Int @id @default(autoincrement())
2023-05-15 20:05:55 +02:00
method String?
2023-05-31 20:26:29 +02:00
kind String?
2023-05-15 20:05:55 +02:00
content String?
keyUserKeyName String?
allowed Boolean?
keyUserId Int?
2023-06-28 21:44:39 +02:00
KeyUser KeyUser? @relation(fields: [keyUserId], references: [id])
2023-05-15 20:05:55 +02:00
}
model Log {
id Int @id @default(autoincrement())
timestamp DateTime
type String
method String?
params String?
keyUserId Int?
2023-06-28 21:44:39 +02:00
KeyUser KeyUser? @relation(fields: [keyUserId], references: [id])
2023-05-15 20:05:55 +02:00
}
2023-06-04 10:03:02 +02:00
model Policy {
id Int @id @default(autoincrement())
name String
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
expiresAt DateTime?
2023-06-28 21:44:39 +02:00
deletedAt DateTime?
description String?
2023-06-04 10:03:02 +02:00
rules PolicyRule[]
Token Token[]
}
model PolicyRule {
id Int @id @default(autoincrement())
method String
kind String?
maxUsageCount Int?
currentUsageCount Int?
2023-06-28 21:44:39 +02:00
policyId Int?
Policy Policy? @relation(fields: [policyId], references: [id])
2023-06-04 10:03:02 +02:00
}
model Token {
id Int @id @default(autoincrement())
keyName String
token String @unique
clientName String
createdBy String
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
deletedAt DateTime?
expiresAt DateTime?
redeemedAt DateTime?
keyUserId Int?
policyId Int?
2023-06-28 21:44:39 +02:00
policy Policy? @relation(fields: [policyId], references: [id])
KeyUser KeyUser? @relation(fields: [keyUserId], references: [id])
2023-06-04 10:03:02 +02:00
}