Skip to main content

Database Schema

Auto-generated

This page is generated from apps/backend/prisma/schema.prisma at build time. Do not edit it by hand — change the source and rebuild. This guarantees the reference always matches the code that ships.

UltraTorrent stores everything in PostgreSQL, managed by Prisma. There are 142 models. A single ER diagram of all of them would be unreadable, so they are grouped by domain below.

Never hand-edit the database

Schema changes go through a Prisma migration so every install converges on the same shape. See Database & Prisma.

Automation​

2 models.

AutomationRule​

Table: automation_rules

ColumnType
idString
nameString
descriptionString?
triggerString
conditionsJson
actionsJson
isEnabledBoolean
priorityInt
createdAtDateTime
updatedAtDateTime

AutomationLog​

Table: automation_logs

ColumnType
idString
ruleIdString
statusString
contextJson
messageString?
createdAtDateTime

IMDb catalogue​

8 models.

IMDbTitle​

Table: imdb_titles

ColumnType
idString
tconstString
titleTypeString
primaryTitleString
originalTitleString
isAdultBoolean
startYearInt?
endYearInt?
runtimeMinutesInt?
genresString[]
createdAtDateTime
updatedAtDateTime

IMDbAka​

Table: imdb_akas

ColumnType
idString
titleIdString
titleString
regionString?
languageString?
typesString?
attributesString?
orderingInt?
isOriginalTitleBoolean

IMDbCrew​

Table: imdb_crew

ColumnType
idString
titleIdString
directorsString[]
writersString[]

IMDbEpisode​

Table: imdb_episodes

ColumnType
idString
episodeTitleIdString
parentTitleIdString
seasonNumberInt?
episodeNumberInt?

IMDbPrincipal​

Table: imdb_principals

ColumnType
idString
titleIdString
orderingInt
personIdString
categoryString?
jobString?
charactersString?

IMDbPerson​

Table: imdb_persons

ColumnType
idString
nconstString
primaryNameString
birthYearInt?
deathYearInt?
primaryProfessionString[]
knownForTitlesString[]

IMDbRating​

Table: imdb_ratings

ColumnType
idString
titleIdString
averageRatingFloat
numVotesInt

IMDbDatasetImport​

Table: imdb_dataset_imports

ColumnType
idString
statusString
sourcePathString
startedAtDateTime?
completedAtDateTime?
failedAtDateTime?
errorMessageString?
filesImportedJson
recordsImportedInt
statsJson?
strategyString?
datasetDateDateTime?
createdAtDateTime
updatedAtDateTime

Identity & audit​

10 models.

User​

Table: users

ColumnType
idString
usernameString
emailString
displayNameString?
timezoneString?
passwordHashString
isActiveBoolean
isSystemBoolean
lastLoginAtDateTime?
failedLoginAttemptsInt
lockedUntilDateTime?
totpSecretString?
totpEnabledBoolean
recoveryCodesString[]
createdAtDateTime
updatedAtDateTime

Role​

Table: roles

ColumnType
idString
nameString
descriptionString?
isSystemBoolean
createdAtDateTime
updatedAtDateTime

UserRole​

Table: user_roles

ColumnType
userIdString
roleIdString

RolePermission​

Table: role_permissions

ColumnType
roleIdString
permissionIdString

ApiKey​

Table: api_keys

ColumnType
idString
userIdString
nameString
prefixString
keyHashString
scopesString[]
lastUsedAtDateTime?
expiresAtDateTime?
revokedAtDateTime?
createdAtDateTime

AuditLog​

Table: audit_logs

ColumnType
idString
userIdString?
actionString
objectTypeString?
objectIdString?
resultString
ipAddressString?
userAgentString?
metadataJson?
createdAtDateTime

UserNotificationPreference​

Table: user_notification_preferences

ColumnType
idString
userIdString
eventKeyString
enabledBoolean
inAppEnabledBoolean
emailEnabledBoolean
telegramEnabledBoolean
discordEnabledBoolean
createdAtDateTime
updatedAtDateTime

UserNotification​

Table: user_notifications

ColumnType
idString
userIdString
eventIdString
eventKeyString
categoryString
severityString
titleString
bodyString?
deepLinkString?
presentationJson?
artConnectionIdString?
artPathString?
resourceTypeString?
resourceIdString?
readAtDateTime?
archivedAtDateTime?
createdAtDateTime

UserNotificationChannel​

Table: user_notification_channels

ColumnType
idString
userIdString
typeString
enabledBoolean
verifiedAtDateTime?
encryptedConfigJson
maskedDestinationString?
lastTestedAtDateTime?
lastSuccessAtDateTime?
lastFailureAtDateTime?
lastErrorString?
consecutiveFailuresInt
createdAtDateTime
updatedAtDateTime
deletedAtDateTime?

UserNotificationDelivery​

Table: user_notification_deliveries

ColumnType
idString
userIdString
notificationIdString?
eventKeyString
channelTypeString
channelIdString?
statusString
attemptsInt
nextAttemptAtDateTime?
lastErrorString?
suppressedReasonString?
createdAtDateTime
sentAtDateTime?
completedAtDateTime?

Indexers​

1 model.

Indexer​

Table: indexers

ColumnType
idString
nameString
implementationString
protocolString
baseUrlString
configJson
enabledBoolean
priorityInt
categoriesInt[]
capabilitiesJson?
minSeedersInt?
timeoutMsInt
statusString
statusMessageString?
lastTestedAtDateTime?
createdAtDateTime
updatedAtDateTime

Media Manager​

42 models.

MediaUserWatch​

Table: media_user_watches

ColumnType
idString
userIdString
keyString
mediaTypeString
imdbIdString?
tmdbIdString?
tvdbIdString?
showTitleString?
titleString?
yearInt?
seasonInt?
episodeInt?
watchedAtDateTime
sourceString
syncedAtDateTime?
createdAtDateTime

MediaUserRating​

Table: media_user_ratings

