coolify/apps/api/prisma/schema.prisma

633 lines
20 KiB
Plaintext
Raw Normal View History

2022-02-10 15:47:44 +01:00
generator client {
provider = "prisma-client-js"
2022-09-02 15:35:24 +02:00
binaryTargets = ["native"]
2022-02-10 15:47:44 +01:00
}
datasource db {
provider = "sqlite"
url = env("COOLIFY_DATABASE_URL")
}
model Setting {
id String @id @default(cuid())
fqdn String? @unique
2022-09-06 14:08:10 +02:00
isAPIDebuggingEnabled Boolean? @default(false)
2022-02-10 15:47:44 +01:00
isRegistrationEnabled Boolean @default(false)
dualCerts Boolean @default(false)
2022-02-20 15:12:01 +01:00
minPort Int @default(9000)
maxPort Int @default(9100)
2022-02-10 15:47:44 +01:00
proxyPassword String
proxyUser String
2022-03-01 00:08:54 +01:00
proxyHash String?
2022-04-25 09:54:28 +02:00
isAutoUpdateEnabled Boolean @default(false)
isDNSCheckEnabled Boolean @default(true)
2022-08-17 10:43:57 +02:00
DNSServers String?
isTraefikUsed Boolean @default(true)
2022-02-10 15:47:44 +01:00
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
ipv4 String?
ipv6 String?
arch String?
2022-08-25 10:04:46 +02:00
concurrentBuilds Int @default(1)
2022-02-10 15:47:44 +01:00
}
model User {
id String @id @unique @default(cuid())
email String @unique
type String
password String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
permission Permission[]
teams Team[]
2022-02-10 15:47:44 +01:00
}
model Permission {
id String @id @default(cuid())
userId String
teamId String
permission String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
team Team @relation(fields: [teamId], references: [id])
user User @relation(fields: [userId], references: [id])
2022-02-10 15:47:44 +01:00
}
model Team {
id String @id @default(cuid())
name String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
databaseId String?
serviceId String?
permissions Permission[]
sshKey SshKey[]
applications Application[]
database Database[]
destinationDocker DestinationDocker[]
gitSources GitSource[]
gitHubApps GithubApp[]
gitLabApps GitlabApp[]
service Service[]
users User[]
2022-02-10 15:47:44 +01:00
}
model TeamInvitation {
id String @id @default(cuid())
uid String
email String
teamId String
teamName String
permission String
createdAt DateTime @default(now())
}
model Application {
2022-03-20 23:51:50 +01:00
id String @id @default(cuid())
2022-02-10 15:47:44 +01:00
name String
2022-08-06 11:21:16 +02:00
fqdn String?
2022-02-10 15:47:44 +01:00
repository String?
configHash String?
branch String?
buildPack String?
projectId Int?
port Int?
2022-04-08 09:12:01 +02:00
exposePort Int?
2022-02-10 15:47:44 +01:00
installCommand String?
buildCommand String?
startCommand String?
baseDirectory String?
publishDirectory String?
deploymentType String?
2022-03-20 23:51:50 +01:00
phpModules String?
2022-04-02 16:22:51 +02:00
pythonWSGI String?
pythonModule String?
pythonVariable String?
2022-04-25 00:00:06 +02:00
dockerFileLocation String?
2022-04-20 22:24:00 +02:00
denoMainFile String?
2022-04-25 00:00:06 +02:00
denoOptions String?
2022-03-20 23:51:50 +01:00
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2022-02-10 15:47:44 +01:00
destinationDockerId String?
gitSourceId String?
2022-04-25 23:44:06 +02:00
baseImage String?
2022-04-26 14:51:08 +02:00
baseBuildImage String?
gitSource GitSource? @relation(fields: [gitSourceId], references: [id])
destinationDocker DestinationDocker? @relation(fields: [destinationDockerId], references: [id])
persistentStorage ApplicationPersistentStorage[]
settings ApplicationSettings?
secrets Secret[]
teams Team[]
connectedDatabase ApplicationConnectedDatabase?
}
model ApplicationConnectedDatabase {
id String @id @default(cuid())
applicationId String @unique
databaseId String?
hostedDatabaseType String?
hostedDatabaseHost String?
hostedDatabasePort Int?
hostedDatabaseName String?
hostedDatabaseUser String?
hostedDatabasePassword String?
hostedDatabaseDBName String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
database Database? @relation(fields: [databaseId], references: [id])
application Application @relation(fields: [applicationId], references: [id])
2022-02-10 15:47:44 +01:00
}
model ApplicationSettings {
2022-08-18 11:53:42 +02:00
id String @id @default(cuid())
applicationId String @unique
dualCerts Boolean @default(false)
debug Boolean @default(false)
previews Boolean @default(false)
autodeploy Boolean @default(true)
isBot Boolean @default(false)
isPublicRepository Boolean @default(false)
2022-09-05 09:09:49 +02:00
isDBBranching Boolean @default(false)
2022-08-18 11:53:42 +02:00
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
application Application @relation(fields: [applicationId], references: [id])
2022-02-10 15:47:44 +01:00
}
2022-03-20 23:51:50 +01:00
model ApplicationPersistentStorage {
id String @id @default(cuid())
applicationId String
path String
2022-03-20 23:51:50 +01:00
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
application Application @relation(fields: [applicationId], references: [id])
2022-03-20 23:51:50 +01:00
@@unique([applicationId, path])
}
model ServicePersistentStorage {
id String @id @default(cuid())
serviceId String
path String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
@@unique([serviceId, path])
}
2022-02-10 15:47:44 +01:00
model Secret {
id String @id @default(cuid())
name String
2022-02-10 15:47:44 +01:00
value String
2022-02-19 14:54:47 +01:00
isPRMRSecret Boolean @default(false)
2022-02-10 15:47:44 +01:00
isBuildSecret Boolean @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
applicationId String
application Application @relation(fields: [applicationId], references: [id])
2022-02-19 14:54:47 +01:00
@@unique([name, applicationId, isPRMRSecret])
2022-02-10 15:47:44 +01:00
}
2022-03-04 15:14:25 +01:00
model ServiceSecret {
id String @id @default(cuid())
name String
value String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
serviceId String
service Service @relation(fields: [serviceId], references: [id])
2022-03-04 15:14:25 +01:00
@@unique([name, serviceId])
}
2022-02-10 15:47:44 +01:00
model BuildLog {
id String @id @default(cuid())
applicationId String?
buildId String
line String
time BigInt
2022-02-10 15:47:44 +01:00
}
model Build {
id String @id @default(cuid())
type String
applicationId String?
destinationDockerId String?
gitSourceId String?
githubAppId String?
gitlabAppId String?
commit String?
2022-08-25 10:04:46 +02:00
pullmergeRequestId String?
forceRebuild Boolean @default(false)
2022-08-31 15:02:05 +02:00
sourceBranch String?
branch String?
2022-02-10 15:47:44 +01:00
status String? @default("queued")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model DestinationDocker {
id String @id @default(cuid())
network String @unique
name String
2022-07-18 16:02:53 +02:00
engine String?
2022-02-10 15:47:44 +01:00
remoteEngine Boolean @default(false)
2022-07-18 16:02:53 +02:00
remoteIpAddress String?
remoteUser String?
remotePort Int?
remoteVerified Boolean @default(false)
2022-02-10 15:47:44 +01:00
isCoolifyProxyUsed Boolean? @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sshKeyId String?
sshKey SshKey? @relation(fields: [sshKeyId], references: [id])
2022-08-06 12:23:51 +02:00
sshLocalPort Int?
application Application[]
2022-02-10 15:47:44 +01:00
database Database[]
service Service[]
teams Team[]
2022-07-18 16:02:53 +02:00
}
model SshKey {
2022-07-21 14:43:53 +02:00
id String @id @default(cuid())
name String
privateKey String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
2022-07-26 14:26:45 +02:00
teamId String?
team Team? @relation(fields: [teamId], references: [id])
destinationDocker DestinationDocker[]
2022-02-10 15:47:44 +01:00
}
model GitSource {
id String @id @default(cuid())
name String
2022-08-18 11:53:42 +02:00
forPublic Boolean @default(false)
2022-02-10 15:47:44 +01:00
type String?
apiUrl String?
htmlUrl String?
2022-07-12 11:01:48 +02:00
customPort Int @default(22)
2022-02-10 15:47:44 +01:00
organization String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
githubAppId String? @unique
gitlabAppId String? @unique
gitlabApp GitlabApp? @relation(fields: [gitlabAppId], references: [id])
githubApp GithubApp? @relation(fields: [githubAppId], references: [id])
application Application[]
teams Team[]
2022-02-10 15:47:44 +01:00
}
model GithubApp {
id String @id @default(cuid())
name String? @unique
appId Int?
installationId Int?
clientId String?
clientSecret String?
webhookSecret String?
privateKey String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gitSource GitSource?
teams Team[]
2022-02-10 15:47:44 +01:00
}
model GitlabApp {
id String @id @default(cuid())
oauthId Int @unique
groupName String? @unique
deployKeyId Int?
privateSshKey String?
publicSshKey String?
webhookToken String?
appId String?
appSecret String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
gitSource GitSource?
teams Team[]
2022-02-10 15:47:44 +01:00
}
model Database {
id String @id @default(cuid())
name String
publicPort Int?
defaultDatabase String?
type String?
version String?
dbUser String?
dbUserPassword String?
rootUser String?
rootUserPassword String?
destinationDockerId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
destinationDocker DestinationDocker? @relation(fields: [destinationDockerId], references: [id])
settings DatabaseSettings?
teams Team[]
applicationConnectedDatabase ApplicationConnectedDatabase[]
2022-09-07 11:40:52 +02:00
databaseSecret DatabaseSecret[]
}
model DatabaseSecret {
id String @id @default(cuid())
name String
value String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
databaseId String
database Database @relation(fields: [databaseId], references: [id])
@@unique([name, databaseId])
2022-02-10 15:47:44 +01:00
}
model DatabaseSettings {
id String @id @default(cuid())
databaseId String @unique
isPublic Boolean @default(false)
appendOnly Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
database Database @relation(fields: [databaseId], references: [id])
2022-02-10 15:47:44 +01:00
}
model Service {
id String @id @default(cuid())
2022-02-10 15:47:44 +01:00
name String
fqdn String?
2022-04-30 14:47:00 +02:00
exposePort Int?
dualCerts Boolean @default(false)
2022-02-10 15:47:44 +01:00
type String?
version String?
destinationDockerId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
destinationDocker DestinationDocker? @relation(fields: [destinationDockerId], references: [id])
persistentStorage ServicePersistentStorage[]
serviceSecret ServiceSecret[]
2022-08-23 10:11:38 +02:00
teams Team[]
2022-08-15 16:58:10 +02:00
2022-08-23 10:11:38 +02:00
fider Fider?
ghost Ghost?
glitchTip GlitchTip?
hasura Hasura?
meiliSearch MeiliSearch?
minio Minio?
moodle Moodle?
plausibleAnalytics PlausibleAnalytics?
umami Umami?
vscodeserver Vscodeserver?
wordpress Wordpress?
appwrite Appwrite?
searxng Searxng?
2022-08-31 15:02:05 +02:00
weblate Weblate?
2022-09-02 14:11:36 +02:00
taiga Taiga?
2022-02-10 15:47:44 +01:00
}
model PlausibleAnalytics {
id String @id @default(cuid())
email String?
username String?
password String
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
secretKeyBase String?
2022-05-09 15:05:24 +02:00
scriptName String @default("plausible.js")
2022-02-10 15:47:44 +01:00
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-02-10 15:47:44 +01:00
}
model Minio {
id String @id @default(cuid())
rootUser String
rootUserPassword String
publicPort Int?
2022-05-19 13:45:17 +02:00
apiFqdn String?
2022-02-10 15:47:44 +01:00
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-02-10 15:47:44 +01:00
}
model Vscodeserver {
id String @id @default(cuid())
password String
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-02-10 15:47:44 +01:00
}
model Wordpress {
id String @id @default(cuid())
extraConfig String?
tablePrefix String?
2022-05-10 10:12:13 +02:00
ownMysql Boolean @default(false)
mysqlHost String?
mysqlPort Int?
2022-02-10 15:47:44 +01:00
mysqlUser String
mysqlPassword String
mysqlRootUser String
mysqlRootUserPassword String
mysqlDatabase String?
mysqlPublicPort Int?
2022-04-05 15:56:25 +02:00
ftpEnabled Boolean @default(false)
ftpUser String?
ftpPassword String?
ftpPublicPort Int?
2022-04-06 21:37:42 +02:00
ftpHostKey String?
2022-04-05 15:56:25 +02:00
ftpHostKeyPrivate String?
2022-02-10 15:47:44 +01:00
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-02-10 15:47:44 +01:00
}
2022-03-27 22:03:21 +02:00
model Ghost {
id String @id @default(cuid())
defaultEmail String
defaultPassword String
mariadbUser String
mariadbPassword String
mariadbRootUser String
mariadbRootUserPassword String
mariadbDatabase String?
mariadbPublicPort Int?
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-03-27 22:03:21 +02:00
}
2022-04-02 23:08:27 +02:00
model MeiliSearch {
id String @id @default(cuid())
masterKey String
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-04-02 23:08:27 +02:00
}
2022-04-25 00:00:06 +02:00
model Umami {
id String @id @default(cuid())
serviceId String @unique
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
umamiAdminPassword String
hashSalt String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-04-25 00:00:06 +02:00
}
2022-04-27 15:37:50 +02:00
model Hasura {
id String @id @default(cuid())
serviceId String @unique
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
graphQLAdminPassword String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-04-27 15:37:50 +02:00
}
2022-04-29 22:25:27 +02:00
model Fider {
id String @id @default(cuid())
serviceId String @unique
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
jwtSecret String
emailNoreply String?
emailMailgunApiKey String?
emailMailgunDomain String?
2022-04-29 23:41:31 +02:00
emailMailgunRegion String @default("EU")
2022-04-29 22:25:27 +02:00
emailSmtpHost String?
emailSmtpPort Int?
emailSmtpUser String?
emailSmtpPassword String?
emailSmtpEnableStartTls Boolean @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
2022-04-29 22:25:27 +02:00
}
model Moodle {
id String @id @default(cuid())
serviceId String @unique
defaultUsername String
defaultPassword String
defaultEmail String
mariadbUser String
mariadbPassword String
mariadbRootUser String
mariadbRootUserPassword String
mariadbDatabase String
mariadbPublicPort Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
}
2022-08-15 11:56:34 +02:00
2022-08-15 16:58:10 +02:00
model Appwrite {
id String @id @default(cuid())
serviceId String @unique
opensslKeyV1 String
executorSecret String
redisPassword String
mariadbHost String?
mariadbPort Int @default(3306)
mariadbUser String
mariadbPassword String
mariadbRootUser String
mariadbRootUserPassword String
mariadbDatabase String
mariadbPublicPort Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
}
2022-08-15 11:56:34 +02:00
model GlitchTip {
id String @id @default(cuid())
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
secretKeyBase String?
defaultEmail String
defaultUsername String
defaultPassword String
defaultEmailFrom String @default("glitchtip@domain.tdl")
emailSmtpHost String? @default("domain.tdl")
emailSmtpPort Int? @default(25)
emailSmtpUser String?
emailSmtpPassword String?
emailSmtpUseTls Boolean? @default(false)
emailSmtpUseSsl Boolean? @default(false)
emailBackend String?
mailgunApiKey String?
sendgridApiKey String?
enableOpenUserRegistration Boolean @default(true)
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
}
2022-08-23 10:11:38 +02:00
model Searxng {
id String @id @default(cuid())
secretKey String
redisPassword String
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
}
2022-08-31 15:02:05 +02:00
model Weblate {
id String @id @default(cuid())
adminPassword String
postgresqlHost String
postgresqlPort Int
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
}
2022-09-02 14:11:36 +02:00
model Taiga {
id String @id @default(cuid())
secretKey String
erlangSecret String
djangoAdminPassword String
djangoAdminUser String
rabbitMQUser String
rabbitMQPassword String
postgresqlHost String
postgresqlPort Int
postgresqlUser String
postgresqlPassword String
postgresqlDatabase String
postgresqlPublicPort Int?
serviceId String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
service Service @relation(fields: [serviceId], references: [id])
}