87 lines
3.1 KiB
Plaintext
87 lines
3.1 KiB
Plaintext
generator launcherClient {
|
|
provider = "prisma-client-js"
|
|
output = "../node_modules/@prisma/launcher-client"
|
|
binaryTargets = ["native", "debian-openssl-3.0.x", "debian-openssl-1.1.x"]
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("LAUNCHER_DATABASE_URL")
|
|
}
|
|
|
|
model LauncherNotice {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
appKey String @default("Launcher") @map("app_key")
|
|
title String
|
|
body String
|
|
linkUrl String? @map("link_url")
|
|
isActive Boolean @default(true) @map("is_active")
|
|
startsAt DateTime? @map("starts_at") @db.Timestamptz(3)
|
|
endsAt DateTime? @map("ends_at") @db.Timestamptz(3)
|
|
priority Int @default(0)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
|
|
@@index([appKey, isActive, priority])
|
|
@@map("launcher_notices")
|
|
}
|
|
|
|
model ProvisionedDevice {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
accountEmail String @map("account_email")
|
|
authUserId String? @map("auth_user_id") @db.Uuid
|
|
hostname String
|
|
tailscaleHostname String @map("tailscale_hostname")
|
|
sshUser String? @map("ssh_user")
|
|
workspaceRoot String? @map("workspace_root")
|
|
usageType String @default("personal") @map("usage_type")
|
|
os String?
|
|
arch String?
|
|
kernel String?
|
|
distro String?
|
|
device Json?
|
|
installedAt DateTime @default(now()) @map("installed_at") @db.Timestamptz(3)
|
|
lastProvisionedAt DateTime @default(now()) @map("last_provisioned_at") @db.Timestamptz(3)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
|
|
@@unique([accountEmail, tailscaleHostname])
|
|
@@index([accountEmail])
|
|
@@index([tailscaleHostname])
|
|
@@map("provisioned_devices")
|
|
}
|
|
|
|
model LauncherSshKey {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
accountEmail String @map("account_email")
|
|
authUserId String? @map("auth_user_id") @db.Uuid
|
|
publicKey String @map("public_key")
|
|
publicKeyHash String @map("public_key_hash")
|
|
keyType String? @map("key_type")
|
|
label String?
|
|
lastProvisionedAt DateTime @default(now()) @map("last_provisioned_at") @db.Timestamptz(3)
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
|
|
@@unique([accountEmail, publicKeyHash])
|
|
@@index([accountEmail])
|
|
@@map("launcher_ssh_keys")
|
|
}
|
|
|
|
|
|
model LauncherSetting {
|
|
id String @id @default(uuid()) @db.Uuid
|
|
key String @unique
|
|
name String
|
|
type String
|
|
value String
|
|
description String?
|
|
isActive Boolean @default(true) @map("is_active")
|
|
isSecret Boolean @default(false) @map("is_secret")
|
|
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
|
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
|
|
|
@@index([type, isActive])
|
|
@@map("launcher_settings")
|
|
}
|