ColumnType
idString
userIdString
keyString
mediaTypeString
imdbIdString?
tmdbIdString?
tvdbIdString?
showTitleString?
titleString?
seasonInt?
episodeInt?
ratingInt
ratedAtDateTime
sourceString
syncedAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaLibrary​

Table: media_libraries

ColumnType
idString
nameString
kindString
pathString
presetString
templateString?
modeString
autoOrganizeBoolean
isEnabledBoolean
scanIntervalMinutesInt?
lastScanAtDateTime?
watchEnabledBoolean
scanOnStartupBoolean
nfoEnabledBoolean
artworkEnabledBoolean
createdAtDateTime
updatedAtDateTime

MediaShow​

Table: media_shows

ColumnType
idString
libraryIdString
mediaTypeString
titleString
yearInt?
pathString
imdbIdString?
canonicalKeyString
episodeCountInt
createdAtDateTime
updatedAtDateTime
tmdbIdString?

MediaItem​

Table: media_items

ColumnType
idString
libraryIdString
mediaTypeString
titleString
sortTitleString?
yearInt?
seasonInt?
episodeInt?
episodeEndInt?
matchStatusString
confidenceFloat
lockedBoolean
pathString
duplicateGroupIdString?
seriesImdbIdString?
createdAtDateTime
updatedAtDateTime

MediaFile​

Table: media_files

ColumnType
idString
itemIdString
pathString
sizeBigInt
modifiedAtDateTime?
containerString?
videoCodecString?
audioCodecString?
resolutionString?
hdrString?
languageString?
releaseGroupString?
qualityString?
widthInt?
heightInt?
bitrateKbpsInt?
durationSecInt?
audioChannelsInt?
frameRateFloat?
videoBitDepthInt?
chromaSubsamplingString?
colorPrimariesString?
colorTransferString?
colorSpaceString?
hdrFormatString?
techSourceString?
probedAtDateTime?
probeErrorString?
probeAttemptsInt
createdAtDateTime

MediaMetadata​

Table: media_metadata

ColumnType
idString
itemIdString
titleString?
originalTitleString?
sortTitleString?
overviewString?
releaseDateDateTime?
yearInt?
runtimeInt?
genresJson
studiosJson
castJson
crewJson
directorsJson
writersJson
ratingFloat?
certificationString?
tagsJson
providerNameString?
fieldSourcesJson?
updatedAtDateTime

MediaShowMetadata​

Table: media_show_metadata

ColumnType
idString
showIdString
titleString?
originalTitleString?
sortTitleString?
overviewString?
firstAiredAtDateTime?
yearInt?
statusString?
networksJson
genresJson
studiosJson
castJson
crewJson
ratingFloat?
certificationString?
tagsJson
providerNameString?
fieldSourcesJson?
updatedAtDateTime

MediaSeason​

Table: media_seasons

ColumnType
idString
showIdString
seasonNumberInt
titleString?
overviewString?
firstAiredAtDateTime?
providerNameString?
updatedAtDateTime
createdAtDateTime

MediaArtwork​

Table: media_artwork

ColumnType
idString
itemIdString?
showIdString?
typeString
urlString?
localPathString?
sourceString?
selectedBoolean
widthInt?
heightInt?
seasonNumberInt?
createdAtDateTime

MediaSubtitle​

Table: media_subtitles

ColumnType
idString
itemIdString
pathString
languageString
forcedBoolean
sdhBoolean
sourceString?
createdAtDateTime

MediaExternalId​

Table: media_external_ids

ColumnType
idString
itemIdString
providerString
externalIdString
urlString?

MediaCollection​

Table: media_collections

ColumnType
idString
nameString
overviewString?
artworkPathString?
createdAtDateTime
updatedAtDateTime

MediaCollectionItem​

Table: media_collection_items

ColumnType
collectionIdString
itemIdString

MediaRenameTemplate​

Table: media_rename_templates

ColumnType
idString
nameString
mediaTypeString
templateString
isDefaultBoolean
createdAtDateTime
updatedAtDateTime

MediaProcessingJob​

Table: media_processing_jobs

ColumnType
idString
typeString
statusString
libraryIdString?
itemIdString?
payloadJson
resultJson?
errorString?
progressInt
startedAtDateTime?
finishedAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaDuplicateGroup​

Table: media_duplicate_groups

ColumnType
idString
groupKeyString
groupTypeString
reasonString
statusString
confidenceInt
requiresReviewBoolean
potentialSavingsBytesBigInt
recommendedItemIdString?
recommendationJson?
warningsJson?
versionInt
ignoredReasonString?
ignoredByIdString?
ignoredAtDateTime?
resolvedByIdString?
resolvedAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaDuplicateScanState​

Table: media_duplicate_scan_state

ColumnType
idString
inputDigestString
updatedAtDateTime
createdAtDateTime

MediaDuplicateCandidate​

Table: media_duplicate_candidates

ColumnType
idString
groupIdString
itemIdString
pathString
fileSizeBigInt
hashString?
qualityScoreInt
recommendationRankInt
recommendationReasonsJson?
selectedActionString
createdAtDateTime
updatedAtDateTime

MediaDuplicateResolution​

Table: media_duplicate_resolutions

ColumnType
idString
scopeString
groupIdString?
statusString
keepItemIdString?
canonicalShowIdString?
inputFingerprintString?
previewJson?
groupVersionInt
expectedSavingsBytesBigInt
actualSavingsBytesBigInt
errorSummaryString?
createdByIdString?
startedAtDateTime?
completedAtDateTime?
failedAtDateTime?
createdAtDateTime

MediaDuplicateResolutionAction​

Table: media_duplicate_resolution_actions

ColumnType
idString
resolutionIdString
actionTypeString
statusString
sourcePathString?
destinationPathString?
errorMessageString?
metadataJson?
createdAtDateTime
updatedAtDateTime

MediaAnalyticsUser​

Table: media_analytics_users

ColumnType
idString
kindString
providerUserIdString
displayNameString?
exemptFromLimitsBoolean
groupIdString?
createdAtDateTime
updatedAtDateTime

MediaStreamPolicy​

Table: media_stream_policies

