1333 lines
36 KiB
Plaintext
1333 lines
36 KiB
Plaintext
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
directUrl = env("DIRECT_URL")
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
binaryTargets = ["native", "debian-openssl-1.1.x"]
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(cuid())
|
|
email String @unique
|
|
|
|
authenticationMethod AuthenticationMethod
|
|
authenticationProfile Json?
|
|
authenticationExtraParams Json?
|
|
authIdentifier String? @unique
|
|
|
|
displayName String?
|
|
name String?
|
|
avatarUrl String?
|
|
|
|
admin Boolean @default(false)
|
|
isOnCloudWaitlist Boolean @default(false)
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
featureCloud Boolean @default(false)
|
|
isOnHostedRepoWaitlist Boolean @default(false)
|
|
|
|
marketingEmails Boolean @default(true)
|
|
confirmedBasicDetails Boolean @default(false)
|
|
|
|
orgMemberships OrgMember[]
|
|
sentInvites OrgMemberInvite[]
|
|
apiVotes ApiIntegrationVote[]
|
|
|
|
invitationCode InvitationCode? @relation(fields: [invitationCodeId], references: [id])
|
|
invitationCodeId String?
|
|
}
|
|
|
|
// @deprecated This model is no longer used as the Cloud is out of private beta
|
|
// Leaving it here for now for historical reasons
|
|
model InvitationCode {
|
|
id String @id @default(cuid())
|
|
code String @unique
|
|
|
|
users User[]
|
|
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
enum AuthenticationMethod {
|
|
GITHUB
|
|
MAGIC_LINK
|
|
}
|
|
|
|
model Organization {
|
|
id String @id @default(cuid())
|
|
slug String @unique
|
|
title String
|
|
|
|
maximumExecutionTimePerRunInMs Int @default(900000) // 15 minutes
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
environments RuntimeEnvironment[]
|
|
connections IntegrationConnection[]
|
|
endpoints Endpoint[]
|
|
jobs Job[]
|
|
jobVersions JobVersion[]
|
|
events EventRecord[]
|
|
jobRuns JobRun[]
|
|
|
|
projects Project[]
|
|
members OrgMember[]
|
|
invites OrgMemberInvite[]
|
|
externalAccounts ExternalAccount[]
|
|
integrations Integration[]
|
|
sources TriggerSource[]
|
|
backgroundTasks BackgroundTask[]
|
|
backgroundTaskVersions BackgroundTaskVersion[]
|
|
}
|
|
|
|
model ExternalAccount {
|
|
id String @id @default(cuid())
|
|
identifier String
|
|
metadata Json?
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
connections IntegrationConnection[]
|
|
events EventRecord[]
|
|
runs JobRun[]
|
|
schedules ScheduleSource[]
|
|
triggerSources TriggerSource[]
|
|
missingConnections MissingConnection[]
|
|
|
|
@@unique([environmentId, identifier])
|
|
}
|
|
|
|
// This is a "global" table that store all the integration methods for all the integrations across all orgs
|
|
model IntegrationAuthMethod {
|
|
id String @id @default(cuid())
|
|
key String
|
|
|
|
name String
|
|
description String
|
|
type String
|
|
|
|
client Json?
|
|
config Json?
|
|
scopes Json?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
integrations Integration[]
|
|
|
|
definition IntegrationDefinition @relation(fields: [definitionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
definitionId String
|
|
|
|
help Json?
|
|
|
|
@@unique([definitionId, key])
|
|
}
|
|
|
|
model IntegrationDefinition {
|
|
id String @id
|
|
name String
|
|
instructions String?
|
|
description String?
|
|
icon String?
|
|
packageName String @default("")
|
|
|
|
authMethods IntegrationAuthMethod[]
|
|
Integration Integration[]
|
|
}
|
|
|
|
model Integration {
|
|
id String @id @default(cuid())
|
|
|
|
slug String
|
|
|
|
title String?
|
|
description String?
|
|
|
|
setupStatus IntegrationSetupStatus @default(COMPLETE)
|
|
authSource IntegrationAuthSource @default(HOSTED)
|
|
|
|
definition IntegrationDefinition @relation(fields: [definitionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
definitionId String
|
|
|
|
authMethod IntegrationAuthMethod? @relation(fields: [authMethodId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
authMethodId String?
|
|
|
|
connectionType ConnectionType @default(DEVELOPER)
|
|
|
|
scopes String[]
|
|
|
|
customClientReference SecretReference? @relation(fields: [customClientReferenceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
customClientReferenceId String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
attempts ConnectionAttempt[]
|
|
connections IntegrationConnection[]
|
|
jobIntegrations JobIntegration[]
|
|
sources TriggerSource[]
|
|
missingConnections MissingConnection[]
|
|
RunConnection RunConnection[]
|
|
|
|
@@unique([organizationId, slug])
|
|
}
|
|
|
|
enum IntegrationAuthSource {
|
|
HOSTED
|
|
LOCAL
|
|
}
|
|
|
|
enum IntegrationSetupStatus {
|
|
MISSING_FIELDS
|
|
COMPLETE
|
|
}
|
|
|
|
model IntegrationConnection {
|
|
id String @id @default(cuid())
|
|
|
|
connectionType ConnectionType @default(DEVELOPER)
|
|
|
|
expiresAt DateTime?
|
|
metadata Json
|
|
scopes String[]
|
|
|
|
dataReference SecretReference @relation(fields: [dataReferenceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
dataReferenceId String
|
|
|
|
integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
integrationId String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
externalAccount ExternalAccount? @relation(fields: [externalAccountId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
externalAccountId String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
runConnections RunConnection[]
|
|
}
|
|
|
|
enum ConnectionType {
|
|
EXTERNAL
|
|
DEVELOPER
|
|
}
|
|
|
|
model ConnectionAttempt {
|
|
id String @id @default(cuid())
|
|
|
|
securityCode String?
|
|
|
|
redirectTo String @default("/")
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @default(now()) @updatedAt
|
|
|
|
integration Integration @relation(fields: [integrationId], references: [id])
|
|
integrationId String
|
|
}
|
|
|
|
model OrgMember {
|
|
id String @id @default(cuid())
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
userId String
|
|
|
|
role OrgMemberRole @default(MEMBER)
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
environments RuntimeEnvironment[]
|
|
|
|
@@unique([organizationId, userId])
|
|
}
|
|
|
|
enum OrgMemberRole {
|
|
ADMIN
|
|
MEMBER
|
|
}
|
|
|
|
model OrgMemberInvite {
|
|
id String @id @default(cuid())
|
|
token String @unique @default(cuid())
|
|
email String
|
|
role OrgMemberRole @default(MEMBER)
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
inviter User @relation(fields: [inviterId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
inviterId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([organizationId, email])
|
|
}
|
|
|
|
model RuntimeEnvironment {
|
|
id String @id @default(cuid())
|
|
slug String
|
|
apiKey String @unique
|
|
pkApiKey String @unique
|
|
|
|
type RuntimeEnvironmentType @default(DEVELOPMENT)
|
|
|
|
autoEnableInternalSources Boolean @default(true)
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
//when the org member is deleted, it will keep the environment but set it to null
|
|
orgMember OrgMember? @relation(fields: [orgMemberId], references: [id], onDelete: SetNull, onUpdate: Cascade)
|
|
orgMemberId String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
endpoints Endpoint[]
|
|
jobVersions JobVersion[]
|
|
events EventRecord[]
|
|
jobRuns JobRun[]
|
|
requestDeliveries HttpSourceRequestDelivery[]
|
|
jobAliases JobAlias[]
|
|
JobQueue JobQueue[]
|
|
sources TriggerSource[]
|
|
eventDispatchers EventDispatcher[]
|
|
scheduleSources ScheduleSource[]
|
|
externalAccounts ExternalAccount[]
|
|
|
|
backgroundTaskVersions BackgroundTaskVersion[]
|
|
backgroundTaskAliases BackgroundTaskAlias[]
|
|
|
|
@@unique([projectId, slug, orgMemberId])
|
|
}
|
|
|
|
enum RuntimeEnvironmentType {
|
|
PRODUCTION
|
|
STAGING
|
|
DEVELOPMENT
|
|
PREVIEW
|
|
}
|
|
|
|
model Project {
|
|
id String @id @default(cuid())
|
|
slug String @unique
|
|
name String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
environments RuntimeEnvironment[]
|
|
endpoints Endpoint[]
|
|
jobs Job[]
|
|
jobVersion JobVersion[]
|
|
events EventRecord[]
|
|
runs JobRun[]
|
|
sources TriggerSource[]
|
|
|
|
backgroundTasks BackgroundTask[]
|
|
backgroundTaskVersions BackgroundTaskVersion[]
|
|
}
|
|
|
|
model Endpoint {
|
|
id String @id @default(cuid())
|
|
slug String
|
|
url String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
indexingHookIdentifier String?
|
|
|
|
jobVersions JobVersion[]
|
|
jobRuns JobRun[]
|
|
httpRequestDeliveries HttpSourceRequestDelivery[]
|
|
dynamictriggers DynamicTrigger[]
|
|
sources TriggerSource[]
|
|
indexings EndpointIndex[]
|
|
|
|
backgroundTaskVersions BackgroundTaskVersion[]
|
|
|
|
@@unique([environmentId, slug])
|
|
}
|
|
|
|
model EndpointIndex {
|
|
id String @id @default(cuid())
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
source EndpointIndexSource @default(MANUAL)
|
|
sourceData Json?
|
|
reason String?
|
|
|
|
data Json
|
|
stats Json
|
|
}
|
|
|
|
enum EndpointIndexSource {
|
|
MANUAL
|
|
API
|
|
INTERNAL
|
|
HOOK
|
|
}
|
|
|
|
model Job {
|
|
id String @id @default(cuid())
|
|
slug String
|
|
title String
|
|
internal Boolean @default(false)
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
versions JobVersion[]
|
|
runs JobRun[]
|
|
integrations JobIntegration[]
|
|
aliases JobAlias[]
|
|
dynamicTriggers DynamicTrigger[]
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @default(now()) @updatedAt
|
|
|
|
deletedAt DateTime?
|
|
|
|
@@unique([projectId, slug])
|
|
}
|
|
|
|
model JobVersion {
|
|
id String @id @default(cuid())
|
|
version String
|
|
eventSpecification Json
|
|
|
|
properties Json?
|
|
|
|
job Job @relation(fields: [jobId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
jobId String
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
queue JobQueue @relation(fields: [queueId], references: [id])
|
|
queueId String
|
|
|
|
startPosition JobStartPosition @default(INITIAL)
|
|
preprocessRuns Boolean @default(false)
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
runs JobRun[]
|
|
integrations JobIntegration[]
|
|
aliases JobAlias[]
|
|
examples EventExample[]
|
|
dynamicTriggers DynamicTrigger[]
|
|
triggerSources TriggerSource[]
|
|
|
|
status JobVersionStatus @default(ACTIVE)
|
|
|
|
@@unique([jobId, version, environmentId])
|
|
}
|
|
|
|
enum JobVersionStatus {
|
|
ACTIVE
|
|
DISABLED
|
|
}
|
|
|
|
model EventExample {
|
|
id String @id @default(cuid())
|
|
|
|
slug String
|
|
name String
|
|
icon String?
|
|
|
|
payload Json?
|
|
|
|
jobVersion JobVersion @relation(fields: [jobVersionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
jobVersionId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([slug, jobVersionId])
|
|
}
|
|
|
|
model JobQueue {
|
|
id String @id @default(cuid())
|
|
name String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
jobCount Int @default(0)
|
|
maxJobs Int @default(100)
|
|
|
|
runs JobRun[]
|
|
jobVersion JobVersion[]
|
|
|
|
@@unique([environmentId, name])
|
|
}
|
|
|
|
model JobAlias {
|
|
id String @id @default(cuid())
|
|
name String @default("latest")
|
|
value String
|
|
|
|
version JobVersion @relation(fields: [versionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
versionId String
|
|
|
|
job Job @relation(fields: [jobId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
jobId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
@@unique([jobId, environmentId, name])
|
|
}
|
|
|
|
model JobIntegration {
|
|
id String @id @default(cuid())
|
|
key String
|
|
|
|
version JobVersion @relation(fields: [versionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
versionId String
|
|
|
|
job Job @relation(fields: [jobId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
jobId String
|
|
|
|
integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
integrationId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([versionId, key])
|
|
}
|
|
|
|
model RunConnection {
|
|
id String @id @default(cuid())
|
|
key String
|
|
|
|
authSource IntegrationAuthSource @default(HOSTED)
|
|
|
|
run JobRun @relation(fields: [runId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
runId String
|
|
|
|
connection IntegrationConnection? @relation(fields: [connectionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
connectionId String?
|
|
|
|
integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
integrationId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
tasks Task[]
|
|
|
|
@@unique([runId, key])
|
|
}
|
|
|
|
model DynamicTrigger {
|
|
id String @id @default(cuid())
|
|
type DynamicTriggerType @default(EVENT)
|
|
slug String
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
jobs Job[]
|
|
sources TriggerSource[]
|
|
scheduleSources ScheduleSource[]
|
|
registrations DynamicTriggerRegistration[]
|
|
|
|
sourceRegistrationJob JobVersion? @relation(fields: [sourceRegistrationJobId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
sourceRegistrationJobId String?
|
|
|
|
@@unique([endpointId, slug, type])
|
|
}
|
|
|
|
enum DynamicTriggerType {
|
|
EVENT
|
|
SCHEDULE
|
|
}
|
|
|
|
model EventDispatcher {
|
|
id String @id @default(cuid())
|
|
event String[]
|
|
source String
|
|
payloadFilter Json?
|
|
contextFilter Json?
|
|
manual Boolean @default(false)
|
|
|
|
dispatchableId String
|
|
dispatchable Json
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
enabled Boolean @default(true)
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
registrations DynamicTriggerRegistration[]
|
|
scheduleSources ScheduleSource[]
|
|
|
|
@@unique([dispatchableId, environmentId])
|
|
}
|
|
|
|
enum JobStartPosition {
|
|
INITIAL
|
|
LATEST
|
|
}
|
|
|
|
model EventRecord {
|
|
id String @id @default(cuid())
|
|
eventId String
|
|
name String
|
|
timestamp DateTime @default(now())
|
|
payload Json
|
|
context Json?
|
|
sourceContext Json?
|
|
|
|
source String @default("trigger.dev")
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
externalAccount ExternalAccount? @relation(fields: [externalAccountId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
externalAccountId String?
|
|
|
|
deliverAt DateTime @default(now())
|
|
deliveredAt DateTime?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
cancelledAt DateTime?
|
|
|
|
isTest Boolean @default(false)
|
|
runs JobRun[]
|
|
|
|
@@unique([eventId, environmentId])
|
|
}
|
|
|
|
model JobRun {
|
|
id String @id @default(cuid())
|
|
number Int
|
|
|
|
job Job @relation(fields: [jobId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
jobId String
|
|
|
|
version JobVersion @relation(fields: [versionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
versionId String
|
|
|
|
event EventRecord @relation(fields: [eventId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
eventId String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
queue JobQueue @relation(fields: [queueId], references: [id])
|
|
queueId String
|
|
|
|
externalAccount ExternalAccount? @relation(fields: [externalAccountId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
externalAccountId String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
queuedAt DateTime?
|
|
startedAt DateTime?
|
|
completedAt DateTime?
|
|
|
|
properties Json?
|
|
|
|
status JobRunStatus @default(PENDING)
|
|
output Json?
|
|
|
|
timedOutAt DateTime?
|
|
timedOutReason String?
|
|
|
|
executionCount Int @default(0)
|
|
executionDuration Int @default(0)
|
|
|
|
isTest Boolean @default(false)
|
|
preprocess Boolean @default(false)
|
|
|
|
tasks Task[]
|
|
runConnections RunConnection[]
|
|
missingConnections MissingConnection[]
|
|
executions JobRunExecution[]
|
|
}
|
|
|
|
enum JobRunStatus {
|
|
PENDING
|
|
QUEUED
|
|
WAITING_ON_CONNECTIONS
|
|
PREPROCESSING
|
|
STARTED
|
|
SUCCESS
|
|
FAILURE
|
|
TIMED_OUT
|
|
ABORTED
|
|
CANCELED
|
|
}
|
|
|
|
model JobRunExecution {
|
|
id String @id @default(cuid())
|
|
|
|
run JobRun @relation(fields: [runId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
runId String
|
|
|
|
retryCount Int @default(0)
|
|
retryLimit Int @default(0)
|
|
retryDelayInMs Int @default(0)
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
startedAt DateTime?
|
|
completedAt DateTime?
|
|
|
|
error String?
|
|
|
|
reason JobRunExecutionReason @default(EXECUTE_JOB)
|
|
status JobRunExecutionStatus @default(PENDING)
|
|
|
|
resumeTask Task? @relation(fields: [resumeTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
resumeTaskId String?
|
|
|
|
graphileJobId String?
|
|
|
|
isRetry Boolean @default(false)
|
|
}
|
|
|
|
enum JobRunExecutionReason {
|
|
PREPROCESS
|
|
EXECUTE_JOB
|
|
}
|
|
|
|
enum JobRunExecutionStatus {
|
|
PENDING
|
|
STARTED
|
|
SUCCESS
|
|
FAILURE
|
|
}
|
|
|
|
model Task {
|
|
id String @id
|
|
idempotencyKey String
|
|
displayKey String?
|
|
name String
|
|
icon String?
|
|
|
|
status TaskStatus @default(PENDING)
|
|
delayUntil DateTime?
|
|
noop Boolean @default(false)
|
|
|
|
description String?
|
|
properties Json?
|
|
outputProperties Json?
|
|
params Json?
|
|
output Json?
|
|
error String?
|
|
redact Json?
|
|
style Json?
|
|
operation String?
|
|
|
|
startedAt DateTime?
|
|
completedAt DateTime?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
run JobRun @relation(fields: [runId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
runId String
|
|
|
|
parent Task? @relation("TaskParent", fields: [parentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
parentId String?
|
|
|
|
runConnection RunConnection? @relation(fields: [runConnectionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
runConnectionId String?
|
|
|
|
children Task[] @relation("TaskParent")
|
|
executions JobRunExecution[]
|
|
attempts TaskAttempt[]
|
|
backgroundTaskOperation BackgroundTaskOperation?
|
|
|
|
@@unique([runId, idempotencyKey])
|
|
}
|
|
|
|
enum TaskStatus {
|
|
PENDING
|
|
WAITING
|
|
RUNNING
|
|
COMPLETED
|
|
ERRORED
|
|
CANCELED
|
|
}
|
|
|
|
model TaskAttempt {
|
|
id String @id @default(cuid())
|
|
|
|
number Int
|
|
|
|
task Task @relation(fields: [taskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
taskId String
|
|
|
|
status TaskAttemptStatus @default(PENDING)
|
|
|
|
error String?
|
|
|
|
runAt DateTime?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([taskId, number])
|
|
}
|
|
|
|
enum TaskAttemptStatus {
|
|
PENDING
|
|
STARTED
|
|
COMPLETED
|
|
ERRORED
|
|
}
|
|
|
|
model SecretReference {
|
|
id String @id @default(cuid())
|
|
key String @unique
|
|
provider SecretStoreProvider @default(DATABASE)
|
|
|
|
connections IntegrationConnection[]
|
|
integrations Integration[]
|
|
triggerSources TriggerSource[]
|
|
|
|
backgroundTaskSecrets BackgroundTaskSecret[]
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
enum SecretStoreProvider {
|
|
DATABASE
|
|
AWS_PARAM_STORE
|
|
}
|
|
|
|
model SecretStore {
|
|
key String @unique
|
|
value Json
|
|
version String @default("1")
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model TriggerSource {
|
|
id String @id @default(cuid())
|
|
|
|
key String
|
|
params Json?
|
|
|
|
channel TriggerChannel @default(HTTP)
|
|
channelData Json?
|
|
|
|
version String @default("1")
|
|
|
|
options TriggerSourceOption[]
|
|
|
|
metadata Json?
|
|
|
|
secretReference SecretReference @relation(fields: [secretReferenceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
secretReferenceId String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
integrationId String
|
|
|
|
dynamicTrigger DynamicTrigger? @relation(fields: [dynamicTriggerId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
dynamicTriggerId String?
|
|
|
|
externalAccount ExternalAccount? @relation(fields: [externalAccountId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
externalAccountId String?
|
|
|
|
sourceRegistrationJob JobVersion? @relation(fields: [sourceRegistrationJobId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
sourceRegistrationJobId String?
|
|
|
|
dynamicSourceId String?
|
|
dynamicSourceMetadata Json?
|
|
|
|
active Boolean @default(false)
|
|
interactive Boolean @default(false)
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
httpDeliveries HttpSourceRequestDelivery[]
|
|
registrations DynamicTriggerRegistration[]
|
|
|
|
@@unique([key, environmentId])
|
|
}
|
|
|
|
enum TriggerChannel {
|
|
HTTP
|
|
SQS
|
|
SMTP
|
|
}
|
|
|
|
model TriggerSourceOption {
|
|
id String @id @default(cuid())
|
|
name String
|
|
value String
|
|
|
|
source TriggerSource @relation(fields: [sourceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
sourceId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
registered Boolean @default(false)
|
|
|
|
@@unique([name, value, sourceId])
|
|
}
|
|
|
|
model DynamicTriggerRegistration {
|
|
id String @id @default(cuid())
|
|
|
|
key String
|
|
|
|
dynamicTrigger DynamicTrigger @relation(fields: [dynamicTriggerId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
dynamicTriggerId String
|
|
|
|
eventDispatcher EventDispatcher @relation(fields: [eventDispatcherId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
eventDispatcherId String
|
|
|
|
source TriggerSource @relation(fields: [sourceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
sourceId String
|
|
|
|
metadata Json?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([key, dynamicTriggerId])
|
|
}
|
|
|
|
model HttpSourceRequestDelivery {
|
|
id String @id @default(cuid())
|
|
url String
|
|
method String
|
|
headers Json
|
|
body Bytes?
|
|
|
|
source TriggerSource @relation(fields: [sourceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
sourceId String
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
deliveredAt DateTime?
|
|
}
|
|
|
|
model ScheduleSource {
|
|
id String @id @default(cuid())
|
|
|
|
key String
|
|
schedule Json
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
dispatcher EventDispatcher @relation(fields: [dispatcherId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
dispatcherId String
|
|
|
|
lastEventTimestamp DateTime?
|
|
|
|
workerJobId String?
|
|
|
|
active Boolean @default(false)
|
|
|
|
metadata Json?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
dynamicTrigger DynamicTrigger? @relation(fields: [dynamicTriggerId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
dynamicTriggerId String?
|
|
|
|
externalAccount ExternalAccount? @relation(fields: [externalAccountId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
externalAccountId String?
|
|
|
|
@@unique([key, environmentId])
|
|
}
|
|
|
|
model MissingConnection {
|
|
id String @id @default(cuid())
|
|
|
|
resolved Boolean @default(false)
|
|
|
|
runs JobRun[]
|
|
|
|
integration Integration @relation(fields: [integrationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
integrationId String
|
|
|
|
connectionType ConnectionType @default(DEVELOPER)
|
|
|
|
externalAccount ExternalAccount? @relation(fields: [externalAccountId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
externalAccountId String?
|
|
|
|
accountIdentifier String?
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([integrationId, connectionType, externalAccountId])
|
|
@@unique([integrationId, connectionType, accountIdentifier])
|
|
}
|
|
|
|
model ApiIntegrationVote {
|
|
id String @id @default(cuid())
|
|
|
|
apiIdentifier String
|
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
userId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([apiIdentifier, userId])
|
|
}
|
|
|
|
model BackgroundTask {
|
|
id String @id @default(cuid())
|
|
slug String
|
|
title String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
versions BackgroundTaskVersion[]
|
|
aliases BackgroundTaskAlias[]
|
|
artifacts BackgroundTaskArtifact[]
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @default(now()) @updatedAt
|
|
|
|
deletedAt DateTime?
|
|
|
|
operations BackgroundTaskOperation[]
|
|
machines BackgroundTaskMachine[]
|
|
images BackgroundTaskImage[]
|
|
BackgroundTaskMachinePool BackgroundTaskMachinePool[]
|
|
|
|
@@unique([projectId, slug])
|
|
}
|
|
|
|
model BackgroundTaskVersion {
|
|
id String @id @default(cuid())
|
|
version String
|
|
|
|
cpu Int @default(1)
|
|
memory Int @default(256)
|
|
concurrency Int @default(1)
|
|
diskSize Int @default(1)
|
|
region String @default("iad")
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
endpoint Endpoint @relation(fields: [endpointId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
endpointId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
organizationId String
|
|
|
|
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
projectId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
aliases BackgroundTaskAlias[]
|
|
secrets BackgroundTaskSecret[]
|
|
operations BackgroundTaskOperation[]
|
|
machines BackgroundTaskMachine[]
|
|
pools BackgroundTaskMachinePool[]
|
|
|
|
@@unique([backgroundTaskId, version, environmentId])
|
|
}
|
|
|
|
model BackgroundTaskAlias {
|
|
id String @id @default(cuid())
|
|
name String @default("latest")
|
|
value String
|
|
|
|
version BackgroundTaskVersion @relation(fields: [versionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
versionId String
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
environment RuntimeEnvironment @relation(fields: [environmentId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
environmentId String
|
|
|
|
@@unique([backgroundTaskId, environmentId, name])
|
|
}
|
|
|
|
model BackgroundTaskSecret {
|
|
id String @id @default(cuid())
|
|
key String
|
|
|
|
secretReference SecretReference @relation(fields: [secretReferenceId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
secretReferenceId String
|
|
|
|
backgroundTaskVersion BackgroundTaskVersion @relation(fields: [backgroundTaskVersionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskVersionId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
@@unique([backgroundTaskVersionId, key])
|
|
}
|
|
|
|
model BackgroundTaskArtifact {
|
|
id String @id @default(cuid())
|
|
version String
|
|
|
|
fileName String
|
|
hash String
|
|
bundle String
|
|
sourcemap Json
|
|
nodeVersion String
|
|
dependencies Json
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
images BackgroundTaskImage[]
|
|
|
|
@@unique([backgroundTaskId, version, hash])
|
|
}
|
|
|
|
enum BackgroundTaskProviderStrategy {
|
|
FLY_IO
|
|
UNSUPPORTED
|
|
}
|
|
|
|
model BackgroundTaskImage {
|
|
id String @id @default(cuid())
|
|
provider BackgroundTaskProviderStrategy
|
|
name String
|
|
tag String
|
|
digest String
|
|
size Int
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
backgroundTaskArtifact BackgroundTaskArtifact @relation(fields: [backgroundTaskArtifactId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskArtifactId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
machines BackgroundTaskMachine[]
|
|
pools BackgroundTaskMachinePool[]
|
|
|
|
@@unique([backgroundTaskArtifactId, digest])
|
|
}
|
|
|
|
model BackgroundTaskMachine {
|
|
id String @id @default(cuid())
|
|
|
|
externalId String?
|
|
provider BackgroundTaskProviderStrategy
|
|
data Json?
|
|
status BackgroundTaskMachineStatus @default(PENDING)
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
backgroundTaskVersion BackgroundTaskVersion @relation(fields: [backgroundTaskVersionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskVersionId String
|
|
|
|
backgroundTaskImage BackgroundTaskImage @relation(fields: [backgroundTaskImageId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskImageId String
|
|
|
|
pool BackgroundTaskMachinePool @relation(fields: [poolId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
poolId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
enum BackgroundTaskMachineStatus {
|
|
PENDING
|
|
CREATED
|
|
STARTING
|
|
STARTED
|
|
STOPPING
|
|
STOPPED
|
|
DESTROYING
|
|
DESTROYED
|
|
REPLACING
|
|
}
|
|
|
|
model BackgroundTaskMachinePool {
|
|
id String @id @default(cuid())
|
|
|
|
provider BackgroundTaskProviderStrategy
|
|
|
|
region String
|
|
cpu Int @default(1)
|
|
memory Int @default(256)
|
|
concurrency Int @default(1)
|
|
diskSize Int @default(1)
|
|
|
|
image BackgroundTaskImage @relation(fields: [imageId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
imageId String
|
|
|
|
backgroundTaskVersion BackgroundTaskVersion @relation(fields: [backgroundTaskVersionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskVersionId String
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
machines BackgroundTaskMachine[]
|
|
operations BackgroundTaskOperation[]
|
|
|
|
@@unique([backgroundTaskVersionId, imageId])
|
|
}
|
|
|
|
model BackgroundTaskOperation {
|
|
id String @id @default(cuid())
|
|
|
|
backgroundTask BackgroundTask @relation(fields: [backgroundTaskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskId String
|
|
|
|
backgroundTaskVersion BackgroundTaskVersion @relation(fields: [backgroundTaskVersionId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
backgroundTaskVersionId String
|
|
|
|
task Task @relation(fields: [taskId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
taskId String @unique
|
|
|
|
pool BackgroundTaskMachinePool? @relation(fields: [poolId], references: [id], onDelete: Cascade, onUpdate: Cascade)
|
|
poolId String?
|
|
|
|
payload Json
|
|
output Json?
|
|
error Json?
|
|
|
|
status BackgroundTaskOperationStatus @default(PENDING)
|
|
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
startedAt DateTime?
|
|
endedAt DateTime?
|
|
}
|
|
|
|
enum BackgroundTaskOperationStatus {
|
|
PENDING
|
|
WAITING_ON_IMAGE
|
|
ASSIGNED_TO_POOL
|
|
STARTED
|
|
SUCCESS
|
|
FAILURE
|
|
}
|