ColumnType
idString
mediaAnalyticsUserIdString?
mediaServerIdString?
maxConcurrentStreamsInt?
enforcementActionString?
gracePeriodSecondsInt?
countPausedBoolean?
scopeString?
enabledBoolean
createdAtDateTime
updatedAtDateTime

MediaStreamEnforcementEvent​

Table: media_stream_enforcement_events

ColumnType
idString
mediaAnalyticsUserIdString?
mediaServerIdString
providerString
providerUserIdString?
providerSessionIdString
mediaTitleString?
clientString?
deviceString?
ipAddressString?
configuredLimitInt
observedStreamsInt
actionString
resultString
reasonString?
errorMessageString?
detectedAtDateTime
enforcedAtDateTime?

MediaAnalyticsImportSource​

Table: media_analytics_import_sources

ColumnType
idString
nameString
typeString
baseUrlString
encryptedApiKeyString?
enabledBoolean
syncEnabledBoolean
lastConnectionTestAtDateTime?
lastImportAtDateTime?
lastIncrementalSyncAtDateTime?
importCursorJson?
sourceVersionString?
statusString?
notesString?
createdAtDateTime
updatedAtDateTime

MediaAnalyticsImportJob​

Table: media_analytics_import_jobs

ColumnType
idString
sourceIdString
statusString
modeString
selectedSectionsJson?
progressInt
totalRecordsInt
processedRecordsInt
importedRecordsInt
skippedRecordsInt
failedRecordsInt
warningsJson?
errorsJson?
startedAtDateTime?
completedAtDateTime?
createdByIdString?
createdAtDateTime
updatedAtDateTime

MediaNfoFile​

Table: media_nfo_files

ColumnType
idString
itemIdString
typeString
pathString
generatedAtDateTime

MediaRenameOperation​

Table: media_rename_operations

ColumnType
idString
sourceString
destinationString?
actionString
kindString
modeString
statusString
messageString?
torrentHashString?
runIdString?
undoneAtDateTime?
createdAtDateTime

MediaRenameJob​

Table: media_rename_jobs

ColumnType
idString
torrentHashString?
engineIdString?
statusString
modeString
sourcePathString
destinationPathString?
mediaTypeString?
parsedMetadataJson?
providerMetadataJson?
confidenceScoreInt?
dryRunResultJson?
executedByString?
createdAtDateTime
completedAtDateTime?

MediaRenameFile​

Table: media_rename_files

ColumnType
idString
jobIdString
originalPathString
proposedPathString?
finalPathString?
fileTypeString?
actionString
statusString
errorMessageString?
createdAtDateTime
updatedAtDateTime

MediaNamingTemplate​

Table: media_naming_templates

ColumnType
idString
nameString
mediaTypeString
serverPresetString
templateString
enabledBoolean
createdAtDateTime
updatedAtDateTime

MediaCleanupPolicy​

Table: media_cleanup_policies

ColumnType
idString
nameString
descriptionString?
statusString
enabledBoolean
modeString
scheduleCronString?
freeSpaceTriggerPercentInt?
currentDraftVersionIdString?
publishedVersionIdString?
createdByIdString?
updatedByIdString?
lastRunAtDateTime?
createdAtDateTime
updatedAtDateTime
archivedAtDateTime?

MediaCleanupPolicyVersion​

Table: media_cleanup_policy_versions

ColumnType
idString
policyIdString
versionNumberInt
statusString
documentJson
checksumString
requiredPermissionsString[]
factKeysString[]
changeNotesString?
createdByIdString?
createdAtDateTime
publishedAtDateTime?
archivedAtDateTime?

MediaCleanupRun​

Table: media_cleanup_runs

ColumnType
idString
policyIdString
policyVersionIdString
triggerString
statusString
simulateBoolean
jobIdString?
inputDigestString?
filesScannedInt
itemsEvaluatedInt
candidatesMatchedInt
candidatesExcludedInt
candidatesEligibleInt
estimatedReclaimBytesBigInt
actualReclaimBytesBigInt
exclusionBreakdownJson?
scopeItemIdsJson?
errorSummaryString?
createdByIdString?
startedAtDateTime?
completedAtDateTime?
failedAtDateTime?
cancelledAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaCleanupCandidate​

Table: media_cleanup_candidates

ColumnType
idString
runIdString
policyVersionIdString
mediaItemIdString?
mediaFileIdString?
mediaLibraryIdString?
pathString
fileSizeBytesBigInt
statusString
exclusionReasonString?
fingerprintString
reasonSnapshotJson
rankScoreFloat?
rankReasonsJson?
replacementFileIdString?
replacementReasonsJson?
protectionStateJson?
estimatedReclaimBytesBigInt
createdAtDateTime
updatedAtDateTime

MediaCleanupPlan​

Table: media_cleanup_plans

ColumnType
idString
runIdString
policyVersionIdString
statusString
actionString
retentionDaysInt?
candidateCountInt
estimatedReclaimBytesBigInt
actualReclaimBytesBigInt
executionJobIdString?
createdByIdString?
approvedByIdString?
approvedAtDateTime?
rejectedByIdString?
rejectedAtDateTime?
rejectionReasonString?
expiresAtDateTime?
executedAtDateTime?
errorSummaryString?
createdAtDateTime
updatedAtDateTime

MediaCleanupAction​

Table: media_cleanup_actions

ColumnType
idString
planIdString
candidateIdString
mediaItemIdString?
mediaFileIdString?
actionTypeString
statusString
sourcePathString
destinationPathString?
pinnedFingerprintString
fileSizeBytesBigInt
reclaimedBytesBigInt
skipReasonString?
errorCodeString?
errorMessageString?
startedAtDateTime?
completedAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaCleanupProtection​

Table: media_cleanup_protections

ColumnType
idString
targetTypeString
mediaItemIdString?
mediaFileIdString?
mediaShowIdString?
mediaLibraryIdString?
seasonNumberInt?
episodeNumberInt?
externalIdentityKeyString?
pathPrefixString?
tagValueString?
collectionIdString?
torrentHashString?
canonicalPathSnapshotString?
protectionTypeString
conditionKindString?
conditionConfigJson?
reasonString
protectedUntilDateTime?
createdByUserIdString
createdAtDateTime
revokedAtDateTime?
revokedByUserIdString?
revokeReasonString?

MediaCleanupQuarantineItem​

Table: media_cleanup_quarantine_items

ColumnType
idString
actionIdString?
planIdString?
runIdString?
policyVersionIdString?
mediaItemIdString?
mediaFileIdString?
originalPathString
quarantinePathString
storageRootString
fileSizeBytesBigInt
fingerprintString
statusString
restoreDeadlineDateTime?
quarantinedAtDateTime
restoredAtDateTime?
restoredByIdString?
purgedAtDateTime?
purgedByIdString?

MediaPlaybackAggregate​

Table: media_playback_aggregates

ColumnType
idString
mediaItemIdString
startedPlayCountInt
completedPlayCountInt
uniqueViewerCountInt
lastPlayedAtDateTime?
maximumProgressPercentInt
averageProgressPercentFloat
totalPlaybackSecondsBigInt
completionThresholdPercentInt
sourceRowCountInt
resolvedSourceRowCountInt
computedAtDateTime
updatedAtDateTime

MediaIntakeJob​

Table: media_intake_jobs

ColumnType
idString
profileIdString
torrentHashString?
engineIdString?
sourcePathString
importedPathString?
stateString
resumeStateString?
strategyString?
strategyReasonString?
idempotencyKeyString
attemptsInt
lastErrorString?
qualityScoreFloat?
mediaItemIdString?
libraryIdString?
startedAtDateTime?
importedAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaIntakeEvent​

Table: media_intake_events

ColumnType
idString
jobIdString
fromStateString?
toStateString
messageString?
dataJson?
userIdString?
createdAtDateTime

Media acquisition (Smart Download)​

7 models.

MediaAcquisitionWatchlistItem​

Table: media_acquisition_watchlist_items

ColumnType
idString
typeString
titleString
normalizedTitleString
titleAliasesString[]
yearInt?
externalIdsJson?
seasonNumberInt?
episodeNumberInt?
collectionNameString?
statusString
priorityInt
profileIdString?
rssRuleIdString?
targetLibraryIdString?
libraryShowIdString?
settingsJson?
createdByString?
createdAtDateTime
updatedAtDateTime

WantedEpisode​

Table: wanted_episodes

ColumnType
idString
watchlistItemIdString
seriesTconstString
episodeTconstString?
seasonNumberInt
episodeNumberInt
episodeTitleString?
airYearInt?
statusString
searchStatusString
lastSearchedAtDateTime?
grabbedAtDateTime?
grabbedEvaluationIdString?
downloadUrlString?
releaseTitleString?
torrentHashString?
deadReleasesString[]
intakeRuleIdString?
lastCheckedAtDateTime
createdAtDateTime

WantedMovie​

Table: wanted_movies

ColumnType
idString
watchlistItemIdString
movieTconstString
titleString
yearInt?
statusString
searchStatusString
lastSearchedAtDateTime?
grabbedAtDateTime?
grabbedEvaluationIdString?
downloadUrlString?
releaseTitleString?
lastCheckedAtDateTime
createdAtDateTime

MediaAcquisitionProfile​

Table: media_acquisition_profiles

ColumnType
idString
nameString
descriptionString?
mediaTypeString
minimumScoreInt
approvalScoreInt
minimumResolutionString?
preferredResolutionString?
preferredSourceString?
preferredCodecString?
preferredAudioString?
preferredHdrString?
preferredLanguagesJson?
requiredTermsJson?
excludedTermsJson?
preferredGroupsJson?
minSizeBytesBigInt?
maxSizeBytesBigInt?
qualityRulesJson?
duplicateRulesJson?
storageRulesJson?
automationRulesJson?
enabledBoolean
createdByString?
createdAtDateTime
updatedAtDateTime

MediaAcquisitionEvaluation​

Table: media_acquisition_evaluations

ColumnType
idString
sourceTypeString
sourceIdString?
releaseNameString
parsedMetadataJson?
watchlistItemIdString?
profileIdString?
libraryMatchJson?
releaseScoreJson?
duplicateRiskJson?
qualityGapJson?
storageCheckJson?
serverSelectionJson?
decisionString
decisionReasonString?
priorityInt
confidenceInt
requiresApprovalBoolean
approvalStatusString
actionTakenString?
torrentHashString?
traceJson?
createdAtDateTime
updatedAtDateTime

MediaAcquisitionAction​

Table: media_acquisition_actions

ColumnType
idString
evaluationIdString
actionTypeString
statusString
payloadJson?
resultJson?
createdByString?
createdAtDateTime
completedAtDateTime?
errorMessageString?

MediaAcquisitionHistory​

Table: media_acquisition_history

ColumnType
idString
watchlistItemIdString?
evaluationIdString?
eventTypeString
messageString
metadataJson?
createdAtDateTime

Media server analytics​

10 models.

MediaServerIntegration​

Table: media_server_integrations

ColumnType
idString
nameString
kindString
configJson
isEnabledBoolean
lastRefreshAtDateTime?
isDefaultBoolean
statusString?
serverVersionString?
platformString?
capabilitiesJson?
lastHealthCheckAtDateTime?
notesString?
createdAtDateTime
updatedAtDateTime

MediaServerSession​

Table: media_server_sessions

ColumnType
idString
connectionIdString
providerSessionIdString
providerUserIdString?
userNameString?
titleString
showTitleString?
episodeTitleString?
missedPollsInt
seasonNumberInt?
episodeNumberInt?
yearInt?
externalIdsJson?
mediaTypeString?
libraryNameString?
deviceString?
clientString?
ipAddressString?
playbackStateString?
progressPercentInt?
playbackMethodString?
videoCodecString?
audioCodecString?
resolutionString?
containerString?
bitrateKbpsInt?
artPathString?
startedAtDateTime
updatedAtDateTime

MediaServerWatchHistory​

Table: media_server_watch_history

ColumnType
idString
connectionIdString?
importSourceIdString?
providerHistoryIdString?
providerUserIdString?
userNameString?
titleString
mediaTypeString?
libraryNameString?
deviceString?
clientString?
ipAddressString?
startedAtDateTime
stoppedAtDateTime?
watchedSecondsInt?
percentCompleteInt?
playbackMethodString?
resolutionString?
videoCodecString?
audioCodecString?
containerString?
bitrateKbpsInt?
importSourceString?
importedAtDateTime?
createdAtDateTime

MediaServerLibrary​

Table: media_server_libraries

ColumnType
idString
connectionIdString
providerLibraryIdString
nameString
typeString
itemCountInt?
lastSyncedAtDateTime
createdAtDateTime
updatedAtDateTime

MediaServerUser​

Table: media_server_users

ColumnType
idString
connectionIdString?
providerUserIdString?
userNameString
displayNameString?
emailString?
playsInt
lastSeenAtDateTime?
createdAtDateTime
updatedAtDateTime

MediaProviderSyncRun​

Table: media_provider_sync_runs

ColumnType
idString
connectionIdString?
typeString
statusString
librariesSyncedInt
usersSyncedInt
messageString?
startedAtDateTime
finishedAtDateTime?

MediaServerNewsletter​

Table: media_server_newsletters

ColumnType
idString
nameString
brandTitleString?
enabledBoolean
frequencyString
recipientEmailsJson
contentSectionsJson
subjectTemplateString?
dateRangeModeString
lastDaysInt
startDateDateTime?
sendWeekdayInt?
sendHourInt
sendMinuteInt
timezoneString?
lastSuccessfulSendAtDateTime?
nextRunAtDateTime?
deferredItemsJson
createdAtDateTime
updatedAtDateTime

MediaServerNewsletterDelivery​

Table: media_server_newsletter_deliveries

ColumnType
idString
newsletterIdString
recipientEmailString
statusString
subjectString?
sentAtDateTime?
errorMessageString?
createdAtDateTime

MediaServerNewsletterEvent​

Table: media_server_newsletter_events

ColumnType
idString
newsletterIdString?
runIdString?
sequenceInt
levelString
eventTypeString
messageKeyString?
messageParamsJson?
sanitizedMessageString?
metadataJson?
createdAtDateTime

MediaServerConfig​

Table: media_server_configs

ColumnType
idString
providerString
nameString
baseUrlString
encryptedConfigString
enabledBoolean
createdAtDateTime
updatedAtDateTime

Platform​

43 models.

TraktAccount​

Table: trakt_accounts

ColumnType
idString
userIdString
usernameString?
slugString?
accessTokenString
refreshTokenString
expiresAtDateTime
scopeString?
syncCollectionBoolean
syncWatchedBoolean
syncRatingsBoolean
syncWatchlistBoolean
scrobbleEnabledBoolean
mediaServerUserNameString?
lastCollectionSyncAtDateTime?
lastWatchedSyncAtDateTime?
lastRatingsSyncAtDateTime?
lastWatchlistSyncAtDateTime?
lastErrorString?
createdAtDateTime
updatedAtDateTime

Permission​

Table: permissions

ColumnType
idString
keyString
descriptionString?

RefreshToken​

Table: refresh_tokens

ColumnType
idString
userIdString
tokenHashString
familyString
userAgentString?
ipAddressString?
expiresAtDateTime
revokedAtDateTime?
createdAtDateTime

TransferLedger​

Table: transfer_ledgers

ColumnType
engineIdString
baselineDownloadedBigInt
baselineUploadedBigInt
baselineSourceString?
baselineAtDateTime?
accruedDownloadedBigInt
accruedUploadedBigInt
resetsObservedInt
createdAtDateTime
updatedAtDateTime

RetiredTorrentTransfer​

Table: retired_torrent_transfers

ColumnType
idString
engineIdString
hashString
nameString
downloadedBigInt
uploadedBigInt
ratioFloat
firstSeenAtDateTime?
retiredAtDateTime

ParkedTorrent​

Table: parked_torrents

ColumnType
hashString
engineIdString
nameString
reasonString
parkedAtDateTime
probingSinceDateTime?
lastProbedAtDateTime?
probeCountInt
lastSeedersInt
updatedAtDateTime

DownloadPath​

Table: download_paths

ColumnType
idString
labelString
pathString
isDefaultBoolean
createdAtDateTime

Setting​

Table: settings

ColumnType
keyString
valueJson
updatedAtDateTime

SystemEvent​

Table: system_events

ColumnType
idString
typeString
severityString
payloadJson
createdAtDateTime

ModuleState​

Table: module_states

ColumnType
idString
moduleIdString
enabledBoolean
statusString
tierString
reasonString?
metadataJson?
createdAtDateTime
updatedAtDateTime

ModuleEvent​

Table: module_events

ColumnType
idString
moduleIdString
eventTypeString
messageString
metadataJson?
userIdString?
createdAtDateTime

TrashItem​

Table: trash_items

ColumnType
idString
originalPathString
nameString
trashPathString
storageRootString
isDirectoryBoolean
sizeBigInt
deletedByIdString?
deletedAtDateTime

AcquisitionMatchCandidate​

Table: acquisition_match_candidates

ColumnType
idString
priorityOrderInt
nameString
descriptionString?
enabledBoolean
matchTypeString
patternString?
requiredTermsJson
excludedTermsJson
qualityRulesJson
sizeRulesJson
lastMatchedAtDateTime?
matchCountInt
createdAtDateTime
updatedAtDateTime

SubtitleProviderConfig​

Table: subtitle_provider_configs

ColumnType
idString
providerString
isEnabledBoolean
priorityInt
configJson
healthyBoolean?
lastCheckedAtDateTime?
lastErrorString?
quotaRemainingInt?
quotaResetAtDateTime?
createdAtDateTime
updatedAtDateTime

SubtitleFingerprint​

Table: subtitle_fingerprints

ColumnType
idString
itemIdString
fileIdString?
movieHashString?
sha256String?
fileSizeBigInt
runtimeSecInt?
frameRateFloat?
resolutionString?
videoCodecString?
audioCodecString?
audioLanguageString?
containerString?
sourceString?
releaseGroupString?
hdrString?
editionString?
seasonInt?
episodeInt?
imdbIdString?
tmdbIdString?
tvdbIdString?
mediaTypeString?
computedAtDateTime
updatedAtDateTime

SubtitleCandidate​

Table: subtitle_candidates

ColumnType
idString
itemIdString
providerString
providerFileIdString?
languageString
releaseNameString?
filenameString?
movieHashString?
imdbIdString?
tmdbIdString?
tvdbIdString?
seasonInt?
episodeInt?
runtimeSecInt?
downloadsInt?
uploaderString?
ratingFloat?
trustedUploaderBoolean
machineTranslatedBoolean
hearingImpairedBoolean
forcedBoolean
fileSizeBigInt?
downloadUrlString?
matchLevelInt?
scoreInt
scoreTierString?
scoreBreakdownJson?
rawMetadataJson?
createdAtDateTime

SubtitleDownload​

Table: subtitle_downloads

ColumnType
idString
itemIdString
providerString
languageString
forcedBoolean
hearingImpairedBoolean
pathString
releaseNameString?
scoreInt
scoreTierString?
matchLevelInt?
fileSizeBigInt
statusString
validationIdString?
providerFileIdString?
createdAtDateTime
updatedAtDateTime

SubtitleValidation​

Table: subtitle_validations

ColumnType
idString
formatString?
validBoolean
cueCountInt
startMsInt?
endMsInt?
issuesJson
runtimeDeltaSecInt?
methodString?
createdAtDateTime

SubtitleLanguageSetting​

Table: subtitle_language_settings

ColumnType
idString
libraryIdString
requiredLanguagesJson
preferredLanguagesJson
forcedLanguagesJson
hearingImpairedBoolean
machineTranslationBoolean
preferredProvidersJson
synchronizationRequiredBoolean
minimumScoreInt
automaticReplacementBoolean
createdAtDateTime
updatedAtDateTime

SubtitleHistory​

Table: subtitle_history

ColumnType
idString
itemIdString?
actionString
providerString?
languageString?
scoreInt?
messageString?
metadataJson?
createdAtDateTime

SubtitleJob​

Table: subtitle_jobs

ColumnType
idString
typeString
statusString
libraryIdString?
itemIdString?
providerString?
languageString?
payloadJson
resultJson?
errorString?
progressInt
startedAtDateTime?
finishedAtDateTime?
createdAtDateTime
updatedAtDateTime

SubtitleSynchronization​

Table: subtitle_synchronizations

ColumnType
idString
downloadIdString
providerString
methodString
versionString?
offsetMsInt
driftFactorFloat
confidenceFloat?
matchedRegionsJson?
originalPathString
syncedPathString
statusString
messageString?
createdAtDateTime

PlatformJob​

Table: platform_jobs

ColumnType
idString
typeString
nameString?
descriptionString?
moduleKeyString
workspaceKeyString?
sourceTypeString
sourceIdString?
correlationIdString?
parentJobIdString?
rootJobIdString?
scheduleIdString?
workflowExecutionIdString?
resourceTypeString?
resourceIdString?
libraryIdString?
mediaItemIdString?
statusString
phaseString?
progressPercentInt
progressCurrentInt?
progressTotalInt?
progressUnitString?
statusMessageKeyString?
statusMessageParamsJson?
queuedAtDateTime
scheduledForDateTime?
startedAtDateTime?
heartbeatAtDateTime?
completedAtDateTime?
failedAtDateTime?
cancelledAtDateTime?
pausedAtDateTime?
resumedAtDateTime?
expiresAtDateTime?
priorityInt
queueNameString?
workerIdString?
attemptInt
maxAttemptsInt

PlatformJobEvent​

Table: platform_job_events

ColumnType
idString
jobIdString
sequenceInt
levelString
eventTypeString
messageKeyString?
messageParamsJson?
sanitizedMessageString?
progressInt?
metadataJson?
createdAtDateTime

Workflow​

Table: workflows

ColumnType
idString
nameString
descriptionString?
workspaceKeyString?
enabledBoolean
statusString
tagsString[]
currentDraftVersionIdString?
publishedVersionIdString?
createdByIdString?
updatedByIdString?
createdAtDateTime
updatedAtDateTime
archivedAtDateTime?

WorkflowVersion​

Table: workflow_versions

ColumnType
idString
workflowIdString
versionNumberInt
statusString
graphJson
triggerSummaryJson?
requiredPermissionsString[]
checksumString
changeNotesString?
createdByIdString?
createdAtDateTime
publishedAtDateTime?
archivedAtDateTime?

WorkflowExecution​

Table: workflow_executions

ColumnType
idString
workflowIdString
workflowVersionIdString
triggerTypeString?
triggerEventIdString?
triggerSourceString?
correlationIdString?
traceIdString?
statusString
inputContextJson?
outputSummaryJson?
currentNodeIdsString[]
jobIdString?
executionIdentityUserIdString?
resumeAtDateTime?
expiresAtDateTime?
heartbeatAtDateTime?
parentExecutionIdString?
depthInt
startedAtDateTime?
completedAtDateTime?
failedAtDateTime?
cancelledAtDateTime?
createdAtDateTime
updatedAtDateTime

WorkflowNodeExecution​

Table: workflow_node_executions

ColumnType
idString
workflowExecutionIdString
nodeIdString
nodeTypeString
statusString
attemptInt
maxAttemptsInt
inputSummaryJson?
outputSummaryJson?
jobIdString?
errorCodeString?
errorMessageString?
warningsJson?
startedAtDateTime?
completedAtDateTime?
createdAtDateTime
updatedAtDateTime

WorkflowApproval​

Table: workflow_approvals

ColumnType
idString
workflowExecutionIdString
nodeExecutionIdString?
statusString
requestedFromUserIdString?
requestedFromRoleIdString?
requiredPermissionString?
riskLevelString?
requestedAtDateTime
respondedAtDateTime?
respondedByIdString?
commentString?
expiresAtDateTime?

WorkflowVariable​

Table: workflow_variables

ColumnType
idString
scopeString
workflowIdString?
keyString
valueTypeString
encryptedValueString?
plainValueJson?
descriptionString?
createdByIdString?
createdAtDateTime
updatedAtDateTime

WorkflowTemplate​

Table: workflow_templates

ColumnType
idString
keyString
nameKeyString
descriptionKeyString?
categoryString
graphJson
requiredModulesString[]
requiredPermissionsString[]
defaultEnabledBoolean
createdAtDateTime
updatedAtDateTime

StorageProfile​

Table: storage_profiles

ColumnType
idString
nameString
descriptionString?
isDefaultBoolean
isEnabledBoolean
stagingRootString
tempRootString?
failedRootString?
quarantineRootString?
movieLibraryIdString?
tvLibraryIdString?
musicLibraryIdString?
defaultStrategyString
createdAtDateTime
updatedAtDateTime

IntakeIntent​

Table: intake_intents

ColumnType
hashString
engineIdString
profileIdString
createdByIdString?
createdAtDateTime
consumedAtDateTime?

PathMappingRule​

Table: path_mapping_rules

ColumnType
idString
spaceString
fromPrefixString
toPrefixString
scopeIdString?
priorityInt
isEnabledBoolean
createdAtDateTime
updatedAtDateTime

StorageCapabilityProbe​

Table: storage_capability_probes

ColumnType
idString
profileIdString
sourceRootString
targetRootString
sameDeviceBoolean
hardlinkBoolean
reflinkBoolean
symlinkBoolean
providerRelocationBoolean
filesystemString?
detailString?
errorString?
detectedAtDateTime

DiscoveredMedia​

Table: discovered_media

ColumnType
idString
mediaTypeString
titleString
originalTitleString?
normalizedTitleString
yearInt?
dedupeKeyString
externalIdsJson
genresString[]
originalLanguageString?
countriesString[]
networkString?
studioString?
streamingServiceString?
overviewString?
posterUrlString?
backdropUrlString?
popularityFloat?
ratingFloat?
voteCountInt?
seriesStatusString?
seasonNumberInt?
episodeNumberInt?
premiereDateDateTime?
seasonPremiereDateDateTime?
firstSeenAtDateTime
lastSeenAtDateTime
lastRefreshedAtDateTime?
sourceProvidersString[]
confidenceFloat
discoveryStatusString
identityStatusString
decisionString?
decisionReasonString?
evaluatedAtDateTime?
matchedTemplateIdString?
watchlistItemIdString?
rssRuleIdString?
createdAtDateTime
updatedAtDateTime

DiscoveredMediaReleaseDate​

Table: discovered_media_release_dates

ColumnType
idString
discoveredMediaIdString
releaseTypeString
dateDateTime?
airsAtDateTime?
regionString?
sourceString
confidenceFloat
createdAtDateTime
updatedAtDateTime

DiscoveryTemplate​

Table: discovery_templates

ColumnType
idString
nameString
descriptionString?
enabledBoolean
mediaTypeString
providersString[]
upcomingWindowDaysInt
regionsString[]
languagesString[]
minimumPopularityFloat?
minimumRatingFloat?
minimumVoteCountInt?
networksString[]
streamingServicesString[]
studiosString[]
seriesTypesString[]
releaseTypesString[]
autoMonitorCategoriesString[]
notifyOnlyCategoriesString[]
ignoreCategoriesString[]
blockedFromAutoCategoriesString[]
categoryMatchModeString
minimumConfidenceFloat
acquisitionTemplateIdString?
rssFeedIdString?
storageProfileIdString?
pathTemplateString?
createIntakeDirectoryBoolean
autoAddLimitPerDayInt
autoAddLimitPerWeekInt
createdByString?
autoMonitorEnabledBoolean
requireUpcomingBoolean
gracePeriodDaysInt
pastReleaseBehaviorString
returningSeriesBehaviorString
policyVersionInt
createdAtDateTime
updatedAtDateTime

AcquisitionRuleTemplate​

Table: acquisition_rule_templates

ColumnType
idString
nameString
descriptionString?
mediaTypeString
enabledBoolean
rssFeedIdString?
storageProfileIdString?
pathTemplateString?
requiredTermsJson
excludedTermsJson
upgradePolicyString
versionInt
createdByString?
createdAtDateTime
updatedAtDateTime

AcquisitionRuleTemplateCandidate​

Table: acquisition_rule_template_candidates

ColumnType
idString
templateIdString
priorityOrderInt
nameString
descriptionString?
enabledBoolean
matchTypeString
patternString?
requiredTermsJson
excludedTermsJson
qualityRulesJson
sizeRulesJson
feedScopeJson
createdAtDateTime
updatedAtDateTime

DiscoveryEvaluation​

Table: discovery_evaluations

ColumnType
idString
discoveredMediaIdString
templateIdString?
decisionString
reasonString
traceJson
watchlistItemIdString?
rssRuleIdString?
failureReasonString?
createdAtDateTime

DiscoveryProviderState​

Table: discovery_provider_state

ColumnType
idString
providerString
enabledBoolean
healthyBoolean
lastSyncStartedAtDateTime?
lastSuccessfulSyncDateTime?
lastFailureAtDateTime?
lastFailureReasonString?
lastResponseMsInt?
itemsDiscoveredInt
capabilitiesString[]
syncCursorsJson
createdAtDateTime
updatedAtDateTime

DiscoverySuppression​

Table: discovery_suppressions

ColumnType
idString
dedupeKeyString
titleString
mediaTypeString?
reasonString
suppressedAtDateTime
suppressedByString?

RSS​

8 models.

RssFeed​

Table: rss_feeds

ColumnType
idString
nameString
urlString
refreshIntervalInt
isEnabledBoolean
lastFetchedAtDateTime?
createdAtDateTime
updatedAtDateTime

RssRule​

Table: rss_rules

ColumnType
idString
feedIdString
nameString
includeRegexString?
excludeRegexString?
categoryIdString?
savePathString?
autoDownloadBoolean
isEnabledBoolean
createdAtDateTime
importModeString
storageProfileIdString?
preMigrationSavePathString?
generatedByDiscoveryBoolean
discoveryTemplateIdString?
acquisitionTemplateIdString?
discoveredMediaIdString?
acquisitionTemplateVersionInt?
userModifiedAtDateTime?
mediaTypeString?
showStatusString?
showStatusProviderString?
showStatusProviderIdString?
showStatusCheckedAtDateTime?
showStatusRecommendationString?
showFirstAirDateDateTime?
showLastAirDateDateTime?
showNextEpisodeAirDateDateTime?
showStatusWarningsJson
allowInactiveShowMonitoringBoolean

TvShowStatus​

Table: tv_show_status

ColumnType
idString
providerString
providerShowIdString
titleString
normalizedTitleString
originalStatusString?
normalizedStatusString
recommendationString
confidenceFloat
firstAirDateDateTime?
lastAirDateDateTime?
nextEpisodeAirDateDateTime?
lastEpisodeTitleString?
nextEpisodeTitleString?
totalSeasonsInt?
totalEpisodesInt?
overviewString?
posterUrlString?
warningsJson
checkedAtDateTime

RssAcquisition​

Table: rss_acquisitions

ColumnType
idString
rssRuleIdString
identityString
priorityOrderInt
releaseTitleString
torrentHashString?
createdAtDateTime
updatedAtDateTime

RssSmartMatchTemplate​

Table: rss_smart_match_templates

ColumnType
idString
rssRuleIdString
sourceNameString
parsedMetadataJson
generatedCandidatesJson
confidenceScoreInt
userEditedBoolean
createdAtDateTime
updatedAtDateTime

RssRuleMatchCandidate​

Table: rss_rule_match_candidates

ColumnType
idString
rssRuleIdString
priorityOrderInt
nameString
descriptionString?
enabledBoolean
matchTypeString
patternString?
requiredTermsJson
excludedTermsJson
qualityRulesJson
sizeRulesJson
feedScopeJson
lastMatchedAtDateTime?
matchCountInt
createdAtDateTime
updatedAtDateTime

RssRuleMatchEvaluation​

Table: rss_rule_match_evaluations

ColumnType
idString
rssRuleIdString
rssItemIdString
matchedCandidateIdString?
matchedCandidatePriorityInt?
resultString
evaluationTraceJson
actionTakenString?
torrentHashString?
createdAtDateTime

RssHistory​

Table: rss_history

ColumnType
idString
feedIdString
itemGuidString
titleString
linkString
magnetString?
infoHashString?
matchedBoolean
downloadedBoolean
regrabRequestedAtDateTime?
createdAtDateTime

Torrents​

11 models.

TorrentEngine​

Table: torrent_engines

ColumnType
idString
nameString
kindString
configJson
isDefaultBoolean
isEnabledBoolean
createdAtDateTime
updatedAtDateTime

TorrentSnapshot​

Table: torrent_snapshots

ColumnType
idString
engineIdString
hashString
nameString
stateString
progressFloat
sizeBigInt
downloadedBigInt
uploadedBigInt
ratioFloat
downloadRateInt
uploadRateInt
savePathString
labelString?
categoryIdString?
addedAtDateTime?
completedAtDateTime?
capturedAtDateTime

TorrentCategory​

Table: torrent_categories

ColumnType
idString
nameString
colorString?
savePathString?
createdAtDateTime

TorrentTag​

Table: torrent_tags

ColumnType
idString
nameString
colorString?
createdAtDateTime

Table: torrent_tag_links

ColumnType
snapshotIdString
tagIdString

TorrentSchedulerEngineConfig​

Table: torrent_scheduler_engine_configs

ColumnType
engineIdString
modeString
modeChangedAtDateTime?
modeChangedByString?
nativeSettingsSnapshotJson?
nativeSettingsSnapshotAtDateTime?
lastSweepAtDateTime?
lastSuccessfulSweepAtDateTime?
healthStateString
healthDetailString?
createdAtDateTime
updatedAtDateTime

TorrentSchedulerPolicy​

Table: torrent_scheduler_policies

ColumnType
idString
nameString
enabledBoolean
scopeTypeString
scopeIdString?
maxConcurrentDownloadsInt?
maxConcurrentSeedsInt?
maxTotalActiveInt?
maxDownloadRateKbpsInt?
maxUploadRateKbpsInt?
reserveDownloadBandwidthPercentInt?
reserveSeedBandwidthPercentInt?
seedPolicyJson?
createdByString?
createdAtDateTime
updatedAtDateTime

TorrentSchedulerDecision​

Table: torrent_scheduler_decisions

ColumnType
idString
engineIdString
generatedAtDateTime
modeString
summaryJson
limitationsJson?
proposedActionsInt
appliedActionsInt
durationMsInt?
resultString

TorrentSchedulerState​

Table: torrent_scheduler_states

ColumnType
engineIdString
hashString
schedulerPausedAtDateTime?
reasonCodeString?
lastActionAtDateTime?
updatedAtDateTime

TorrentSchedulerWindow​

Table: torrent_scheduler_windows

ColumnType
idString
nameString
enabledBoolean
daysOfWeekInt[]
startMinuteInt
endMinuteInt
timeZoneString
priorityInt
maxConcurrentDownloadsInt?
maxConcurrentSeedsInt?
maxTotalActiveInt?
maxDownloadRateKbpsInt?
maxUploadRateKbpsInt?
allowNewDownloadsBoolean
createdByString?
createdAtDateTime
updatedAtDateTime

TorrentSchedulerOverride​

Table: torrent_scheduler_overrides

ColumnType
idString
engineIdString
hashString
kindString
expiresAtDateTime?
clearedAtDateTime?
reasonString?
createdByString?
createdAtDateTime

See also​