diff --git a/.github/actions/install-dependencies/action.yml b/.github/actions/install-dependencies/action.yml index 562e41208..fa02dd7c4 100644 --- a/.github/actions/install-dependencies/action.yml +++ b/.github/actions/install-dependencies/action.yml @@ -21,7 +21,7 @@ runs: - uses: voidzero-dev/setup-vp@2dec1e33f4ab2c6d5bce1b0c4607961bb1a3f7a1 # v1 with: - node-version: '24' + node-version: "24" cache: true - name: Install dependencies diff --git a/.github/workflows/docs-deploy.yml b/.github/workflows/docs-deploy.yml index 60418c0eb..97ee7f407 100644 --- a/.github/workflows/docs-deploy.yml +++ b/.github/workflows/docs-deploy.yml @@ -33,9 +33,3 @@ jobs: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} workingDirectory: apps/docs - - - - - - diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 48cb49a1c..03b87d658 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -2,7 +2,7 @@ name: Scorecard analysis on: branch_protection_rule: push: - branches: [ "main" ] + branches: ["main"] permissions: read-all diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 29b746aa2..536a788c9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -64,6 +64,7 @@ There are many ways to contribute to Zerobyte: ### Reporting Bugs If you find a bug, please open an issue with: + - A clear, descriptive title - Steps to reproduce the issue - Expected vs. actual behavior @@ -73,6 +74,7 @@ If you find a bug, please open an issue with: ### Suggesting Features When suggesting a feature: + - Check if it's already been suggested - Clearly describe the feature and its use case - Explain why it would be valuable to other users @@ -90,6 +92,7 @@ When suggesting a feature: ### Improving Documentation Documentation improvements are always welcome! This includes: + - Fixing typos or clarifying existing docs - Adding examples or use cases - Writing guides or tutorials @@ -102,17 +105,20 @@ We welcome translations to make Zerobyte accessible to more users worldwide. Ple ## Development Setup 1. **Clone your fork**: + ```bash git clone https://github.com/your-username/zerobyte.git cd zerobyte ``` 2. **Set up your development environment**: - ```bash + + ```bash bun run start:dev - ``` + ``` 3. **Create a feature branch**: + ```bash git checkout -b feature/your-feature-name ``` @@ -158,6 +164,7 @@ We welcome translations to make Zerobyte accessible to more users worldwide. Ple ## Questions? If you have questions about contributing, feel free to: + - Open an issue with your question - Check existing issues and discussions - Reach out to the maintainers diff --git a/app/client/components/__test__/file-tree.test.tsx b/app/client/components/__test__/file-tree.test.tsx index d53e91802..e3790f2a4 100644 --- a/app/client/components/__test__/file-tree.test.tsx +++ b/app/client/components/__test__/file-tree.test.tsx @@ -1,5 +1,5 @@ /** biome-ignore-all lint/style/noNonNullAssertion: Testing file - non-null assertions are acceptable here */ -import { afterEach, describe, expect, test } from "vitest"; +import { afterEach, describe, expect, test } from "vite-plus/test"; import { cleanup, render, screen, fireEvent, within } from "@testing-library/react"; import { useState } from "react"; import { FileTree, type FileEntry } from "../file-tree"; @@ -266,7 +266,10 @@ describe("FileTree Selection Logic", () => { ]; render( - , + , ); fireEvent.click(getCheckboxFor("service")); diff --git a/app/client/components/__test__/restore-form.test.tsx b/app/client/components/__test__/restore-form.test.tsx index 824232d73..c7fb41cf4 100644 --- a/app/client/components/__test__/restore-form.test.tsx +++ b/app/client/components/__test__/restore-form.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import { HttpResponse, http, server } from "~/test/msw/server"; import { cleanup, render, screen, userEvent, waitFor, within } from "~/test/test-utils"; import { fromAny } from "@total-typescript/shoehorn"; diff --git a/app/client/components/backup-summary-card.tsx b/app/client/components/backup-summary-card.tsx index 3c10d0af4..ebb6d6aef 100644 --- a/app/client/components/backup-summary-card.tsx +++ b/app/client/components/backup-summary-card.tsx @@ -63,7 +63,9 @@ export const BackupSummaryCard = ({ summary }: Props) => {
{topStats.map((stat) => (
- {stat.label} + + {stat.label} + {stat.value}
))} diff --git a/app/client/components/cron-input.tsx b/app/client/components/cron-input.tsx index fde40eec7..0560fdaf3 100644 --- a/app/client/components/cron-input.tsx +++ b/app/client/components/cron-input.tsx @@ -75,7 +75,9 @@ export function CronInput({ value, onChange, error }: CronInputProps) { {value && !isValid && parseError &&

{parseError}

} {isValid && nextRuns.length > 0 && (
-

Next 5 executions:

+

+ Next 5 executions: +

    {nextRuns.map((date, i) => (
  • diff --git a/app/client/components/data-table-sort-header.tsx b/app/client/components/data-table-sort-header.tsx index 0a888e49c..f63d34b65 100644 --- a/app/client/components/data-table-sort-header.tsx +++ b/app/client/components/data-table-sort-header.tsx @@ -34,7 +34,9 @@ export function DataTableSortHeader({ > {title} - {icon} + + {icon} + ); diff --git a/app/client/components/file-browsers/__tests__/snapshot-tree-browser.test.tsx b/app/client/components/file-browsers/__tests__/snapshot-tree-browser.test.tsx index 23df62525..99aed760e 100644 --- a/app/client/components/file-browsers/__tests__/snapshot-tree-browser.test.tsx +++ b/app/client/components/file-browsers/__tests__/snapshot-tree-browser.test.tsx @@ -1,5 +1,5 @@ import type { ComponentProps } from "react"; -import { afterEach, describe, expect, test } from "vitest"; +import { afterEach, describe, expect, test } from "vite-plus/test"; import { HttpResponse, http, server } from "~/test/msw/server"; import { cleanup, fireEvent, render, screen, userEvent, waitFor, within } from "~/test/test-utils"; diff --git a/app/client/components/file-tree.tsx b/app/client/components/file-tree.tsx index b75692630..0953027e5 100644 --- a/app/client/components/file-tree.tsx +++ b/app/client/components/file-tree.tsx @@ -362,7 +362,9 @@ export const FileTree = memo((props: Props) => { onToggle={toggleCollapseState} onHover={onFolderHover} withCheckbox={withCheckboxes} - checked={isPathSelected(fileOrFolder.fullPath) && !isPartiallySelected(fileOrFolder.fullPath)} + checked={ + isPathSelected(fileOrFolder.fullPath) && !isPartiallySelected(fileOrFolder.fullPath) + } partiallyChecked={isPartiallySelected(fileOrFolder.fullPath)} onCheckboxChange={handleSelectionChange} selectableMode={selectableFolders} @@ -526,7 +528,11 @@ const File = memo(({ file, onFileSelect, selected, withCheckbox, checked, onChec onClick={handleClick} > {withCheckbox && ( - e.stopPropagation()} /> + e.stopPropagation()} + /> )} {name} {typeof size === "number" && ( diff --git a/app/client/components/organization-switcher.tsx b/app/client/components/organization-switcher.tsx index e486b8ece..da366e1dc 100644 --- a/app/client/components/organization-switcher.tsx +++ b/app/client/components/organization-switcher.tsx @@ -67,7 +67,9 @@ export function OrganizationSwitcher() { className="size-full object-cover" /> ) : ( - {getOrganizationInitials(activeOrganization?.name)} + + {getOrganizationInitials(activeOrganization?.name)} + )}
@@ -93,13 +95,21 @@ export function OrganizationSwitcher() { >
{organization.logo ? ( - {`${organization.name} + {`${organization.name} ) : ( - {getOrganizationInitials(organization.name)} + + {getOrganizationInitials(organization.name)} + )}
{organization.name} - {organization.id === activeOrganization?.id && "Current"} + + {organization.id === activeOrganization?.id && "Current"} + ))} diff --git a/app/client/components/release-notes-dialog.tsx b/app/client/components/release-notes-dialog.tsx index 77ea92892..dd4ae5265 100644 --- a/app/client/components/release-notes-dialog.tsx +++ b/app/client/components/release-notes-dialog.tsx @@ -31,7 +31,9 @@ export function ReleaseNotesDialog({ open, onOpenChange, updates }: ReleaseNotes

{release.version}

- {formatDate(release.publishedAt)} + + {formatDate(release.publishedAt)} +
{release.body} diff --git a/app/client/components/ui/alert.tsx b/app/client/components/ui/alert.tsx index 229491a7b..132b32460 100644 --- a/app/client/components/ui/alert.tsx +++ b/app/client/components/ui/alert.tsx @@ -29,7 +29,9 @@ Alert.displayName = "Alert"; const AlertTitle = React.forwardRef>( ({ className, ...props }, ref) => ( -
{props.children}
+
+ {props.children} +
), ); AlertTitle.displayName = "AlertTitle"; diff --git a/app/client/components/ui/breadcrumb.tsx b/app/client/components/ui/breadcrumb.tsx index ea0adada1..ccee070e5 100644 --- a/app/client/components/ui/breadcrumb.tsx +++ b/app/client/components/ui/breadcrumb.tsx @@ -21,7 +21,11 @@ function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) { function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">) { return ( -
  • +
  • ); } diff --git a/app/client/components/ui/chart.tsx b/app/client/components/ui/chart.tsx index a61112f88..24388ada9 100644 --- a/app/client/components/ui/chart.tsx +++ b/app/client/components/ui/chart.tsx @@ -130,7 +130,9 @@ function ChartTooltipContent({ const key = `${labelKey || item?.dataKey || item?.name || "value"}`; const itemConfig = getPayloadConfigFromPayload(config, item, key); const value = - !labelKey && typeof label === "string" ? config[label as keyof typeof config]?.label || label : itemConfig?.label; + !labelKey && typeof label === "string" + ? config[label as keyof typeof config]?.label || label + : itemConfig?.label; if (labelFormatter) { return
    {labelFormatter(value, payload)}
    ; @@ -182,12 +184,16 @@ function ChartTooltipContent({ ) : ( !hideIndicator && (
    {nestLabel ? tooltipLabel : null} - {itemConfig?.label || item.name} + + {itemConfig?.label || item.name} +
    {item.value && ( @@ -243,7 +251,13 @@ function ChartLegendContent({ } return ( -
    +
    {payload .filter((item) => item.type !== "none") .map((item) => { @@ -253,7 +267,9 @@ function ChartLegendContent({ return (
    svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3")} + className={cn( + "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3", + )} > {itemConfig?.icon && !hideIcon ? ( diff --git a/app/client/components/ui/hover-card.tsx b/app/client/components/ui/hover-card.tsx index e420e624a..0f21c32b6 100644 --- a/app/client/components/ui/hover-card.tsx +++ b/app/client/components/ui/hover-card.tsx @@ -1,42 +1,36 @@ -import * as React from "react" -import * as HoverCardPrimitive from "@radix-ui/react-hover-card" +import * as React from "react"; +import * as HoverCardPrimitive from "@radix-ui/react-hover-card"; -import { cn } from "~/client/lib/utils" +import { cn } from "~/client/lib/utils"; -function HoverCard({ - ...props -}: React.ComponentProps) { - return +function HoverCard({ ...props }: React.ComponentProps) { + return ; } -function HoverCardTrigger({ - ...props -}: React.ComponentProps) { - return ( - - ) +function HoverCardTrigger({ ...props }: React.ComponentProps) { + return ; } function HoverCardContent({ - className, - align = "center", - sideOffset = 4, - ...props + className, + align = "center", + sideOffset = 4, + ...props }: React.ComponentProps) { - return ( - - - - ) + return ( + + + + ); } -export { HoverCard, HoverCardTrigger, HoverCardContent } +export { HoverCard, HoverCardTrigger, HoverCardContent }; diff --git a/app/client/components/ui/select.tsx b/app/client/components/ui/select.tsx index 7e37f0e43..39f811dc8 100644 --- a/app/client/components/ui/select.tsx +++ b/app/client/components/ui/select.tsx @@ -17,7 +17,10 @@ function collectSelectItems(children: React.ReactNode, items = new Map) { - return ; + return ( + + ); } export { Tabs, TabsList, TabsTrigger, TabsContent }; diff --git a/app/client/components/webhook-request-preview.tsx b/app/client/components/webhook-request-preview.tsx index 1b1c132fc..7fec9edcf 100644 --- a/app/client/components/webhook-request-preview.tsx +++ b/app/client/components/webhook-request-preview.tsx @@ -19,7 +19,9 @@ ${body}`;
    -

    This is a preview of the HTTP request that will be sent.

    +

    + This is a preview of the HTTP request that will be sent. +

    ); }; diff --git a/app/client/functions/__tests__/is-secure-context.test.ts b/app/client/functions/__tests__/is-secure-context.test.ts index f02f62cff..c048be998 100644 --- a/app/client/functions/__tests__/is-secure-context.test.ts +++ b/app/client/functions/__tests__/is-secure-context.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { getIsSecureContextForRequest, isSecureContextOrigin } from "../is-secure-context"; describe("isSecureContextOrigin", () => { diff --git a/app/client/hooks/__tests__/use-server-events.test.tsx b/app/client/hooks/__tests__/use-server-events.test.tsx index 428439d86..c2d1bb512 100644 --- a/app/client/hooks/__tests__/use-server-events.test.tsx +++ b/app/client/hooks/__tests__/use-server-events.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import { useEffect, useState } from "react"; import { useQuery } from "@tanstack/react-query"; import { cleanup, createTestQueryClient, render, screen } from "~/test/test-utils"; diff --git a/app/client/lib/__tests__/datetime.test.ts b/app/client/lib/__tests__/datetime.test.ts index d5d06030d..e58e73938 100644 --- a/app/client/lib/__tests__/datetime.test.ts +++ b/app/client/lib/__tests__/datetime.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { DEFAULT_TIME_FORMAT, inferDateTimePreferences, rawFormatters } from "../datetime"; afterEach(() => { diff --git a/app/client/lib/volume-path.test.ts b/app/client/lib/volume-path.test.ts index 5843dc004..b3adf442d 100644 --- a/app/client/lib/volume-path.test.ts +++ b/app/client/lib/volume-path.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { getVolumeMountPath } from "./volume-path"; import { fromAny } from "@total-typescript/shoehorn"; diff --git a/app/client/modules/auth/components/reset-password-dialog.tsx b/app/client/modules/auth/components/reset-password-dialog.tsx index af91e7f56..3b8467fde 100644 --- a/app/client/modules/auth/components/reset-password-dialog.tsx +++ b/app/client/modules/auth/components/reset-password-dialog.tsx @@ -18,9 +18,12 @@ export const ResetPasswordDialog = ({ open, onOpenChange }: ResetPasswordDialogP
    -
    {RESET_PASSWORD_COMMAND}
    +
    + {RESET_PASSWORD_COMMAND} +

    - This command will start an interactive session where you can enter a new password for your account. + This command will start an interactive session where you can enter a new password for your + account.

    diff --git a/app/client/modules/auth/routes/__tests__/login.test.tsx b/app/client/modules/auth/routes/__tests__/login.test.tsx index be46c1e45..534833774 100644 --- a/app/client/modules/auth/routes/__tests__/login.test.tsx +++ b/app/client/modules/auth/routes/__tests__/login.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { HttpResponse, http, server } from "~/test/msw/server"; import { cleanup, render, screen, userEvent, waitFor } from "~/test/test-utils"; import { diff --git a/app/client/modules/auth/routes/onboarding.tsx b/app/client/modules/auth/routes/onboarding.tsx index ab0db91cd..694abc7ea 100644 --- a/app/client/modules/auth/routes/onboarding.tsx +++ b/app/client/modules/auth/routes/onboarding.tsx @@ -98,7 +98,12 @@ export function OnboardingPage() { Email - + Enter your email address @@ -126,7 +131,12 @@ export function OnboardingPage() { Password - + Password must be at least 8 characters long. @@ -140,7 +150,12 @@ export function OnboardingPage() { Confirm Password - + diff --git a/app/client/modules/backups/components/__tests__/snapshot-file-browser.test.tsx b/app/client/modules/backups/components/__tests__/snapshot-file-browser.test.tsx index 719cd9d16..be05450ed 100644 --- a/app/client/modules/backups/components/__tests__/snapshot-file-browser.test.tsx +++ b/app/client/modules/backups/components/__tests__/snapshot-file-browser.test.tsx @@ -1,5 +1,5 @@ import type { ReactNode } from "react"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { HttpResponse, http, server } from "~/test/msw/server"; import { cleanup, render, screen, waitFor } from "~/test/test-utils"; import { fromAny } from "@total-typescript/shoehorn"; diff --git a/app/client/modules/backups/components/backup-card.tsx b/app/client/modules/backups/components/backup-card.tsx index c99386f5f..2c639867e 100644 --- a/app/client/modules/backups/components/backup-card.tsx +++ b/app/client/modules/backups/components/backup-card.tsx @@ -45,7 +45,10 @@ export const BackupCard = ({ schedule }: { schedule: BackupSchedule }) => {
    Last backup
    - +
    Next backup diff --git a/app/client/modules/backups/components/create-schedule-form/exclude-section.tsx b/app/client/modules/backups/components/create-schedule-form/exclude-section.tsx index 5a9af971e..b8c18aa79 100644 --- a/app/client/modules/backups/components/create-schedule-form/exclude-section.tsx +++ b/app/client/modules/backups/components/create-schedule-form/exclude-section.tsx @@ -54,9 +54,9 @@ export const ExcludeSection = ({ form }: ExcludeSectionProps) => { /> - Exclude folders containing a file with the specified name. Enter one filename per line. For example, use{" "} - .nobackup to skip any folder containing a{" "} - .nobackup file. + Exclude folders containing a file with the specified name. Enter one filename per line. For + example, use .nobackup to skip any folder + containing a .nobackup file. @@ -73,8 +73,8 @@ export const ExcludeSection = ({ form }: ExcludeSectionProps) => {
    Stay on one file system - Prevent Restic from crossing file system boundaries. This is useful to avoid backing up network mounts - or other partitions that might be mounted inside your backup source. + Prevent Restic from crossing file system boundaries. This is useful to avoid backing up + network mounts or other partitions that might be mounted inside your backup source.
    diff --git a/app/client/modules/backups/components/create-schedule-form/frequency-section.tsx b/app/client/modules/backups/components/create-schedule-form/frequency-section.tsx index 408814148..53656faab 100644 --- a/app/client/modules/backups/components/create-schedule-form/frequency-section.tsx +++ b/app/client/modules/backups/components/create-schedule-form/frequency-section.tsx @@ -47,7 +47,11 @@ export const FrequencySection = ({ form, frequency }: FrequencySectionProps) => control={form.control} name="cronExpression" render={({ field, fieldState }) => ( - + )} /> )} @@ -117,7 +121,9 @@ export const FrequencySection = ({ form, frequency }: FrequencySectionProps) => size="icon" onClick={() => { const current = field.value || []; - const next = isSelected ? current.filter((d) => d !== day) : [...current, day]; + const next = isSelected + ? current.filter((d) => d !== day) + : [...current, day]; field.onChange(next); }} > diff --git a/app/client/modules/backups/components/create-schedule-form/paths-section.tsx b/app/client/modules/backups/components/create-schedule-form/paths-section.tsx index d97e42063..9eeb38445 100644 --- a/app/client/modules/backups/components/create-schedule-form/paths-section.tsx +++ b/app/client/modules/backups/components/create-schedule-form/paths-section.tsx @@ -59,7 +59,11 @@ export const PathsSection = ({ ))} {selectedPaths.size > 20 && ( - )} @@ -80,8 +84,8 @@ export const PathsSection = ({ /> - Optionally add custom include patterns using glob syntax. Enter one pattern per line. These will be - combined with the paths selected above. + Optionally add custom include patterns using glob syntax. Enter one pattern per line. These + will be combined with the paths selected above. diff --git a/app/client/modules/backups/components/create-schedule-form/summary-section.tsx b/app/client/modules/backups/components/create-schedule-form/summary-section.tsx index 5598502ff..0ef8dde3c 100644 --- a/app/client/modules/backups/components/create-schedule-form/summary-section.tsx +++ b/app/client/modules/backups/components/create-schedule-form/summary-section.tsx @@ -55,7 +55,9 @@ export const SummarySection = ({ volume, frequency, formValues }: SummarySection ))} {formValues.includePaths && formValues.includePaths.length > 20 && ( - + {formValues.includePaths.length - 20} more + + + {formValues.includePaths.length - 20} more + )} {formValues.includePatterns ?.split("\n") diff --git a/app/client/modules/backups/components/schedule-mirrors-config.tsx b/app/client/modules/backups/components/schedule-mirrors-config.tsx index f4c826534..e9a0ac1d3 100644 --- a/app/client/modules/backups/components/schedule-mirrors-config.tsx +++ b/app/client/modules/backups/components/schedule-mirrors-config.tsx @@ -322,7 +322,8 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re Mirror Repositories - Configure secondary repositories where snapshots will be automatically copied after each backup + Configure secondary repositories where snapshots will be automatically copied after each + backup
    {!isAddingNew && selectableRepositories.length > 0 && ( @@ -348,19 +349,34 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re
    - +
    - + {repository.name} - ({repository.type}) + + ({repository.type}) +
    - -

    {compat?.reason || "This repository is not compatible for mirroring."}

    + +

    + {compat?.reason || + "This repository is not compatible for mirroring."} +

    - Consider creating a new backup scheduler with the desired destination instead. + Consider creating a new backup scheduler with the desired + destination instead.

    @@ -371,7 +387,8 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re All available repositories have conflicting backends.
    - Consider creating a new backup scheduler with the desired destination instead. + Consider creating a new backup scheduler with the desired destination + instead.
    )} @@ -387,7 +404,9 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re

    No mirror repositories configured for this schedule.

    -

    Click "Add mirror" to replicate backups to additional repositories.

    +

    + Click "Add mirror" to replicate backups to additional repositories. +

    ) : (
    @@ -438,7 +457,9 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re animated={isSyncing(assignment)} />
    - {getLabel(assignment)} + + {getLabel(assignment)} +
    @@ -452,7 +473,12 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re disabled={isSyncing(assignment) || hasChanges} className="h-8 w-8 text-muted-foreground hover:text-foreground" > - + Sync more snapshots @@ -496,7 +522,9 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re {isSyncStatusLoading && !syncStatus ? ( -
    Loading snapshot status...
    +
    + Loading snapshot status... +
    ) : syncStatus && syncStatus.missingSnapshots.length === 0 ? (
    All {syncStatus.sourceCount} snapshots are already synced to this mirror. @@ -504,7 +532,8 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re ) : syncStatus ? (

    - {syncStatus.missingSnapshots.length} of {syncStatus.sourceCount} snapshots are missing in this mirror. + {syncStatus.missingSnapshots.length} of {syncStatus.sourceCount} snapshots are + missing in this mirror.

    @@ -512,7 +541,10 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re @@ -531,11 +563,17 @@ export const ScheduleMirrorsConfig = ({ scheduleShortId, primaryRepositoryId, re e.stopPropagation()}> toggleSnapshotSelection(snapshot.short_id)} + onCheckedChange={() => + toggleSnapshotSelection(snapshot.short_id) + } /> - {snapshot.short_id} - {formatDateTime(new Date(snapshot.time))} + + {snapshot.short_id} + + + {formatDateTime(new Date(snapshot.time))} + diff --git a/app/client/modules/backups/components/schedule-notifications-config.tsx b/app/client/modules/backups/components/schedule-notifications-config.tsx index 0635a8e32..3f535368c 100644 --- a/app/client/modules/backups/components/schedule-notifications-config.tsx +++ b/app/client/modules/backups/components/schedule-notifications-config.tsx @@ -173,7 +173,9 @@ export const ScheduleNotificationsConfig = ({ scheduleShortId, destinations, ini
    {destination.name} - ({destination.type}) + + ({destination.type}) +
    ))} @@ -230,21 +232,27 @@ export const ScheduleNotificationsConfig = ({ scheduleShortId, destinations, ini toggleEvent(destination.id, "notifyOnSuccess")} + onCheckedChange={() => + toggleEvent(destination.id, "notifyOnSuccess") + } /> toggleEvent(destination.id, "notifyOnWarning")} + onCheckedChange={() => + toggleEvent(destination.id, "notifyOnWarning") + } /> toggleEvent(destination.id, "notifyOnFailure")} + onCheckedChange={() => + toggleEvent(destination.id, "notifyOnFailure") + } /> @@ -270,7 +278,12 @@ export const ScheduleNotificationsConfig = ({ scheduleShortId, destinations, ini - diff --git a/app/client/modules/backups/components/schedule-summary.tsx b/app/client/modules/backups/components/schedule-summary.tsx index fb1adfbd2..ed12fb157 100644 --- a/app/client/modules/backups/components/schedule-summary.tsx +++ b/app/client/modules/backups/components/schedule-summary.tsx @@ -160,13 +160,21 @@ export const ScheduleSummary = (props: Props) => { {schedule.retentionPolicy && ( - setShowForgetConfirm(true)} disabled={runForget.isPending}> + setShowForgetConfirm(true)} + disabled={runForget.isPending} + > Run cleanup )} navigate({ to: "/backups/$backupId/edit", params: { backupId: schedule.shortId } })} + onClick={() => + navigate({ + to: "/backups/$backupId/edit", + params: { backupId: schedule.shortId }, + }) + } > Edit schedule @@ -223,7 +231,9 @@ export const ScheduleSummary = (props: Props) => { "hover:bg-red-500/10": schedule.lastBackupStatus === "error", })} > - {schedule.lastBackupStatus === "warning" ? "Warning details" : "Error details"} + + {schedule.lastBackupStatus === "warning" ? "Warning details" : "Error details"} + { Delete backup schedule? - Are you sure you want to delete this backup schedule for {schedule.volume.name}? This - action cannot be undone. Existing snapshots will not be deleted. + Are you sure you want to delete this backup schedule for{" "} + {schedule.volume.name}? This action cannot be undone. Existing snapshots + will not be deleted.
    @@ -279,8 +290,8 @@ export const ScheduleSummary = (props: Props) => { Run retention policy cleanup? - This will apply the retention policy and permanently delete old snapshots according to the configured - rules ({summary.retentionLabel}). This action cannot be undone. + This will apply the retention policy and permanently delete old snapshots according to the + configured rules ({summary.retentionLabel}). This action cannot be undone.
    diff --git a/app/client/modules/backups/components/snapshot-timeline.tsx b/app/client/modules/backups/components/snapshot-timeline.tsx index 5b74b37d6..3d1b45857 100644 --- a/app/client/modules/backups/components/snapshot-timeline.tsx +++ b/app/client/modules/backups/components/snapshot-timeline.tsx @@ -131,12 +131,17 @@ export const SnapshotTimeline = (props: Props) => { }, )} > -
    {formatShortDate(date)}
    +
    + {formatShortDate(date)} +
    {formatTime(date)}
    - + ); })} diff --git a/app/client/modules/backups/routes/__tests__/backup-details.test.tsx b/app/client/modules/backups/routes/__tests__/backup-details.test.tsx index 66cc13271..8c32bb2e5 100644 --- a/app/client/modules/backups/routes/__tests__/backup-details.test.tsx +++ b/app/client/modules/backups/routes/__tests__/backup-details.test.tsx @@ -1,5 +1,5 @@ import type { ReactNode } from "react"; -import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import { fromAny } from "@total-typescript/shoehorn"; import { HttpResponse, http, server } from "~/test/msw/server"; import { cleanup, render, screen } from "~/test/test-utils"; diff --git a/app/client/modules/backups/routes/__tests__/edit-backup.test.tsx b/app/client/modules/backups/routes/__tests__/edit-backup.test.tsx index 10c26101e..fb74d7ea8 100644 --- a/app/client/modules/backups/routes/__tests__/edit-backup.test.tsx +++ b/app/client/modules/backups/routes/__tests__/edit-backup.test.tsx @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import { HttpResponse, http, server } from "~/test/msw/server"; import { cleanup, fireEvent, render, screen, userEvent } from "~/test/test-utils"; diff --git a/app/client/modules/notifications/components/notification-forms/custom-form.tsx b/app/client/modules/notifications/components/notification-forms/custom-form.tsx index 051462a6a..e08ebb655 100644 --- a/app/client/modules/notifications/components/notification-forms/custom-form.tsx +++ b/app/client/modules/notifications/components/notification-forms/custom-form.tsx @@ -31,8 +31,8 @@ export const CustomForm = ({ form }: Props) => { > Shoutrrr documentation -  for supported services and URL formats. Custom HTTP, generic, and SMTP network targets must be listed - in WEBHOOK_ALLOWED_ORIGINS. +  for supported services and URL formats. Custom HTTP, generic, and SMTP network targets + must be listed in WEBHOOK_ALLOWED_ORIGINS. diff --git a/app/client/modules/notifications/components/notification-forms/pushover-form.tsx b/app/client/modules/notifications/components/notification-forms/pushover-form.tsx index e49dd2e61..da1d01cd6 100644 --- a/app/client/modules/notifications/components/notification-forms/pushover-form.tsx +++ b/app/client/modules/notifications/components/notification-forms/pushover-form.tsx @@ -49,7 +49,9 @@ export const PushoverForm = ({ form }: Props) => { - Comma-separated list of device names. Leave empty for all devices. + + Comma-separated list of device names. Leave empty for all devices. + )} diff --git a/app/client/modules/notifications/components/notification-forms/telegram-form.tsx b/app/client/modules/notifications/components/notification-forms/telegram-form.tsx index e7691bb24..0af14f6a3 100644 --- a/app/client/modules/notifications/components/notification-forms/telegram-form.tsx +++ b/app/client/modules/notifications/components/notification-forms/telegram-form.tsx @@ -20,7 +20,9 @@ export const TelegramForm = ({ form }: Props) => { - Telegram bot token. Get this from BotFather when you create your bot. + + Telegram bot token. Get this from BotFather when you create your bot. + )} diff --git a/app/client/modules/notifications/routes/edit-notification.tsx b/app/client/modules/notifications/routes/edit-notification.tsx index b607f5ebd..18c5bee9d 100644 --- a/app/client/modules/notifications/routes/edit-notification.tsx +++ b/app/client/modules/notifications/routes/edit-notification.tsx @@ -75,7 +75,11 @@ export function EditNotificationPage({ notificationId }: { notificationId: strin }} />
    -
    -

    Created {formatDateTime(data.createdAt)}

    +

    + Created {formatDateTime(data.createdAt)} +

    @@ -270,7 +348,9 @@ export function NotificationDetailsPage({ notificationId }: { notificationId: st - navigate({ to: `/notifications/${data.id}/edit` })}> + navigate({ to: `/notifications/${data.id}/edit` })} + > Edit @@ -310,7 +390,11 @@ export function NotificationDetailsPage({ notificationId }: { notificationId: st label="Status" value={getStatusLabel(data.enabled, data.status)} /> - } label="Enabled" value={data.enabled ? "Yes" : "No"} /> + } + label="Enabled" + value={data.enabled ? "Yes" : "No"} + /> } label="Last Checked" @@ -333,8 +417,8 @@ export function NotificationDetailsPage({ notificationId }: { notificationId: st Delete Notification Destination - Are you sure you want to delete the notification destination "{data.name}"? This action cannot be undone - and will remove this destination from all backup schedules. + Are you sure you want to delete the notification destination "{data.name}"? This action + cannot be undone and will remove this destination from all backup schedules. diff --git a/app/client/modules/notifications/routes/notifications.tsx b/app/client/modules/notifications/routes/notifications.tsx index 6a8e7d5f5..b9dd63b30 100644 --- a/app/client/modules/notifications/routes/notifications.tsx +++ b/app/client/modules/notifications/routes/notifications.tsx @@ -42,12 +42,16 @@ const getNotificationStatusVariant = (row: NotificationRow) => { const notificationColumns: ColumnDef[] = [ { accessorKey: "name", - header: ({ column }) => , + header: ({ column }) => ( + + ), cell: ({ row }) => row.original.name, }, { accessorKey: "type", - header: ({ column }) => , + header: ({ column }) => ( + + ), cell: ({ row }) => row.original.type, filterFn: (row, id, value) => row.getValue(id) === value, }, @@ -58,7 +62,10 @@ const notificationColumns: ColumnDef[] = [ ), cell: ({ row }) => ( - + ), filterFn: (row, id, value) => row.getValue(id) === value, }, @@ -176,7 +183,9 @@ export function NotificationsPage() { "text-center": header.column.id === "status", })} > - {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} + {header.isPlaceholder + ? null + : flexRender(header.column.columnDef.header, header.getContext())} ))} diff --git a/app/client/modules/repositories/components/compression-stats-chart.tsx b/app/client/modules/repositories/components/compression-stats-chart.tsx index c1ef74315..692c9c8c5 100644 --- a/app/client/modules/repositories/components/compression-stats-chart.tsx +++ b/app/client/modules/repositories/components/compression-stats-chart.tsx @@ -84,7 +84,9 @@ export function CompressionStatsChart({ repositoryShortId, initialStats }: Props
    -

    Loading compression statistics...

    +

    + Loading compression statistics... +

    Failed to load compression statistics

    {error?.message}

    @@ -96,8 +98,13 @@ export function CompressionStatsChart({ repositoryShortId, initialStats }: Props
    - of - data across {snapshotsCount} snapshots + {" "} + of data across{" "} + {snapshotsCount} snapshots
    diff --git a/app/client/modules/repositories/components/doctor-report.tsx b/app/client/modules/repositories/components/doctor-report.tsx index 1c2dde654..a691e2c49 100644 --- a/app/client/modules/repositories/components/doctor-report.tsx +++ b/app/client/modules/repositories/components/doctor-report.tsx @@ -39,7 +39,10 @@ export const DoctorReport = ({ result, repositoryStatus }: Props) => { {result && (
    {result.steps.map((step) => ( - + {step.step.replaceAll("_", " ")} {step.success ? ( @@ -52,12 +55,16 @@ export const DoctorReport = ({ result, repositoryStatus }: Props) => {
    {step.output && (
    -											{safeJsonParse(step.output) ? JSON.stringify(safeJsonParse(step.output), null, 2) : step.output}
    +											{safeJsonParse(step.output)
    +												? JSON.stringify(safeJsonParse(step.output), null, 2)
    +												: step.output}
     										
    )} {step.error && (
    -
    Error
    +
    + Error +
     												{step.error}
     											
    diff --git a/app/client/modules/repositories/components/repository-forms/r2-repository-form.tsx b/app/client/modules/repositories/components/repository-forms/r2-repository-form.tsx index 94d480a67..0aba159f3 100644 --- a/app/client/modules/repositories/components/repository-forms/r2-repository-form.tsx +++ b/app/client/modules/repositories/components/repository-forms/r2-repository-form.tsx @@ -57,7 +57,9 @@ export const R2RepositoryForm = ({ form }: Props) => { - R2 API token Access Key ID (create in Cloudflare R2 dashboard). + + R2 API token Access Key ID (create in Cloudflare R2 dashboard). + )} @@ -71,7 +73,9 @@ export const R2RepositoryForm = ({ form }: Props) => { - R2 API token Secret Access Key (shown once when creating token). + + R2 API token Secret Access Key (shown once when creating token). + )} diff --git a/app/client/modules/repositories/components/repository-forms/rest-repository-form.tsx b/app/client/modules/repositories/components/repository-forms/rest-repository-form.tsx index 401b099ca..f0f14a6ce 100644 --- a/app/client/modules/repositories/components/repository-forms/rest-repository-form.tsx +++ b/app/client/modules/repositories/components/repository-forms/rest-repository-form.tsx @@ -41,7 +41,9 @@ export const RestRepositoryForm = ({ form }: Props) => { - Path to the repository on the REST server (leave empty for root). + + Path to the repository on the REST server (leave empty for root). + )} diff --git a/app/client/modules/repositories/routes/edit-repository.tsx b/app/client/modules/repositories/routes/edit-repository.tsx index 5463b31a9..dafd7279c 100644 --- a/app/client/modules/repositories/routes/edit-repository.tsx +++ b/app/client/modules/repositories/routes/edit-repository.tsx @@ -166,8 +166,8 @@ export function EditRepositoryPage({ repositoryId }: { repositoryId: string }) { Repository location changed - Changing endpoint, bucket, host, or path fields may point to a different repository location. Before - saving, ensure the repository already exists at the new target. + Changing endpoint, bucket, host, or path fields may point to a different repository + location. Before saving, ensure the repository already exists at the new target. diff --git a/app/client/modules/repositories/routes/repositories.tsx b/app/client/modules/repositories/routes/repositories.tsx index 5a2b48793..87ab750a6 100644 --- a/app/client/modules/repositories/routes/repositories.tsx +++ b/app/client/modules/repositories/routes/repositories.tsx @@ -37,7 +37,9 @@ type RepositoryRow = { const repositoryColumns: ColumnDef[] = [ { accessorKey: "name", - header: ({ column }) => , + header: ({ column }) => ( + + ), cell: ({ row }) => (
    {row.original.name} @@ -78,7 +80,13 @@ const repositoryColumns: ColumnDef[] = [ ), cell: ({ row }) => ( ), @@ -193,7 +201,9 @@ export function RepositoriesPage() { "text-center": header.column.id === "status", })} > - {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} + {header.isPlaceholder + ? null + : flexRender(header.column.columnDef.header, header.getContext())} ))} diff --git a/app/client/modules/repositories/routes/repository-details.tsx b/app/client/modules/repositories/routes/repository-details.tsx index 07c7cf5cc..bdb5bdfe8 100644 --- a/app/client/modules/repositories/routes/repository-details.tsx +++ b/app/client/modules/repositories/routes/repository-details.tsx @@ -124,7 +124,8 @@ export default function RepositoryDetailsPage({ className={cn("w-2 h-2 rounded-full shrink-0", { "bg-success": repository.status === "healthy", "bg-red-500": repository.status === "error", - "bg-amber-500": repository.status !== "healthy" && repository.status !== "error", + "bg-amber-500": + repository.status !== "healthy" && repository.status !== "error", "animate-pulse": repository.status === "doctor", })} /> @@ -169,20 +170,25 @@ export default function RepositoryDetailsPage({ - navigate({ to: `/repositories/${repository.shortId}/edit` })}> + navigate({ to: `/repositories/${repository.shortId}/edit` })} + > Edit - toast.promise(unlockRepo.mutateAsync({ path: { shortId: repository.shortId } }), { - loading: "Unlocking repo", - success: "Repository unlocked successfully", - error: (e) => - toast.error("Failed to unlock repository", { - description: parseError(e)?.message, - }), - }) + toast.promise( + unlockRepo.mutateAsync({ path: { shortId: repository.shortId } }), + { + loading: "Unlocking repo", + success: "Repository unlocked successfully", + error: (e) => + toast.error("Failed to unlock repository", { + description: parseError(e)?.message, + }), + }, + ) } disabled={unlockRepo.isPending} > @@ -213,7 +219,10 @@ export default function RepositoryDetailsPage({ )} - navigate({ to: ".", search: () => ({ tab: value }) })}> + navigate({ to: ".", search: () => ({ tab: value }) })} + > Configuration Snapshots @@ -236,8 +245,9 @@ export default function RepositoryDetailsPage({ Delete repository? - Are you sure you want to delete the repository {repository.name}? This will not remove - the actual data from the backend storage, only the repository configuration will be deleted. + Are you sure you want to delete the repository {repository.name}? This will + not remove the actual data from the backend storage, only the repository configuration will + be deleted.

    All backup schedules associated with this repository will also be removed. diff --git a/app/client/modules/repositories/routes/snapshot-details.tsx b/app/client/modules/repositories/routes/snapshot-details.tsx index cb895d3d5..b36697e61 100644 --- a/app/client/modules/repositories/routes/snapshot-details.tsx +++ b/app/client/modules/repositories/routes/snapshot-details.tsx @@ -24,9 +24,15 @@ const SnapshotError = () => {

    Snapshot not found

    This snapshot does not exist in this repository

    -

    It may have been deleted manually outside of Zerobyte.

    +

    + It may have been deleted manually outside of Zerobyte. +

    - ({ tab: "snapshots" })} params={{ repositoryId }}> + ({ tab: "snapshots" })} + params={{ repositoryId }} + >
    @@ -159,7 +165,10 @@ export function SnapshotDetailsPage({ repositoryId, snapshotId, initialSnapshot Paths:
    {data.paths.slice(0, showAllPaths ? undefined : 20).map((path) => ( -

    +

    {path}

    ))} diff --git a/app/client/modules/repositories/tabs/info.tsx b/app/client/modules/repositories/tabs/info.tsx index 89c9b144e..11983135e 100644 --- a/app/client/modules/repositories/tabs/info.tsx +++ b/app/client/modules/repositories/tabs/info.tsx @@ -24,7 +24,13 @@ function ConfigRow({ icon, label, value, mono, valueClassName }: ConfigRowProps)
    {icon} {label} - + {value}
    @@ -78,7 +84,9 @@ export const RepositoryInfoTabContent = ({ repository, initialStats }: Props) => {hasLocalPath && (
    Local Path
    -

    {effectiveLocalPath}

    +

    + {effectiveLocalPath} +

    )} @@ -93,7 +101,12 @@ export const RepositoryInfoTabContent = ({ repository, initialStats }: Props) =>
    } label="Backend" value={repository.type} /> {hasLocalPath && ( - } label="Local Path" value={effectiveLocalPath!} mono /> + } + label="Local Path" + value={effectiveLocalPath!} + mono + /> )} } diff --git a/app/client/modules/settings/components/backup-codes-dialog.tsx b/app/client/modules/settings/components/backup-codes-dialog.tsx index f996e2d6f..ba0703a59 100644 --- a/app/client/modules/settings/components/backup-codes-dialog.tsx +++ b/app/client/modules/settings/components/backup-codes-dialog.tsx @@ -70,8 +70,8 @@ export const BackupCodesDialog = ({ open, onOpenChange }: BackupCodesDialogProps Backup Codes - Use these codes to access your account if you lose access to your authenticator app. Each code can only be - used once. + Use these codes to access your account if you lose access to your authenticator app. Each code + can only be used once.
    diff --git a/app/client/modules/settings/components/create-user-dialog.tsx b/app/client/modules/settings/components/create-user-dialog.tsx index 8c6699035..057f6086b 100644 --- a/app/client/modules/settings/components/create-user-dialog.tsx +++ b/app/client/modules/settings/components/create-user-dialog.tsx @@ -83,7 +83,10 @@ export function CreateUserDialog({ onUserCreated }: CreateUserDialogProps) {
    - createUserMutation.mutate(values))} className="space-y-6"> + createUserMutation.mutate(values))} + className="space-y-6" + > @@ -99,7 +102,11 @@ export function CreateUserDialog({ onUserCreated }: CreateUserDialogProps) { Full Name - + @@ -112,7 +119,11 @@ export function CreateUserDialog({ onUserCreated }: CreateUserDialogProps) { Username - + @@ -160,7 +171,11 @@ export function CreateUserDialog({ onUserCreated }: CreateUserDialogProps) { render={({ field }) => ( Role - diff --git a/app/client/modules/settings/components/org-members-section.tsx b/app/client/modules/settings/components/org-members-section.tsx index 8ae2112b8..95a2d04e2 100644 --- a/app/client/modules/settings/components/org-members-section.tsx +++ b/app/client/modules/settings/components/org-members-section.tsx @@ -147,8 +147,10 @@ export function OrgMembersSection({ initialMembers }: Props) { Remove member - Are you sure you want to remove {memberToRemove?.name} from this - organization? They will lose access to all organization resources. + Are you sure you want to remove{" "} + {memberToRemove?.name} from this + organization? They will lose access to all organization + resources. @@ -156,7 +158,11 @@ export function OrgMembersSection({ initialMembers }: Props) { removeMember.mutate({ path: { memberId: memberToRemove!.id } })} + onClick={() => + removeMember.mutate({ + path: { memberId: memberToRemove!.id }, + }) + } > Remove diff --git a/app/client/modules/settings/components/two-factor-disable-dialog.tsx b/app/client/modules/settings/components/two-factor-disable-dialog.tsx index c45d3539a..3ae1a7a67 100644 --- a/app/client/modules/settings/components/two-factor-disable-dialog.tsx +++ b/app/client/modules/settings/components/two-factor-disable-dialog.tsx @@ -67,7 +67,8 @@ export const TwoFactorDisableDialog = ({ open, onOpenChange, onSuccess }: TwoFac Disable Two-Factor Authentication - Are you sure you want to disable 2FA? Your account will be less secure. Enter your password to confirm. + Are you sure you want to disable 2FA? Your account will be less secure. Enter your password + to confirm.
    diff --git a/app/client/modules/settings/components/two-factor-section.tsx b/app/client/modules/settings/components/two-factor-section.tsx index d506b681a..b847540f9 100644 --- a/app/client/modules/settings/components/two-factor-section.tsx +++ b/app/client/modules/settings/components/two-factor-section.tsx @@ -40,8 +40,8 @@ export const TwoFactorSection = ({ twoFactorEnabled }: TwoFactorSectionProps) => )}

    - Two-factor authentication adds an extra layer of security by requiring a code from your authenticator app - in addition to your password. + Two-factor authentication adds an extra layer of security by requiring a code from your + authenticator app in addition to your password.

    @@ -63,7 +63,11 @@ export const TwoFactorSection = ({ twoFactorEnabled }: TwoFactorSectionProps) => - + diff --git a/app/client/modules/settings/components/user-management.tsx b/app/client/modules/settings/components/user-management.tsx index fa8c1efcd..7e023a5b8 100644 --- a/app/client/modules/settings/components/user-management.tsx +++ b/app/client/modules/settings/components/user-management.tsx @@ -55,7 +55,9 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | const toggleBanUserMutation = useMutation({ mutationFn: async ({ userId, ban }: { userId: string; ban: boolean }) => { - const { error } = ban ? await authClient.admin.banUser({ userId }) : await authClient.admin.unbanUser({ userId }); + const { error } = ban + ? await authClient.admin.banUser({ userId }) + : await authClient.admin.unbanUser({ userId }); if (error) throw error; }, onSuccess: () => { @@ -156,10 +158,16 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | {user.role} - + Banned - + Active @@ -170,7 +178,9 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | size="icon" title="Demote to User" className={cn({ hidden: user.role !== "admin" || isCurrentUser })} - onClick={() => setRoleMutation.mutate({ userId: user.id, role: "user" })} + onClick={() => + setRoleMutation.mutate({ userId: user.id, role: "user" }) + } > @@ -179,7 +189,9 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | size="icon" title="Promote to Admin" className={cn({ hidden: user.role === "admin" || isCurrentUser })} - onClick={() => setRoleMutation.mutate({ userId: user.id, role: "admin" })} + onClick={() => + setRoleMutation.mutate({ userId: user.id, role: "admin" }) + } > @@ -189,7 +201,9 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | size="icon" title="Unban user" className={cn({ hidden: !isBanned || isCurrentUser })} - onClick={() => setUserToBan({ id: user.id, name: displayName, isBanned: true })} + onClick={() => + setUserToBan({ id: user.id, name: displayName, isBanned: true }) + } > @@ -198,7 +212,9 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | size="icon" title="Ban user" className={cn({ hidden: isBanned || isCurrentUser })} - onClick={() => setUserToBan({ id: user.id, name: displayName, isBanned: false })} + onClick={() => + setUserToBan({ id: user.id, name: displayName, isBanned: false }) + } > @@ -241,8 +257,8 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | Are you absolutely sure? - This action cannot be undone. This will permanently delete the user account and remove their data from our - servers. + This action cannot be undone. This will permanently delete the user account and remove their + data from our servers. @@ -252,7 +268,8 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } |

    Important: Data Deletion

    - The following personal organizations and all their associated resources will be permanently deleted: + The following personal organizations and all their associated resources will be + permanently deleted:

    @@ -323,11 +340,16 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } |
    - !open && setUserToManageAccounts(undefined)}> + !open && setUserToManageAccounts(undefined)} + > Manage Accounts - Linked authentication accounts for {userToManageAccounts?.name}. + + Linked authentication accounts for {userToManageAccounts?.name}. +
    @@ -347,7 +369,9 @@ export function UserManagement({ currentUser }: { currentUser: { id: string } | title="Remove account" disabled={deleteAccount.isPending} onClick={() => - deleteAccount.mutate({ path: { userId: userToManageAccounts.id, accountId: account.id } }) + deleteAccount.mutate({ + path: { userId: userToManageAccounts.id, accountId: account.id }, + }) } > diff --git a/app/client/modules/sso/components/sso-settings-section.tsx b/app/client/modules/sso/components/sso-settings-section.tsx index ca4242476..1f3681efa 100644 --- a/app/client/modules/sso/components/sso-settings-section.tsx +++ b/app/client/modules/sso/components/sso-settings-section.tsx @@ -139,7 +139,9 @@ export function SsoSettingsSection({ initialSettings, initialOrigin }: Props) {

    Registered providers

    -

    Manage identity providers used for organization sign-in.

    +

    + Manage identity providers used for organization sign-in. +

    -

    Created {formatDateTime(volume.createdAt)}

    +

    + Created {formatDateTime(volume.createdAt)} +

    @@ -177,7 +179,9 @@ export function VolumeDetails({ volumeId }: { volumeId: string }) { - navigate({ to: `/volumes/${volume.shortId}/edit` })}> + navigate({ to: `/volumes/${volume.shortId}/edit` })} + > Edit @@ -207,7 +211,9 @@ export function VolumeDetails({ volumeId }: { volumeId: string }) { Healthy @@ -216,7 +222,9 @@ export function VolumeDetails({ volumeId }: { volumeId: string }) {
    - Checked {formatTimeAgo(volume.lastHealthCheck)} + + Checked {formatTimeAgo(volume.lastHealthCheck)} +
    Auto-remount @@ -253,7 +261,10 @@ export function VolumeDetails({ volumeId }: { volumeId: string }) {
    - navigate({ to: ".", search: () => ({ tab: value }) })}> + navigate({ to: ".", search: () => ({ tab: value }) })} + > Configuration Files @@ -272,7 +283,8 @@ export function VolumeDetails({ volumeId }: { volumeId: string }) { Delete volume? - Are you sure you want to delete the volume {volume.name}? This action cannot be undone. + Are you sure you want to delete the volume {volume.name}? This action + cannot be undone.

    All backup schedules associated with this volume will also be removed. diff --git a/app/client/modules/volumes/routes/volumes.tsx b/app/client/modules/volumes/routes/volumes.tsx index 8a0c3e06c..4d24e6779 100644 --- a/app/client/modules/volumes/routes/volumes.tsx +++ b/app/client/modules/volumes/routes/volumes.tsx @@ -45,7 +45,9 @@ type VolumeRow = { const volumeColumns: ColumnDef[] = [ { accessorKey: "name", - header: ({ column }) => , + header: ({ column }) => ( + + ), cell: ({ row }) => (
    {row.original.name} @@ -65,7 +67,9 @@ const volumeColumns: ColumnDef[] = [ header: ({ column }) => ( ), - cell: ({ row }) => , + cell: ({ row }) => ( + + ), filterFn: (row, id, value) => row.getValue(id) === value, }, ]; @@ -175,7 +179,9 @@ export function VolumesPage() { "text-center": header.column.id === "status", })} > - {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} + {header.isPlaceholder + ? null + : flexRender(header.column.columnDef.header, header.getContext())} ))} diff --git a/app/drizzle/20250821084058_known_madelyne_pryor/snapshot.json b/app/drizzle/20250821084058_known_madelyne_pryor/snapshot.json index 1465675ef..642f4a149 100644 --- a/app/drizzle/20250821084058_known_madelyne_pryor/snapshot.json +++ b/app/drizzle/20250821084058_known_madelyne_pryor/snapshot.json @@ -1,68 +1,64 @@ { - "dialect": "sqlite", - "id": "f4a793d2-279b-4688-bbe3-2b69673fa7fa", - "prevIds": [ - "00000000-0000-0000-0000-000000000000" - ], - "version": "7", - "ddl": [ - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "f4a793d2-279b-4688-bbe3-2b69673fa7fa", + "prevIds": ["00000000-0000-0000-0000-000000000000"], + "version": "7", + "ddl": [ + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20250821112357_far_frank_castle/snapshot.json b/app/drizzle/20250821112357_far_frank_castle/snapshot.json index 340b68f07..b1cf0df26 100644 --- a/app/drizzle/20250821112357_far_frank_castle/snapshot.json +++ b/app/drizzle/20250821112357_far_frank_castle/snapshot.json @@ -1,108 +1,104 @@ { - "dialect": "sqlite", - "id": "004e25a0-ecda-4b1a-aeab-46c8f78d5275", - "prevIds": [ - "f4a793d2-279b-4688-bbe3-2b69673fa7fa" - ], - "version": "7", - "ddl": [ - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "path", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(current_timestamp)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(current_timestamp)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "004e25a0-ecda-4b1a-aeab-46c8f78d5275", + "prevIds": ["f4a793d2-279b-4688-bbe3-2b69673fa7fa"], + "version": "7", + "ddl": [ + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "path", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(current_timestamp)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(current_timestamp)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20250903201554_cheerful_randall/snapshot.json b/app/drizzle/20250903201554_cheerful_randall/snapshot.json index 290d358ff..bbcecf0cd 100644 --- a/app/drizzle/20250903201554_cheerful_randall/snapshot.json +++ b/app/drizzle/20250903201554_cheerful_randall/snapshot.json @@ -1,138 +1,134 @@ { - "dialect": "sqlite", - "id": "00a82d1d-4745-4487-83e4-42bb7aaa3e95", - "prevIds": [ - "004e25a0-ecda-4b1a-aeab-46c8f78d5275" - ], - "version": "7", - "ddl": [ - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "path", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "00a82d1d-4745-4487-83e4-42bb7aaa3e95", + "prevIds": ["004e25a0-ecda-4b1a-aeab-46c8f78d5275"], + "version": "7", + "ddl": [ + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "path", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20250923185007_mature_hellcat/snapshot.json b/app/drizzle/20250923185007_mature_hellcat/snapshot.json index 4102de7b9..6d35a48bc 100644 --- a/app/drizzle/20250923185007_mature_hellcat/snapshot.json +++ b/app/drizzle/20250923185007_mature_hellcat/snapshot.json @@ -1,148 +1,144 @@ { - "dialect": "sqlite", - "id": "b7f1ccb8-7bb3-486f-a103-b95b331a121f", - "prevIds": [ - "00a82d1d-4745-4487-83e4-42bb7aaa3e95" - ], - "version": "7", - "ddl": [ - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "path", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "b7f1ccb8-7bb3-486f-a103-b95b331a121f", + "prevIds": ["00a82d1d-4745-4487-83e4-42bb7aaa3e95"], + "version": "7", + "ddl": [ + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "path", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20250927082535_wealthy_tomas/snapshot.json b/app/drizzle/20250927082535_wealthy_tomas/snapshot.json index e859708d1..873a05e9a 100644 --- a/app/drizzle/20250927082535_wealthy_tomas/snapshot.json +++ b/app/drizzle/20250927082535_wealthy_tomas/snapshot.json @@ -1,148 +1,144 @@ { - "dialect": "sqlite", - "id": "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3", - "prevIds": [ - "b7f1ccb8-7bb3-486f-a103-b95b331a121f" - ], - "version": "7", - "ddl": [ - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "path", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3", + "prevIds": ["b7f1ccb8-7bb3-486f-a103-b95b331a121f"], + "version": "7", + "ddl": [ + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "path", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251002145138_simple_alice/snapshot.json b/app/drizzle/20251002145138_simple_alice/snapshot.json index 31093aa1d..6dfc25533 100644 --- a/app/drizzle/20251002145138_simple_alice/snapshot.json +++ b/app/drizzle/20251002145138_simple_alice/snapshot.json @@ -1,293 +1,281 @@ { - "dialect": "sqlite", - "id": "75f0aac0-aa63-4577-bfb6-4638a008935f", - "prevIds": [ - "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3" - ], - "version": "7", - "ddl": [ - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "path", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "75f0aac0-aa63-4577-bfb6-4638a008935f", + "prevIds": ["0b087a68-fbc6-4647-a6dc-e6322a3d4ee3"], + "version": "7", + "ddl": [ + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "path", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251017205257_secret_micromacro/snapshot.json b/app/drizzle/20251017205257_secret_micromacro/snapshot.json index c36eca861..4d5c49de3 100644 --- a/app/drizzle/20251017205257_secret_micromacro/snapshot.json +++ b/app/drizzle/20251017205257_secret_micromacro/snapshot.json @@ -1,410 +1,396 @@ { - "dialect": "sqlite", - "id": "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca", - "prevIds": [ - "75f0aac0-aa63-4577-bfb6-4638a008935f" - ], - "version": "7", - "ddl": [ - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backend", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca", + "prevIds": ["75f0aac0-aa63-4577-bfb6-4638a008935f"], + "version": "7", + "ddl": [ + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backend", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251023130831_watery_sersi/snapshot.json b/app/drizzle/20251023130831_watery_sersi/snapshot.json index 12dc8180c..3c610e977 100644 --- a/app/drizzle/20251023130831_watery_sersi/snapshot.json +++ b/app/drizzle/20251023130831_watery_sersi/snapshot.json @@ -1,412 +1,396 @@ { - "dialect": "sqlite", - "id": "866b1d3b-454b-4cf7-9835-a0f60d048b6e", - "prevIds": [ - "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca" - ], - "version": "7", - "ddl": [ - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [ - "\"repositories_table\".\"backend\"->\"repositories_table\".\"type\"" - ] -} \ No newline at end of file + "dialect": "sqlite", + "id": "866b1d3b-454b-4cf7-9835-a0f60d048b6e", + "prevIds": ["16f360b6-fb61-44f3-a7f7-2bae78ebf7ca"], + "version": "7", + "ddl": [ + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": ["\"repositories_table\".\"backend\"->\"repositories_table\".\"type\""] +} diff --git a/app/drizzle/20251025174054_silent_lady_bullseye/snapshot.json b/app/drizzle/20251025174054_silent_lady_bullseye/snapshot.json index 96ca871b3..4b2365252 100644 --- a/app/drizzle/20251025174054_silent_lady_bullseye/snapshot.json +++ b/app/drizzle/20251025174054_silent_lady_bullseye/snapshot.json @@ -1,607 +1,583 @@ { - "dialect": "sqlite", - "id": "6e35f329-5431-47fd-8862-8fb06b0afe4b", - "prevIds": [ - "866b1d3b-454b-4cf7-9835-a0f60d048b6e" - ], - "version": "7", - "ddl": [ - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "volume_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_volume_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "6e35f329-5431-47fd-8862-8fb06b0afe4b", + "prevIds": ["866b1d3b-454b-4cf7-9835-a0f60d048b6e"], + "version": "7", + "ddl": [ + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "volume_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_volume_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251102145346_little_adam_warlock/snapshot.json b/app/drizzle/20251102145346_little_adam_warlock/snapshot.json index 6849dafac..9b2a3cdfb 100644 --- a/app/drizzle/20251102145346_little_adam_warlock/snapshot.json +++ b/app/drizzle/20251102145346_little_adam_warlock/snapshot.json @@ -1,593 +1,569 @@ { - "dialect": "sqlite", - "id": "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d", - "prevIds": [ - "6e35f329-5431-47fd-8862-8fb06b0afe4b" - ], - "version": "7", - "ddl": [ - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d", + "prevIds": ["6e35f329-5431-47fd-8862-8fb06b0afe4b"], + "version": "7", + "ddl": [ + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251108135425_perfect_proemial_gods/snapshot.json b/app/drizzle/20251108135425_perfect_proemial_gods/snapshot.json index 04c6cf5cd..75291e4f2 100644 --- a/app/drizzle/20251108135425_perfect_proemial_gods/snapshot.json +++ b/app/drizzle/20251108135425_perfect_proemial_gods/snapshot.json @@ -1,603 +1,579 @@ { - "dialect": "sqlite", - "id": "17f234ba-4123-4951-a39f-6002d537435f", - "prevIds": [ - "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d" - ], - "version": "7", - "ddl": [ - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "17f234ba-4123-4951-a39f-6002d537435f", + "prevIds": ["6a326ac0-cb3a-4c63-8800-bc86d18e0c1d"], + "version": "7", + "ddl": [ + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251120130723_familiar_stone_men/snapshot.json b/app/drizzle/20251120130723_familiar_stone_men/snapshot.json index 7a4db81f8..41cb8c26b 100644 --- a/app/drizzle/20251120130723_familiar_stone_men/snapshot.json +++ b/app/drizzle/20251120130723_familiar_stone_men/snapshot.json @@ -1,804 +1,767 @@ { - "dialect": "sqlite", - "id": "67552135-fa49-478f-9333-107d3dbd7610", - "prevIds": [ - "17f234ba-4123-4951-a39f-6002d537435f" - ], - "version": "7", - "ddl": [ - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "67552135-fa49-478f-9333-107d3dbd7610", + "prevIds": ["17f234ba-4123-4951-a39f-6002d537435f"], + "version": "7", + "ddl": [ + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251125195602_add_short_ids/snapshot.json b/app/drizzle/20251125195602_add_short_ids/snapshot.json index 980346f75..368dc6fe7 100644 --- a/app/drizzle/20251125195602_add_short_ids/snapshot.json +++ b/app/drizzle/20251125195602_add_short_ids/snapshot.json @@ -1,852 +1,815 @@ { - "dialect": "sqlite", - "id": "bbca8451-3894-4556-9824-c309b5105628", - "prevIds": [ - "67552135-fa49-478f-9333-107d3dbd7610" - ], - "version": "7", - "ddl": [ - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "bbca8451-3894-4556-9824-c309b5105628", + "prevIds": ["67552135-fa49-478f-9333-107d3dbd7610"], + "version": "7", + "ddl": [ + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251126183559_elite_sprite/snapshot.json b/app/drizzle/20251126183559_elite_sprite/snapshot.json index 5c7db9b68..a71416e7c 100644 --- a/app/drizzle/20251126183559_elite_sprite/snapshot.json +++ b/app/drizzle/20251126183559_elite_sprite/snapshot.json @@ -1,905 +1,866 @@ { - "dialect": "sqlite", - "id": "794bddf6-1978-46e4-88d5-051d76cfa2f6", - "prevIds": [ - "bbca8451-3894-4556-9824-c309b5105628" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "794bddf6-1978-46e4-88d5-051d76cfa2f6", + "prevIds": ["bbca8451-3894-4556-9824-c309b5105628"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251126184005_wild_echo/snapshot.json b/app/drizzle/20251126184005_wild_echo/snapshot.json index a9801f70a..43d21d481 100644 --- a/app/drizzle/20251126184005_wild_echo/snapshot.json +++ b/app/drizzle/20251126184005_wild_echo/snapshot.json @@ -1,905 +1,866 @@ { - "dialect": "sqlite", - "id": "05309ea5-8ef2-4d63-b3d2-9842b2b4111b", - "prevIds": [ - "794bddf6-1978-46e4-88d5-051d76cfa2f6" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "05309ea5-8ef2-4d63-b3d2-9842b2b4111b", + "prevIds": ["794bddf6-1978-46e4-88d5-051d76cfa2f6"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251126184105_jazzy_sersi/snapshot.json b/app/drizzle/20251126184105_jazzy_sersi/snapshot.json index 403ec57ae..1117a44d6 100644 --- a/app/drizzle/20251126184105_jazzy_sersi/snapshot.json +++ b/app/drizzle/20251126184105_jazzy_sersi/snapshot.json @@ -1,905 +1,866 @@ { - "dialect": "sqlite", - "id": "e52fe10a-3f36-4b21-abef-c15990d28363", - "prevIds": [ - "05309ea5-8ef2-4d63-b3d2-9842b2b4111b" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "e52fe10a-3f36-4b21-abef-c15990d28363", + "prevIds": ["05309ea5-8ef2-4d63-b3d2-9842b2b4111b"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251126220457_fix-timestamps-to-ms/snapshot.json b/app/drizzle/20251126220457_fix-timestamps-to-ms/snapshot.json index 7398a3845..0c71f05b0 100644 --- a/app/drizzle/20251126220457_fix-timestamps-to-ms/snapshot.json +++ b/app/drizzle/20251126220457_fix-timestamps-to-ms/snapshot.json @@ -1,905 +1,866 @@ { - "dialect": "sqlite", - "id": "e50ff0fb-4111-4d20-b550-9407ee397517", - "prevIds": [ - "e52fe10a-3f36-4b21-abef-c15990d28363" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "e50ff0fb-4111-4d20-b550-9407ee397517", + "prevIds": ["e52fe10a-3f36-4b21-abef-c15990d28363"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251128192457_fix-compression-modes/snapshot.json b/app/drizzle/20251128192457_fix-compression-modes/snapshot.json index e8e39ab8a..1e13d2e8a 100644 --- a/app/drizzle/20251128192457_fix-compression-modes/snapshot.json +++ b/app/drizzle/20251128192457_fix-compression-modes/snapshot.json @@ -1,905 +1,866 @@ { - "dialect": "sqlite", - "id": "d0bfd316-b8f5-459b-ab17-0ce679479321", - "prevIds": [ - "e50ff0fb-4111-4d20-b550-9407ee397517" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "d0bfd316-b8f5-459b-ab17-0ce679479321", + "prevIds": ["e50ff0fb-4111-4d20-b550-9407ee397517"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch())", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251203203931_breezy_invaders/snapshot.json b/app/drizzle/20251203203931_breezy_invaders/snapshot.json index b21f15224..6f4a6cc18 100644 --- a/app/drizzle/20251203203931_breezy_invaders/snapshot.json +++ b/app/drizzle/20251203203931_breezy_invaders/snapshot.json @@ -1,1046 +1,997 @@ { - "dialect": "sqlite", - "id": "d5a60aea-4490-423e-8725-6ace87a76c9b", - "prevIds": [ - "d0bfd316-b8f5-459b-ab17-0ce679479321" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "d5a60aea-4490-423e-8725-6ace87a76c9b", + "prevIds": ["d0bfd316-b8f5-459b-ab17-0ce679479321"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251204091837_secret_nomad/snapshot.json b/app/drizzle/20251204091837_secret_nomad/snapshot.json index ec58bae26..35465192c 100644 --- a/app/drizzle/20251204091837_secret_nomad/snapshot.json +++ b/app/drizzle/20251204091837_secret_nomad/snapshot.json @@ -1,1070 +1,1021 @@ { - "dialect": "sqlite", - "id": "b5b3acff-51d7-45ae-b9d2-4b07a6286fc3", - "prevIds": [ - "d5a60aea-4490-423e-8725-6ace87a76c9b" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "b5b3acff-51d7-45ae-b9d2-4b07a6286fc3", + "prevIds": ["d5a60aea-4490-423e-8725-6ace87a76c9b"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251204113158_even_dexter_bennett/snapshot.json b/app/drizzle/20251204113158_even_dexter_bennett/snapshot.json index 672801488..b7c64f264 100644 --- a/app/drizzle/20251204113158_even_dexter_bennett/snapshot.json +++ b/app/drizzle/20251204113158_even_dexter_bennett/snapshot.json @@ -1,1080 +1,1031 @@ { - "dialect": "sqlite", - "id": "729d3ce9-b4b9-41f6-a270-d74c96510238", - "prevIds": [ - "b5b3acff-51d7-45ae-b9d2-4b07a6286fc3" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "729d3ce9-b4b9-41f6-a270-d74c96510238", + "prevIds": ["b5b3acff-51d7-45ae-b9d2-4b07a6286fc3"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251209191801_steady_viper/snapshot.json b/app/drizzle/20251209191801_steady_viper/snapshot.json index 9d33f5507..2cb595b68 100644 --- a/app/drizzle/20251209191801_steady_viper/snapshot.json +++ b/app/drizzle/20251209191801_steady_viper/snapshot.json @@ -1,1090 +1,1041 @@ { - "dialect": "sqlite", - "id": "e7c02f6c-e255-402e-9f18-d50a3fef8e4d", - "prevIds": [ - "729d3ce9-b4b9-41f6-a270-d74c96510238" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "e7c02f6c-e255-402e-9f18-d50a3fef8e4d", + "prevIds": ["729d3ce9-b4b9-41f6-a270-d74c96510238"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251215102912_woozy_shen/snapshot.json b/app/drizzle/20251215102912_woozy_shen/snapshot.json index 41d35cbf0..f1e869d7b 100644 --- a/app/drizzle/20251215102912_woozy_shen/snapshot.json +++ b/app/drizzle/20251215102912_woozy_shen/snapshot.json @@ -1,1100 +1,1051 @@ { - "dialect": "sqlite", - "id": "11c24867-3186-4578-b8dd-cee4c48a28d1", - "prevIds": [ - "e7c02f6c-e255-402e-9f18-d50a3fef8e4d" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "11c24867-3186-4578-b8dd-cee4c48a28d1", + "prevIds": ["e7c02f6c-e255-402e-9f18-d50a3fef8e4d"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251221123610_special_thor/snapshot.json b/app/drizzle/20251221123610_special_thor/snapshot.json index c6c71b78b..42d97d549 100644 --- a/app/drizzle/20251221123610_special_thor/snapshot.json +++ b/app/drizzle/20251221123610_special_thor/snapshot.json @@ -1,1110 +1,1061 @@ { - "dialect": "sqlite", - "id": "3e3841ca-67a8-493a-a061-9c2a780878ed", - "prevIds": [ - "11c24867-3186-4578-b8dd-cee4c48a28d1" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "3e3841ca-67a8-493a-a061-9c2a780878ed", + "prevIds": ["11c24867-3186-4578-b8dd-cee4c48a28d1"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251221135824_schedules-one-fs/snapshot.json b/app/drizzle/20251221135824_schedules-one-fs/snapshot.json index 7958c5560..7c98501ce 100644 --- a/app/drizzle/20251221135824_schedules-one-fs/snapshot.json +++ b/app/drizzle/20251221135824_schedules-one-fs/snapshot.json @@ -1,1110 +1,1061 @@ { - "dialect": "sqlite", - "id": "f19cb32f-2280-42dd-a86a-aba7c0409d9f", - "prevIds": [ - "3e3841ca-67a8-493a-a061-9c2a780878ed" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_name_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "f19cb32f-2280-42dd-a86a-aba7c0409d9f", + "prevIds": ["3e3841ca-67a8-493a-a061-9c2a780878ed"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_name_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251222191701_remarkable_pete_wisdom/snapshot.json b/app/drizzle/20251222191701_remarkable_pete_wisdom/snapshot.json index c61ac1a6f..b945eb3aa 100644 --- a/app/drizzle/20251222191701_remarkable_pete_wisdom/snapshot.json +++ b/app/drizzle/20251222191701_remarkable_pete_wisdom/snapshot.json @@ -1,1096 +1,1047 @@ { - "dialect": "sqlite", - "id": "ca46a423-51ca-45ae-9470-f82172a67bd3", - "prevIds": [ - "f19cb32f-2280-42dd-a86a-aba7c0409d9f" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "ca46a423-51ca-45ae-9470-f82172a67bd3", + "prevIds": ["f19cb32f-2280-42dd-a86a-aba7c0409d9f"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251226160333_migrate-local-repo-paths/snapshot.json b/app/drizzle/20251226160333_migrate-local-repo-paths/snapshot.json index 9318dbbfa..7d9adea56 100644 --- a/app/drizzle/20251226160333_migrate-local-repo-paths/snapshot.json +++ b/app/drizzle/20251226160333_migrate-local-repo-paths/snapshot.json @@ -1,1096 +1,1047 @@ { - "dialect": "sqlite", - "id": "19421265-4e3a-46b8-9ca1-a01d1e293dbc", - "prevIds": [ - "ca46a423-51ca-45ae-9470-f82172a67bd3" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "19421265-4e3a-46b8-9ca1-a01d1e293dbc", + "prevIds": ["ca46a423-51ca-45ae-9470-f82172a67bd3"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251226194113_careful_cammi/snapshot.json b/app/drizzle/20251226194113_careful_cammi/snapshot.json index f54891461..cdf8644c1 100644 --- a/app/drizzle/20251226194113_careful_cammi/snapshot.json +++ b/app/drizzle/20251226194113_careful_cammi/snapshot.json @@ -1,1120 +1,1071 @@ { - "dialect": "sqlite", - "id": "94ebc8c3-f11f-48cb-9814-d8d550422d26", - "prevIds": [ - "19421265-4e3a-46b8-9ca1-a01d1e293dbc" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "94ebc8c3-f11f-48cb-9814-d8d550422d26", + "prevIds": ["19421265-4e3a-46b8-9ca1-a01d1e293dbc"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20251226194242_third_amazoness/snapshot.json b/app/drizzle/20251226194242_third_amazoness/snapshot.json index 2cb33470c..374000ceb 100644 --- a/app/drizzle/20251226194242_third_amazoness/snapshot.json +++ b/app/drizzle/20251226194242_third_amazoness/snapshot.json @@ -1,1120 +1,1071 @@ { - "dialect": "sqlite", - "id": "2837bed4-34fb-4d16-b331-7b6d483979bc", - "prevIds": [ - "94ebc8c3-f11f-48cb-9814-d8d550422d26" - ], - "version": "7", - "ddl": [ - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "2837bed4-34fb-4d16-b331-7b6d483979bc", + "prevIds": ["94ebc8c3-f11f-48cb-9814-d8d550422d26"], + "version": "7", + "ddl": [ + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260107210443_boring_luke_cage/snapshot.json b/app/drizzle/20260107210443_boring_luke_cage/snapshot.json index cb6becbeb..71a5b75bf 100644 --- a/app/drizzle/20260107210443_boring_luke_cage/snapshot.json +++ b/app/drizzle/20260107210443_boring_luke_cage/snapshot.json @@ -1,1497 +1,1440 @@ { - "dialect": "sqlite", - "id": "2962ba85-b9d5-457b-b4cb-46b49ba13006", - "prevIds": [ - "2837bed4-34fb-4d16-b331-7b6d483979bc" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "2962ba85-b9d5-457b-b4cb-46b49ba13006", + "prevIds": ["2837bed4-34fb-4d16-b331-7b6d483979bc"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260107212448_lower-trim-username/snapshot.json b/app/drizzle/20260107212448_lower-trim-username/snapshot.json index df192c881..60f6ccbb4 100644 --- a/app/drizzle/20260107212448_lower-trim-username/snapshot.json +++ b/app/drizzle/20260107212448_lower-trim-username/snapshot.json @@ -1,1497 +1,1440 @@ { - "dialect": "sqlite", - "id": "37737391-3263-4d25-b4d3-417d7f981eb1", - "prevIds": [ - "2962ba85-b9d5-457b-b4cb-46b49ba13006" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "37737391-3263-4d25-b4d3-417d7f981eb1", + "prevIds": ["2962ba85-b9d5-457b-b4cb-46b49ba13006"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260108091911_graceful_squadron_supreme/snapshot.json b/app/drizzle/20260108091911_graceful_squadron_supreme/snapshot.json index a0f564d29..e5777162c 100644 --- a/app/drizzle/20260108091911_graceful_squadron_supreme/snapshot.json +++ b/app/drizzle/20260108091911_graceful_squadron_supreme/snapshot.json @@ -1,1617 +1,1554 @@ { - "dialect": "sqlite", - "id": "ae0e3a39-ef4d-4d39-bb97-d67d49193bc7", - "prevIds": [ - "37737391-3263-4d25-b4d3-417d7f981eb1" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "ae0e3a39-ef4d-4d39-bb97-d67d49193bc7", + "prevIds": ["37737391-3263-4d25-b4d3-417d7f981eb1"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260111130555_lowercase-email/snapshot.json b/app/drizzle/20260111130555_lowercase-email/snapshot.json index 56afbdcc2..d64ae6862 100644 --- a/app/drizzle/20260111130555_lowercase-email/snapshot.json +++ b/app/drizzle/20260111130555_lowercase-email/snapshot.json @@ -1,1617 +1,1554 @@ { - "dialect": "sqlite", - "id": "ad86ee2a-231e-45d1-9910-e4b7cac6a8af", - "prevIds": [ - "ae0e3a39-ef4d-4d39-bb97-d67d49193bc7" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "ad86ee2a-231e-45d1-9910-e4b7cac6a8af", + "prevIds": ["ae0e3a39-ef4d-4d39-bb97-d67d49193bc7"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260115172247_chunky_tyrannus/snapshot.json b/app/drizzle/20260115172247_chunky_tyrannus/snapshot.json index 55c7beddb..e398c298a 100644 --- a/app/drizzle/20260115172247_chunky_tyrannus/snapshot.json +++ b/app/drizzle/20260115172247_chunky_tyrannus/snapshot.json @@ -1,1677 +1,1614 @@ { - "dialect": "sqlite", - "id": "73952303-c589-4b3b-93f1-b70478329dbf", - "prevIds": [ - "ad86ee2a-231e-45d1-9910-e4b7cac6a8af" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "73952303-c589-4b3b-93f1-b70478329dbf", + "prevIds": ["ad86ee2a-231e-45d1-9910-e4b7cac6a8af"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117123552_slippery_mongu/snapshot.json b/app/drizzle/20260117123552_slippery_mongu/snapshot.json index d5bc40170..4877d6235 100644 --- a/app/drizzle/20260117123552_slippery_mongu/snapshot.json +++ b/app/drizzle/20260117123552_slippery_mongu/snapshot.json @@ -1,2110 +1,2025 @@ { - "dialect": "sqlite", - "id": "c68f3a1e-cf2c-45a2-8538-df9790e43bd6", - "prevIds": [ - "73952303-c589-4b3b-93f1-b70478329dbf" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "c68f3a1e-cf2c-45a2-8538-df9790e43bd6", + "prevIds": ["73952303-c589-4b3b-93f1-b70478329dbf"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117123722_default-admin-role/snapshot.json b/app/drizzle/20260117123722_default-admin-role/snapshot.json index 7edfd636b..1faf1f986 100644 --- a/app/drizzle/20260117123722_default-admin-role/snapshot.json +++ b/app/drizzle/20260117123722_default-admin-role/snapshot.json @@ -1,2110 +1,2025 @@ { - "dialect": "sqlite", - "id": "f96803f2-a3c4-4397-a79d-b46dfc6e7c49", - "prevIds": [ - "c68f3a1e-cf2c-45a2-8538-df9790e43bd6" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "f96803f2-a3c4-4397-a79d-b46dfc6e7c49", + "prevIds": ["c68f3a1e-cf2c-45a2-8538-df9790e43bd6"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117123940_create-default-org/snapshot.json b/app/drizzle/20260117123940_create-default-org/snapshot.json index 5d67f0bd6..a322d25cd 100644 --- a/app/drizzle/20260117123940_create-default-org/snapshot.json +++ b/app/drizzle/20260117123940_create-default-org/snapshot.json @@ -1,2110 +1,2025 @@ { - "dialect": "sqlite", - "id": "46b8c53e-2e87-460a-a7dd-f993906b0809", - "prevIds": [ - "f96803f2-a3c4-4397-a79d-b46dfc6e7c49" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "46b8c53e-2e87-460a-a7dd-f993906b0809", + "prevIds": ["f96803f2-a3c4-4397-a79d-b46dfc6e7c49"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117124944_create-default-member/snapshot.json b/app/drizzle/20260117124944_create-default-member/snapshot.json index f896273b2..d47771054 100644 --- a/app/drizzle/20260117124944_create-default-member/snapshot.json +++ b/app/drizzle/20260117124944_create-default-member/snapshot.json @@ -1,2110 +1,2025 @@ { - "dialect": "sqlite", - "id": "c42ef56e-5e58-4c89-905d-28bed1be2d45", - "prevIds": [ - "46b8c53e-2e87-460a-a7dd-f993906b0809" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_unique", - "table": "volumes_table", - "entityType": "indexes" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "c42ef56e-5e58-4c89-905d-28bed1be2d45", + "prevIds": ["46b8c53e-2e87-460a-a7dd-f993906b0809"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_unique", + "table": "volumes_table", + "entityType": "indexes" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117135738_shallow_pride/snapshot.json b/app/drizzle/20260117135738_shallow_pride/snapshot.json index 4b4d7f697..993249d21 100644 --- a/app/drizzle/20260117135738_shallow_pride/snapshot.json +++ b/app/drizzle/20260117135738_shallow_pride/snapshot.json @@ -1,2196 +1,2095 @@ { - "dialect": "sqlite", - "id": "1dc7b6e4-7710-4c1e-b124-bc9ad7588981", - "prevIds": [ - "c42ef56e-5e58-4c89-905d-28bed1be2d45" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "table": "notification_destinations_table", - "entityType": "fks" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "table": "repositories_table", - "entityType": "fks" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "table": "volumes_table", - "entityType": "fks" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "1dc7b6e4-7710-4c1e-b124-bc9ad7588981", + "prevIds": ["c42ef56e-5e58-4c89-905d-28bed1be2d45"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "table": "notification_destinations_table", + "entityType": "fks" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "table": "repositories_table", + "entityType": "fks" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "table": "volumes_table", + "entityType": "fks" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117135919_backfill-entities-org-id/snapshot.json b/app/drizzle/20260117135919_backfill-entities-org-id/snapshot.json index 907d64513..8719f3a31 100644 --- a/app/drizzle/20260117135919_backfill-entities-org-id/snapshot.json +++ b/app/drizzle/20260117135919_backfill-entities-org-id/snapshot.json @@ -1,2196 +1,2095 @@ { - "dialect": "sqlite", - "id": "62f2a91a-1f9e-46c0-b35a-0b9a14b98d5e", - "prevIds": [ - "1dc7b6e4-7710-4c1e-b124-bc9ad7588981" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "table": "notification_destinations_table", - "entityType": "fks" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "table": "repositories_table", - "entityType": "fks" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "table": "volumes_table", - "entityType": "fks" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "62f2a91a-1f9e-46c0-b35a-0b9a14b98d5e", + "prevIds": ["1dc7b6e4-7710-4c1e-b124-bc9ad7588981"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "table": "notification_destinations_table", + "entityType": "fks" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "table": "repositories_table", + "entityType": "fks" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "table": "volumes_table", + "entityType": "fks" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117142004_tidy_maelstrom/snapshot.json b/app/drizzle/20260117142004_tidy_maelstrom/snapshot.json index e776bfbe9..6463d27f3 100644 --- a/app/drizzle/20260117142004_tidy_maelstrom/snapshot.json +++ b/app/drizzle/20260117142004_tidy_maelstrom/snapshot.json @@ -1,2196 +1,2095 @@ { - "dialect": "sqlite", - "id": "6e25d040-091e-47ba-b3be-07dc56a22846", - "prevIds": [ - "62f2a91a-1f9e-46c0-b35a-0b9a14b98d5e" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_name_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "notification_destinations_table_name_unique", - "table": "notification_destinations_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "table": "notification_destinations_table", - "entityType": "fks" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "table": "repositories_table", - "entityType": "fks" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "table": "volumes_table", - "entityType": "fks" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "6e25d040-091e-47ba-b3be-07dc56a22846", + "prevIds": ["62f2a91a-1f9e-46c0-b35a-0b9a14b98d5e"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_name_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "notification_destinations_table_name_unique", + "table": "notification_destinations_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "table": "notification_destinations_table", + "entityType": "fks" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "table": "repositories_table", + "entityType": "fks" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "table": "volumes_table", + "entityType": "fks" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117211628_motionless_storm/snapshot.json b/app/drizzle/20260117211628_motionless_storm/snapshot.json index cce0d7704..472c456c6 100644 --- a/app/drizzle/20260117211628_motionless_storm/snapshot.json +++ b/app/drizzle/20260117211628_motionless_storm/snapshot.json @@ -1,2186 +1,2085 @@ { - "dialect": "sqlite", - "id": "70edc051-8835-46e5-af4a-2e686c6458c9", - "prevIds": [ - "6e25d040-091e-47ba-b3be-07dc56a22846" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - }, - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "member_org_user_uidx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "table": "notification_destinations_table", - "entityType": "fks" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "table": "repositories_table", - "entityType": "fks" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'user'", - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "table": "volumes_table", - "entityType": "fks" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "70edc051-8835-46e5-af4a-2e686c6458c9", + "prevIds": ["6e25d040-091e-47ba-b3be-07dc56a22846"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + }, + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "member_org_user_uidx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "table": "notification_destinations_table", + "entityType": "fks" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "table": "repositories_table", + "entityType": "fks" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'user'", + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "table": "volumes_table", + "entityType": "fks" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260117215923_watery_liz_osborn/snapshot.json b/app/drizzle/20260117215923_watery_liz_osborn/snapshot.json index b0ef1d4da..0edf07b6a 100644 --- a/app/drizzle/20260117215923_watery_liz_osborn/snapshot.json +++ b/app/drizzle/20260117215923_watery_liz_osborn/snapshot.json @@ -1,2204 +1,2103 @@ { - "dialect": "sqlite", - "id": "40c2122b-4553-4b4a-a936-4e129d084517", - "prevIds": [ - "70edc051-8835-46e5-af4a-2e686c6458c9" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - }, - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "member_org_user_uidx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "table": "notification_destinations_table", - "entityType": "fks" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "table": "repositories_table", - "entityType": "fks" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'user'", - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - }, - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_organization_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "table": "volumes_table", - "entityType": "fks" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "40c2122b-4553-4b4a-a936-4e129d084517", + "prevIds": ["70edc051-8835-46e5-af4a-2e686c6458c9"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + }, + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "member_org_user_uidx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "table": "notification_destinations_table", + "entityType": "fks" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "table": "repositories_table", + "entityType": "fks" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'user'", + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + }, + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_organization_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "table": "volumes_table", + "entityType": "fks" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260122123111_overjoyed_shen/snapshot.json b/app/drizzle/20260122123111_overjoyed_shen/snapshot.json index 006c615e7..b7af06091 100644 --- a/app/drizzle/20260122123111_overjoyed_shen/snapshot.json +++ b/app/drizzle/20260122123111_overjoyed_shen/snapshot.json @@ -1,2214 +1,2113 @@ { - "dialect": "sqlite", - "id": "ff0105d1-2fd0-4ffe-a1dc-edb1eb39f40c", - "prevIds": [ - "40c2122b-4553-4b4a-a936-4e129d084517" - ], - "version": "7", - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "table": "account", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "account", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "account", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "table": "account", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "table": "account", - "entityType": "fks" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "table": "app_metadata", - "entityType": "columns" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "app_metadata", - "entityType": "columns" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_mirrors_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "schedule_id", - "isExpression": false - }, - { - "value": "repository_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "table": "backup_schedule_mirrors_table", - "entityType": "indexes" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "table": "backup_schedule_mirrors_table", - "entityType": "fks" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedule_notifications_table", - "entityType": "columns" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "table": "backup_schedule_notifications_table", - "entityType": "pks" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "table": "backup_schedule_notifications_table", - "entityType": "fks" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "backup_schedules_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "backup_schedules_table_short_id_unique", - "table": "backup_schedules_table", - "entityType": "indexes" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "table": "backup_schedules_table", - "entityType": "fks" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "invitation", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "table": "invitation", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "table": "invitation", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "table": "invitation", - "entityType": "fks" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "member", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "table": "member", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "member", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - }, - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "member_org_user_uidx", - "table": "member", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "table": "member", - "entityType": "fks" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "notification_destinations_table", - "entityType": "columns" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "table": "notification_destinations_table", - "entityType": "fks" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "table": "organization", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "table": "organization", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "table": "organization", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_unique", - "table": "organization", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "table": "organization", - "entityType": "indexes" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "doctor_result", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "repositories_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "repositories_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "repositories_table_short_id_unique", - "table": "repositories_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "table": "repositories_table", - "entityType": "fks" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "table": "sessions_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "table": "sessions_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "token", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "sessions_table_token_unique", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "table": "sessions_table", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "table": "sessions_table", - "entityType": "fks" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "table": "two_factor", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "table": "two_factor", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "table": "two_factor", - "entityType": "indexes" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "table": "two_factor", - "entityType": "fks" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'user'", - "generated": null, - "name": "role", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "table": "users_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "table": "users_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "username", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_username_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "users_table_email_unique", - "table": "users_table", - "entityType": "indexes" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "table": "verification", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "verification", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "verification", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "table": "verification", - "entityType": "indexes" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "table": "volumes_table", - "entityType": "columns" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "table": "volumes_table", - "entityType": "columns" - }, - { - "columns": [ - { - "value": "short_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_short_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - { - "value": "name", - "isExpression": false - }, - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "volumes_table_name_organization_id_unique", - "table": "volumes_table", - "entityType": "indexes" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "table": "volumes_table", - "entityType": "fks" - } - ], - "renames": [] -} \ No newline at end of file + "dialect": "sqlite", + "id": "ff0105d1-2fd0-4ffe-a1dc-edb1eb39f40c", + "prevIds": ["40c2122b-4553-4b4a-a936-4e129d084517"], + "version": "7", + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "account", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "table": "account", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "account", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "account", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "table": "account", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "table": "account", + "entityType": "fks" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "table": "app_metadata", + "entityType": "columns" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "app_metadata", + "entityType": "columns" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_mirrors_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "schedule_id", + "isExpression": false + }, + { + "value": "repository_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "table": "backup_schedule_mirrors_table", + "entityType": "indexes" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "table": "backup_schedule_mirrors_table", + "entityType": "fks" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedule_notifications_table", + "entityType": "columns" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "table": "backup_schedule_notifications_table", + "entityType": "pks" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "table": "backup_schedule_notifications_table", + "entityType": "fks" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "backup_schedules_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "backup_schedules_table_short_id_unique", + "table": "backup_schedules_table", + "entityType": "indexes" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "table": "backup_schedules_table", + "entityType": "fks" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "invitation", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "table": "invitation", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "table": "invitation", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "table": "invitation", + "entityType": "fks" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "member", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "member", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "table": "member", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "member", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + }, + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "member_org_user_uidx", + "table": "member", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "table": "member", + "entityType": "fks" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "notification_destinations_table", + "entityType": "columns" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "table": "notification_destinations_table", + "entityType": "fks" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "organization", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "table": "organization", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "table": "organization", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "table": "organization", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_unique", + "table": "organization", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "table": "organization", + "entityType": "indexes" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "doctor_result", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "repositories_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "repositories_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "repositories_table_short_id_unique", + "table": "repositories_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "table": "repositories_table", + "entityType": "fks" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "table": "sessions_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "table": "sessions_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "token", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "sessions_table_token_unique", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "table": "sessions_table", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "table": "sessions_table", + "entityType": "fks" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "table": "two_factor", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "table": "two_factor", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "table": "two_factor", + "entityType": "indexes" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "table": "two_factor", + "entityType": "fks" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'user'", + "generated": null, + "name": "role", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "table": "users_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "table": "users_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "username", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_username_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "users_table_email_unique", + "table": "users_table", + "entityType": "indexes" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "table": "verification", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "table": "verification", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "verification", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "verification", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "table": "verification", + "entityType": "indexes" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "table": "volumes_table", + "entityType": "columns" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "table": "volumes_table", + "entityType": "columns" + }, + { + "columns": [ + { + "value": "short_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_short_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": [ + { + "value": "name", + "isExpression": false + }, + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "volumes_table_name_organization_id_unique", + "table": "volumes_table", + "entityType": "indexes" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "table": "volumes_table", + "entityType": "fks" + } + ], + "renames": [] +} diff --git a/app/drizzle/20260201174434_legal_sandman/snapshot.json b/app/drizzle/20260201174434_legal_sandman/snapshot.json index 734e3af85..a42c4e301 100644 --- a/app/drizzle/20260201174434_legal_sandman/snapshot.json +++ b/app/drizzle/20260201174434_legal_sandman/snapshot.json @@ -1,2154 +1,2035 @@ { - "version": "7", - "dialect": "sqlite", - "id": "3a308c54-d950-464f-9490-fee06985fbeb", - "prevIds": [ - "ff0105d1-2fd0-4ffe-a1dc-edb1eb39f40c" - ], - "ddl": [ - { - "name": "account", - "entityType": "tables" - }, - { - "name": "app_metadata", - "entityType": "tables" - }, - { - "name": "backup_schedule_mirrors_table", - "entityType": "tables" - }, - { - "name": "backup_schedule_notifications_table", - "entityType": "tables" - }, - { - "name": "backup_schedules_table", - "entityType": "tables" - }, - { - "name": "invitation", - "entityType": "tables" - }, - { - "name": "member", - "entityType": "tables" - }, - { - "name": "notification_destinations_table", - "entityType": "tables" - }, - { - "name": "organization", - "entityType": "tables" - }, - { - "name": "repositories_table", - "entityType": "tables" - }, - { - "name": "sessions_table", - "entityType": "tables" - }, - { - "name": "two_factor", - "entityType": "tables" - }, - { - "name": "users_table", - "entityType": "tables" - }, - { - "name": "verification", - "entityType": "tables" - }, - { - "name": "volumes_table", - "entityType": "tables" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "account_id", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "provider_id", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id_token", - "entityType": "columns", - "table": "account" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "access_token_expires_at", - "entityType": "columns", - "table": "account" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "refresh_token_expires_at", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "scope", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password", - "entityType": "columns", - "table": "account" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "account" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "account" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "key", - "entityType": "columns", - "table": "app_metadata" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "entityType": "columns", - "table": "app_metadata" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "app_metadata" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "app_metadata" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_at", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_status", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_copy_error", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "backup_schedule_mirrors_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "schedule_id", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "destination_id", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_start", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "notify_on_success", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_warning", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "notify_on_failure", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "backup_schedule_notifications_table" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "volume_id", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "repository_id", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "cron_expression", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "retention_policy", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_patterns", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "exclude_if_present", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'[]'", - "generated": null, - "name": "include_patterns", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_at", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_status", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_backup_error", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "next_backup_at", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "one_file_system", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "0", - "generated": null, - "name": "sort_order", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "entityType": "columns", - "table": "backup_schedules_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "role", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'pending'", - "generated": null, - "name": "status", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "inviter_id", - "entityType": "columns", - "table": "invitation" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "member" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "entityType": "columns", - "table": "member" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "entityType": "columns", - "table": "member" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'member'", - "generated": null, - "name": "role", - "entityType": "columns", - "table": "member" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "member" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "enabled", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "entityType": "columns", - "table": "notification_destinations_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "organization" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "entityType": "columns", - "table": "organization" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "slug", - "entityType": "columns", - "table": "organization" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "logo", - "entityType": "columns", - "table": "organization" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "organization" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "metadata", - "entityType": "columns", - "table": "organization" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'auto'", - "generated": null, - "name": "compression_mode", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": "'unknown'", - "generated": null, - "name": "status", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_checked", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "doctor_result", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "upload_limit_enabled", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "upload_limit_value", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "upload_limit_unit", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "download_limit_enabled", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "real", - "notNull": true, - "autoincrement": false, - "default": "1", - "generated": null, - "name": "download_limit_value", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'Mbps'", - "generated": null, - "name": "download_limit_unit", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "entityType": "columns", - "table": "repositories_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "token", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ip_address", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_agent", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "impersonated_by", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "active_organization_id", - "entityType": "columns", - "table": "sessions_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "two_factor" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "secret", - "entityType": "columns", - "table": "two_factor" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "backup_codes", - "entityType": "columns", - "table": "two_factor" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "user_id", - "entityType": "columns", - "table": "two_factor" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "username", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "password_hash", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "has_downloaded_restic_password", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "email", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "email_verified", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "image", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "display_username", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "two_factor_enabled", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'user'", - "generated": null, - "name": "role", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "false", - "generated": null, - "name": "banned", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_reason", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "ban_expires", - "entityType": "columns", - "table": "users_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "verification" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "identifier", - "entityType": "columns", - "table": "verification" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "value", - "entityType": "columns", - "table": "verification" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "expires_at", - "entityType": "columns", - "table": "verification" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "verification" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "verification" - }, - { - "type": "integer", - "notNull": false, - "autoincrement": true, - "default": null, - "generated": null, - "name": "id", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "short_id", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "name", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "type", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": "'unmounted'", - "generated": null, - "name": "status", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": false, - "autoincrement": false, - "default": null, - "generated": null, - "name": "last_error", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "last_health_check", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "created_at", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "(unixepoch() * 1000)", - "generated": null, - "name": "updated_at", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "config", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "integer", - "notNull": true, - "autoincrement": false, - "default": "true", - "generated": null, - "name": "auto_remount", - "entityType": "columns", - "table": "volumes_table" - }, - { - "type": "text", - "notNull": true, - "autoincrement": false, - "default": null, - "generated": null, - "name": "organization_id", - "entityType": "columns", - "table": "volumes_table" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "account_user_id_users_table_id_fk", - "entityType": "fks", - "table": "account" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", - "entityType": "fks", - "table": "backup_schedule_mirrors_table" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", - "entityType": "fks", - "table": "backup_schedule_mirrors_table" - }, - { - "columns": [ - "schedule_id" - ], - "tableTo": "backup_schedules_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", - "entityType": "fks", - "table": "backup_schedule_notifications_table" - }, - { - "columns": [ - "destination_id" - ], - "tableTo": "notification_destinations_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", - "entityType": "fks", - "table": "backup_schedule_notifications_table" - }, - { - "columns": [ - "volume_id" - ], - "tableTo": "volumes_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_volume_id_volumes_table_id_fk", - "entityType": "fks", - "table": "backup_schedules_table" - }, - { - "columns": [ - "repository_id" - ], - "tableTo": "repositories_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_repository_id_repositories_table_id_fk", - "entityType": "fks", - "table": "backup_schedules_table" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "backup_schedules_table_organization_id_organization_id_fk", - "entityType": "fks", - "table": "backup_schedules_table" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_organization_id_organization_id_fk", - "entityType": "fks", - "table": "invitation" - }, - { - "columns": [ - "inviter_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "invitation_inviter_id_users_table_id_fk", - "entityType": "fks", - "table": "invitation" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_organization_id_organization_id_fk", - "entityType": "fks", - "table": "member" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "member_user_id_users_table_id_fk", - "entityType": "fks", - "table": "member" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "notification_destinations_table_organization_id_organization_id_fk", - "entityType": "fks", - "table": "notification_destinations_table" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "repositories_table_organization_id_organization_id_fk", - "entityType": "fks", - "table": "repositories_table" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "sessions_table_user_id_users_table_id_fk", - "entityType": "fks", - "table": "sessions_table" - }, - { - "columns": [ - "user_id" - ], - "tableTo": "users_table", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "two_factor_user_id_users_table_id_fk", - "entityType": "fks", - "table": "two_factor" - }, - { - "columns": [ - "organization_id" - ], - "tableTo": "organization", - "columnsTo": [ - "id" - ], - "onUpdate": "NO ACTION", - "onDelete": "CASCADE", - "nameExplicit": false, - "name": "volumes_table_organization_id_organization_id_fk", - "entityType": "fks", - "table": "volumes_table" - }, - { - "columns": [ - "schedule_id", - "destination_id" - ], - "nameExplicit": false, - "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", - "entityType": "pks", - "table": "backup_schedule_notifications_table" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "account_pk", - "table": "account", - "entityType": "pks" - }, - { - "columns": [ - "key" - ], - "nameExplicit": false, - "name": "app_metadata_pk", - "table": "app_metadata", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_pk", - "table": "backup_schedule_mirrors_table", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_pk", - "table": "backup_schedules_table", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "invitation_pk", - "table": "invitation", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "member_pk", - "table": "member", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "notification_destinations_table_pk", - "table": "notification_destinations_table", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "organization_pk", - "table": "organization", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "repositories_table_pk", - "table": "repositories_table", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "sessions_table_pk", - "table": "sessions_table", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "two_factor_pk", - "table": "two_factor", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "users_table_pk", - "table": "users_table", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "verification_pk", - "table": "verification", - "entityType": "pks" - }, - { - "columns": [ - "id" - ], - "nameExplicit": false, - "name": "volumes_table_pk", - "table": "volumes_table", - "entityType": "pks" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "account_userId_idx", - "entityType": "indexes", - "table": "account" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_organizationId_idx", - "entityType": "indexes", - "table": "invitation" - }, - { - "columns": [ - { - "value": "email", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "invitation_email_idx", - "entityType": "indexes", - "table": "invitation" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_organizationId_idx", - "entityType": "indexes", - "table": "member" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "member_userId_idx", - "entityType": "indexes", - "table": "member" - }, - { - "columns": [ - { - "value": "organization_id", - "isExpression": false - }, - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "member_org_user_uidx", - "entityType": "indexes", - "table": "member" - }, - { - "columns": [ - { - "value": "slug", - "isExpression": false - } - ], - "isUnique": true, - "where": null, - "origin": "manual", - "name": "organization_slug_uidx", - "entityType": "indexes", - "table": "organization" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "sessionsTable_userId_idx", - "entityType": "indexes", - "table": "sessions_table" - }, - { - "columns": [ - { - "value": "secret", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_secret_idx", - "entityType": "indexes", - "table": "two_factor" - }, - { - "columns": [ - { - "value": "user_id", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "twoFactor_userId_idx", - "entityType": "indexes", - "table": "two_factor" - }, - { - "columns": [ - { - "value": "identifier", - "isExpression": false - } - ], - "isUnique": false, - "where": null, - "origin": "manual", - "name": "verification_identifier_idx", - "entityType": "indexes", - "table": "verification" - }, - { - "columns": [ - "schedule_id", - "repository_id" - ], - "nameExplicit": false, - "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", - "entityType": "uniques", - "table": "backup_schedule_mirrors_table" - }, - { - "columns": [ - "name", - "organization_id" - ], - "nameExplicit": false, - "name": "volumes_table_name_organization_id_unique", - "entityType": "uniques", - "table": "volumes_table" - }, - { - "columns": [ - "short_id" - ], - "nameExplicit": false, - "name": "backup_schedules_table_short_id_unique", - "entityType": "uniques", - "table": "backup_schedules_table" - }, - { - "columns": [ - "short_id" - ], - "nameExplicit": false, - "name": "repositories_table_short_id_unique", - "entityType": "uniques", - "table": "repositories_table" - }, - { - "columns": [ - "token" - ], - "nameExplicit": false, - "name": "sessions_table_token_unique", - "entityType": "uniques", - "table": "sessions_table" - }, - { - "columns": [ - "username" - ], - "nameExplicit": false, - "name": "users_table_username_unique", - "entityType": "uniques", - "table": "users_table" - }, - { - "columns": [ - "email" - ], - "nameExplicit": false, - "name": "users_table_email_unique", - "entityType": "uniques", - "table": "users_table" - }, - { - "columns": [ - "short_id" - ], - "nameExplicit": false, - "name": "volumes_table_short_id_unique", - "entityType": "uniques", - "table": "volumes_table" - } - ], - "renames": [] -} \ No newline at end of file + "version": "7", + "dialect": "sqlite", + "id": "3a308c54-d950-464f-9490-fee06985fbeb", + "prevIds": ["ff0105d1-2fd0-4ffe-a1dc-edb1eb39f40c"], + "ddl": [ + { + "name": "account", + "entityType": "tables" + }, + { + "name": "app_metadata", + "entityType": "tables" + }, + { + "name": "backup_schedule_mirrors_table", + "entityType": "tables" + }, + { + "name": "backup_schedule_notifications_table", + "entityType": "tables" + }, + { + "name": "backup_schedules_table", + "entityType": "tables" + }, + { + "name": "invitation", + "entityType": "tables" + }, + { + "name": "member", + "entityType": "tables" + }, + { + "name": "notification_destinations_table", + "entityType": "tables" + }, + { + "name": "organization", + "entityType": "tables" + }, + { + "name": "repositories_table", + "entityType": "tables" + }, + { + "name": "sessions_table", + "entityType": "tables" + }, + { + "name": "two_factor", + "entityType": "tables" + }, + { + "name": "users_table", + "entityType": "tables" + }, + { + "name": "verification", + "entityType": "tables" + }, + { + "name": "volumes_table", + "entityType": "tables" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "account_id", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "provider_id", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id_token", + "entityType": "columns", + "table": "account" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "access_token_expires_at", + "entityType": "columns", + "table": "account" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "refresh_token_expires_at", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "scope", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password", + "entityType": "columns", + "table": "account" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "account" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "account" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "key", + "entityType": "columns", + "table": "app_metadata" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "entityType": "columns", + "table": "app_metadata" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "app_metadata" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "app_metadata" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_at", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_status", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_copy_error", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "backup_schedule_mirrors_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "schedule_id", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "destination_id", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_start", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "notify_on_success", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_warning", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "notify_on_failure", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "backup_schedule_notifications_table" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "volume_id", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "repository_id", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "cron_expression", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "retention_policy", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_patterns", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "exclude_if_present", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'[]'", + "generated": null, + "name": "include_patterns", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_at", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_status", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_backup_error", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "next_backup_at", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "one_file_system", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "0", + "generated": null, + "name": "sort_order", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "entityType": "columns", + "table": "backup_schedules_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "role", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'pending'", + "generated": null, + "name": "status", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "inviter_id", + "entityType": "columns", + "table": "invitation" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "member" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "entityType": "columns", + "table": "member" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "entityType": "columns", + "table": "member" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'member'", + "generated": null, + "name": "role", + "entityType": "columns", + "table": "member" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "member" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "enabled", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "entityType": "columns", + "table": "notification_destinations_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "organization" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "entityType": "columns", + "table": "organization" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "slug", + "entityType": "columns", + "table": "organization" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "logo", + "entityType": "columns", + "table": "organization" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "organization" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "metadata", + "entityType": "columns", + "table": "organization" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'auto'", + "generated": null, + "name": "compression_mode", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": "'unknown'", + "generated": null, + "name": "status", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_checked", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "doctor_result", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "upload_limit_enabled", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "upload_limit_value", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "upload_limit_unit", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "download_limit_enabled", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "real", + "notNull": true, + "autoincrement": false, + "default": "1", + "generated": null, + "name": "download_limit_value", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'Mbps'", + "generated": null, + "name": "download_limit_unit", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "entityType": "columns", + "table": "repositories_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "token", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ip_address", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_agent", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "impersonated_by", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "active_organization_id", + "entityType": "columns", + "table": "sessions_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "two_factor" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "secret", + "entityType": "columns", + "table": "two_factor" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "backup_codes", + "entityType": "columns", + "table": "two_factor" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "user_id", + "entityType": "columns", + "table": "two_factor" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "username", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "password_hash", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "has_downloaded_restic_password", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "email", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "email_verified", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "image", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "display_username", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "two_factor_enabled", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'user'", + "generated": null, + "name": "role", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "false", + "generated": null, + "name": "banned", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_reason", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "ban_expires", + "entityType": "columns", + "table": "users_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "verification" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "identifier", + "entityType": "columns", + "table": "verification" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "value", + "entityType": "columns", + "table": "verification" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "expires_at", + "entityType": "columns", + "table": "verification" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "verification" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "verification" + }, + { + "type": "integer", + "notNull": false, + "autoincrement": true, + "default": null, + "generated": null, + "name": "id", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "short_id", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "name", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "type", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": "'unmounted'", + "generated": null, + "name": "status", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": false, + "autoincrement": false, + "default": null, + "generated": null, + "name": "last_error", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "last_health_check", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "created_at", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "(unixepoch() * 1000)", + "generated": null, + "name": "updated_at", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "config", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "integer", + "notNull": true, + "autoincrement": false, + "default": "true", + "generated": null, + "name": "auto_remount", + "entityType": "columns", + "table": "volumes_table" + }, + { + "type": "text", + "notNull": true, + "autoincrement": false, + "default": null, + "generated": null, + "name": "organization_id", + "entityType": "columns", + "table": "volumes_table" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "account_user_id_users_table_id_fk", + "entityType": "fks", + "table": "account" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_backup_schedules_table_id_fk", + "entityType": "fks", + "table": "backup_schedule_mirrors_table" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_repository_id_repositories_table_id_fk", + "entityType": "fks", + "table": "backup_schedule_mirrors_table" + }, + { + "columns": ["schedule_id"], + "tableTo": "backup_schedules_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_backup_schedules_table_id_fk", + "entityType": "fks", + "table": "backup_schedule_notifications_table" + }, + { + "columns": ["destination_id"], + "tableTo": "notification_destinations_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedule_notifications_table_destination_id_notification_destinations_table_id_fk", + "entityType": "fks", + "table": "backup_schedule_notifications_table" + }, + { + "columns": ["volume_id"], + "tableTo": "volumes_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_volume_id_volumes_table_id_fk", + "entityType": "fks", + "table": "backup_schedules_table" + }, + { + "columns": ["repository_id"], + "tableTo": "repositories_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_repository_id_repositories_table_id_fk", + "entityType": "fks", + "table": "backup_schedules_table" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "backup_schedules_table_organization_id_organization_id_fk", + "entityType": "fks", + "table": "backup_schedules_table" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_organization_id_organization_id_fk", + "entityType": "fks", + "table": "invitation" + }, + { + "columns": ["inviter_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "invitation_inviter_id_users_table_id_fk", + "entityType": "fks", + "table": "invitation" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_organization_id_organization_id_fk", + "entityType": "fks", + "table": "member" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "member_user_id_users_table_id_fk", + "entityType": "fks", + "table": "member" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "notification_destinations_table_organization_id_organization_id_fk", + "entityType": "fks", + "table": "notification_destinations_table" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "repositories_table_organization_id_organization_id_fk", + "entityType": "fks", + "table": "repositories_table" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "sessions_table_user_id_users_table_id_fk", + "entityType": "fks", + "table": "sessions_table" + }, + { + "columns": ["user_id"], + "tableTo": "users_table", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "two_factor_user_id_users_table_id_fk", + "entityType": "fks", + "table": "two_factor" + }, + { + "columns": ["organization_id"], + "tableTo": "organization", + "columnsTo": ["id"], + "onUpdate": "NO ACTION", + "onDelete": "CASCADE", + "nameExplicit": false, + "name": "volumes_table_organization_id_organization_id_fk", + "entityType": "fks", + "table": "volumes_table" + }, + { + "columns": ["schedule_id", "destination_id"], + "nameExplicit": false, + "name": "backup_schedule_notifications_table_schedule_id_destination_id_pk", + "entityType": "pks", + "table": "backup_schedule_notifications_table" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "account_pk", + "table": "account", + "entityType": "pks" + }, + { + "columns": ["key"], + "nameExplicit": false, + "name": "app_metadata_pk", + "table": "app_metadata", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_pk", + "table": "backup_schedule_mirrors_table", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "backup_schedules_table_pk", + "table": "backup_schedules_table", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "invitation_pk", + "table": "invitation", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "member_pk", + "table": "member", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "notification_destinations_table_pk", + "table": "notification_destinations_table", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "organization_pk", + "table": "organization", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "repositories_table_pk", + "table": "repositories_table", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "sessions_table_pk", + "table": "sessions_table", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "two_factor_pk", + "table": "two_factor", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "users_table_pk", + "table": "users_table", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "verification_pk", + "table": "verification", + "entityType": "pks" + }, + { + "columns": ["id"], + "nameExplicit": false, + "name": "volumes_table_pk", + "table": "volumes_table", + "entityType": "pks" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "account_userId_idx", + "entityType": "indexes", + "table": "account" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_organizationId_idx", + "entityType": "indexes", + "table": "invitation" + }, + { + "columns": [ + { + "value": "email", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "invitation_email_idx", + "entityType": "indexes", + "table": "invitation" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_organizationId_idx", + "entityType": "indexes", + "table": "member" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "member_userId_idx", + "entityType": "indexes", + "table": "member" + }, + { + "columns": [ + { + "value": "organization_id", + "isExpression": false + }, + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "member_org_user_uidx", + "entityType": "indexes", + "table": "member" + }, + { + "columns": [ + { + "value": "slug", + "isExpression": false + } + ], + "isUnique": true, + "where": null, + "origin": "manual", + "name": "organization_slug_uidx", + "entityType": "indexes", + "table": "organization" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "sessionsTable_userId_idx", + "entityType": "indexes", + "table": "sessions_table" + }, + { + "columns": [ + { + "value": "secret", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_secret_idx", + "entityType": "indexes", + "table": "two_factor" + }, + { + "columns": [ + { + "value": "user_id", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "twoFactor_userId_idx", + "entityType": "indexes", + "table": "two_factor" + }, + { + "columns": [ + { + "value": "identifier", + "isExpression": false + } + ], + "isUnique": false, + "where": null, + "origin": "manual", + "name": "verification_identifier_idx", + "entityType": "indexes", + "table": "verification" + }, + { + "columns": ["schedule_id", "repository_id"], + "nameExplicit": false, + "name": "backup_schedule_mirrors_table_schedule_id_repository_id_unique", + "entityType": "uniques", + "table": "backup_schedule_mirrors_table" + }, + { + "columns": ["name", "organization_id"], + "nameExplicit": false, + "name": "volumes_table_name_organization_id_unique", + "entityType": "uniques", + "table": "volumes_table" + }, + { + "columns": ["short_id"], + "nameExplicit": false, + "name": "backup_schedules_table_short_id_unique", + "entityType": "uniques", + "table": "backup_schedules_table" + }, + { + "columns": ["short_id"], + "nameExplicit": false, + "name": "repositories_table_short_id_unique", + "entityType": "uniques", + "table": "repositories_table" + }, + { + "columns": ["token"], + "nameExplicit": false, + "name": "sessions_table_token_unique", + "entityType": "uniques", + "table": "sessions_table" + }, + { + "columns": ["username"], + "nameExplicit": false, + "name": "users_table_username_unique", + "entityType": "uniques", + "table": "users_table" + }, + { + "columns": ["email"], + "nameExplicit": false, + "name": "users_table_email_unique", + "entityType": "uniques", + "table": "users_table" + }, + { + "columns": ["short_id"], + "nameExplicit": false, + "name": "volumes_table_short_id_unique", + "entityType": "uniques", + "table": "volumes_table" + } + ], + "renames": [] +} diff --git a/app/lib/__tests__/permission-policy.test.ts b/app/lib/__tests__/permission-policy.test.ts index d479ceafc..d93dd65c2 100644 --- a/app/lib/__tests__/permission-policy.test.ts +++ b/app/lib/__tests__/permission-policy.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { evaluatePermission, hasRuntimeFeature } from "../permission-policy"; describe("permissions", () => { diff --git a/app/middleware/api-client.ts b/app/middleware/api-client.ts index 909716118..d461c5099 100644 --- a/app/middleware/api-client.ts +++ b/app/middleware/api-client.ts @@ -1,9 +1,6 @@ import { createMiddleware } from "@tanstack/react-start"; import { getRequestHeaders } from "@tanstack/react-start/server"; -import { - createRequestClient, - runWithRequestClient, -} from "~/lib/request-client"; +import { createRequestClient, runWithRequestClient } from "~/lib/request-client"; import { config } from "../server/core/config"; export const apiClientMiddleware = createMiddleware().server(async ({ next }) => { diff --git a/app/routes/(dashboard)/backups/$backupId/index.tsx b/app/routes/(dashboard)/backups/$backupId/index.tsx index 08121e1f7..4502b304b 100644 --- a/app/routes/(dashboard)/backups/$backupId/index.tsx +++ b/app/routes/(dashboard)/backups/$backupId/index.tsx @@ -27,15 +27,18 @@ export const Route = createFileRoute("/(dashboard)/backups/$backupId/")({ loader: async ({ params, context }) => { const { backupId } = params; - const [schedule, notifs, repos, scheduleNotifs, mirrors, _progress, snapshotTimelineSortOrder] = await Promise.all([ - context.queryClient.ensureQueryData({ ...getBackupScheduleOptions({ path: { shortId: backupId } }) }), - context.queryClient.ensureQueryData({ ...listNotificationDestinationsOptions() }), - context.queryClient.ensureQueryData({ ...listRepositoriesOptions() }), - context.queryClient.ensureQueryData({ ...getScheduleNotificationsOptions({ path: { shortId: backupId } }) }), - context.queryClient.ensureQueryData({ ...getScheduleMirrorsOptions({ path: { shortId: backupId } }) }), - context.queryClient.ensureQueryData({ ...getBackupProgressOptions({ path: { shortId: backupId } }) }), - fetchSnapshotTimelineSortOrder(), - ]); + const [schedule, notifs, repos, scheduleNotifs, mirrors, _progress, snapshotTimelineSortOrder] = + await Promise.all([ + context.queryClient.ensureQueryData({ ...getBackupScheduleOptions({ path: { shortId: backupId } }) }), + context.queryClient.ensureQueryData({ ...listNotificationDestinationsOptions() }), + context.queryClient.ensureQueryData({ ...listRepositoriesOptions() }), + context.queryClient.ensureQueryData({ + ...getScheduleNotificationsOptions({ path: { shortId: backupId } }), + }), + context.queryClient.ensureQueryData({ ...getScheduleMirrorsOptions({ path: { shortId: backupId } }) }), + context.queryClient.ensureQueryData({ ...getBackupProgressOptions({ path: { shortId: backupId } }) }), + fetchSnapshotTimelineSortOrder(), + ]); const snapshotOptions = listSnapshotsOptions({ path: { shortId: schedule.repository.shortId }, diff --git a/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/index.tsx b/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/index.tsx index 98cbc4806..522cea659 100644 --- a/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/index.tsx +++ b/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/index.tsx @@ -12,7 +12,9 @@ export const Route = createFileRoute("/(dashboard)/repositories/$repositoryId/$s errorComponent: (e) =>
    {e.error.message}
    , loader: async ({ params, context }) => { const [res] = await Promise.all([ - context.queryClient.ensureQueryData({ ...getRepositoryOptions({ path: { shortId: params.repositoryId } }) }), + context.queryClient.ensureQueryData({ + ...getRepositoryOptions({ path: { shortId: params.repositoryId } }), + }), context.queryClient.ensureQueryData({ ...listBackupSchedulesOptions() }), ]); diff --git a/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/restore.tsx b/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/restore.tsx index aed977aad..4f9914c8c 100644 --- a/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/restore.tsx +++ b/app/routes/(dashboard)/repositories/$repositoryId/$snapshotId/restore.tsx @@ -13,7 +13,9 @@ export const Route = createFileRoute("/(dashboard)/repositories/$repositoryId/$s context.queryClient.ensureQueryData({ ...getSnapshotDetailsOptions({ path: { shortId: params.repositoryId, snapshotId: params.snapshotId } }), }), - context.queryClient.ensureQueryData({ ...getRepositoryOptions({ path: { shortId: params.repositoryId } }) }), + context.queryClient.ensureQueryData({ + ...getRepositoryOptions({ path: { shortId: params.repositoryId } }), + }), ]); let displayBasePath: string | undefined; @@ -38,8 +40,14 @@ export const Route = createFileRoute("/(dashboard)/repositories/$repositoryId/$s staticData: { breadcrumb: (match) => [ { label: "Repositories", href: "/repositories" }, - { label: match.loaderData?.repository?.name || "Repository", href: `/repositories/${match.params.repositoryId}` }, - { label: match.params.snapshotId, href: `/repositories/${match.params.repositoryId}/${match.params.snapshotId}` }, + { + label: match.loaderData?.repository?.name || "Repository", + href: `/repositories/${match.params.repositoryId}`, + }, + { + label: match.params.snapshotId, + href: `/repositories/${match.params.repositoryId}/${match.params.snapshotId}`, + }, { label: "Restore" }, ], }, diff --git a/app/server/__tests__/isolation.test.ts b/app/server/__tests__/isolation.test.ts index 359511776..fdbb512ac 100644 --- a/app/server/__tests__/isolation.test.ts +++ b/app/server/__tests__/isolation.test.ts @@ -1,4 +1,4 @@ -import { beforeAll, beforeEach, describe, expect, test } from "vitest"; +import { beforeAll, beforeEach, describe, expect, test } from "vite-plus/test"; import { createApp } from "~/server/app"; import { createTestSession } from "~/test/helpers/auth"; import { db } from "~/server/db/db"; diff --git a/app/server/cli/commands/change-email.test.ts b/app/server/cli/commands/change-email.test.ts index de2e66c97..473403540 100644 --- a/app/server/cli/commands/change-email.test.ts +++ b/app/server/cli/commands/change-email.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { db } from "~/server/db/db"; import { account, sessionsTable, usersTable } from "~/server/db/schema"; diff --git a/app/server/cli/commands/change-email.ts b/app/server/cli/commands/change-email.ts index a1b2e8ac9..09490df27 100644 --- a/app/server/cli/commands/change-email.ts +++ b/app/server/cli/commands/change-email.ts @@ -165,7 +165,9 @@ export const changeEmailCommand = new Command("change-email") const result = await changeEmailForUser(username, newEmail, impact); - console.info(`\n✅ Email for "${username}" changed from "${result.previousEmail}" to "${result.updatedEmail}".`); + console.info( + `\n✅ Email for "${username}" changed from "${result.previousEmail}" to "${result.updatedEmail}".`, + ); if (result.deletedSsoAccounts > 0) { console.info(` Deleted ${result.deletedSsoAccounts} linked SSO account(s).`); } diff --git a/app/server/core/__tests__/config.test.ts b/app/server/core/__tests__/config.test.ts index d47890978..ed0605c5a 100644 --- a/app/server/core/__tests__/config.test.ts +++ b/app/server/core/__tests__/config.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { fileURLToPath } from "node:url"; import { parseConfig } from "../config"; diff --git a/app/server/core/__tests__/repository-mutex.test.ts b/app/server/core/__tests__/repository-mutex.test.ts index 7863069c9..304e1db38 100644 --- a/app/server/core/__tests__/repository-mutex.test.ts +++ b/app/server/core/__tests__/repository-mutex.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test, vi } from "vitest"; +import { describe, expect, test, vi } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { db } from "~/server/db/db"; import { repositoryLocksTable, repositoryLockWaitersTable } from "~/server/db/schema"; diff --git a/app/server/core/__tests__/scheduler.test.ts b/app/server/core/__tests__/scheduler.test.ts index 343a5f5d6..40763f75a 100644 --- a/app/server/core/__tests__/scheduler.test.ts +++ b/app/server/core/__tests__/scheduler.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { logger } from "@zerobyte/core/node"; import { Job, Scheduler } from "../scheduler"; diff --git a/app/server/jobs/__tests__/cleanup-dangling.test.ts b/app/server/jobs/__tests__/cleanup-dangling.test.ts index 11e52f026..cb40dd5d6 100644 --- a/app/server/jobs/__tests__/cleanup-dangling.test.ts +++ b/app/server/jobs/__tests__/cleanup-dangling.test.ts @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import { config } from "../../core/config"; import { CleanupDanglingMountsJob } from "../cleanup-dangling"; import * as mountinfo from "../../utils/mountinfo"; diff --git a/app/server/jobs/cleanup-dangling.ts b/app/server/jobs/cleanup-dangling.ts index ac0b618f4..e1b0fda41 100644 --- a/app/server/jobs/cleanup-dangling.ts +++ b/app/server/jobs/cleanup-dangling.ts @@ -16,7 +16,9 @@ import { LOCAL_AGENT_ID } from "../modules/agents/constants"; export class CleanupDanglingMountsJob extends Job { async run() { if (config.flags.enableLocalAgent) { - logger.debug("Skipping controller-local dangling mount cleanup because local volume execution is agent-owned."); + logger.debug( + "Skipping controller-local dangling mount cleanup because local volume execution is agent-owned.", + ); return { done: true, timestamp: new Date() }; } diff --git a/app/server/lib/__tests__/accept-language.test.ts b/app/server/lib/__tests__/accept-language.test.ts index 272f0d7f7..b14fd6fc1 100644 --- a/app/server/lib/__tests__/accept-language.test.ts +++ b/app/server/lib/__tests__/accept-language.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { getLocaleFromAcceptLanguage } from "~/server/lib/accept-language"; describe("getLocaleFromAcceptLanguage", () => { diff --git a/app/server/lib/__tests__/username.test.ts b/app/server/lib/__tests__/username.test.ts index c983a333a..310c0e67e 100644 --- a/app/server/lib/__tests__/username.test.ts +++ b/app/server/lib/__tests__/username.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { isValidUsername, normalizeUsername } from "~/lib/username"; describe("username helpers", () => { diff --git a/app/server/lib/auth/helpers/__tests__/create-default-org.test.ts b/app/server/lib/auth/helpers/__tests__/create-default-org.test.ts index 536c65fe5..85f7fee8a 100644 --- a/app/server/lib/auth/helpers/__tests__/create-default-org.test.ts +++ b/app/server/lib/auth/helpers/__tests__/create-default-org.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { db, sqlite } from "~/server/db/db"; import { account, invitation, member, organization, usersTable } from "~/server/db/schema"; diff --git a/app/server/lib/auth/middlewares/__tests__/convert-legacy-user.test.ts b/app/server/lib/auth/middlewares/__tests__/convert-legacy-user.test.ts index 9535fa79c..03e4fcaf8 100644 --- a/app/server/lib/auth/middlewares/__tests__/convert-legacy-user.test.ts +++ b/app/server/lib/auth/middlewares/__tests__/convert-legacy-user.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from "vitest"; +import { beforeEach, describe, expect, test, vi } from "vite-plus/test"; vi.mock("better-auth/crypto", () => ({ hashPassword: vi.fn(async () => "test-account-password-hash"), diff --git a/app/server/lib/auth/middlewares/__tests__/password-login-policy.test.ts b/app/server/lib/auth/middlewares/__tests__/password-login-policy.test.ts index 0c3b13930..89edf742b 100644 --- a/app/server/lib/auth/middlewares/__tests__/password-login-policy.test.ts +++ b/app/server/lib/auth/middlewares/__tests__/password-login-policy.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from "vitest"; +import { beforeEach, describe, expect, test, vi } from "vite-plus/test"; import { config } from "~/server/core/config"; import type { AuthMiddlewareContext } from "~/server/lib/auth"; import { systemService } from "~/server/modules/system/system.service"; diff --git a/app/server/lib/auth/middlewares/only-one-user.ts b/app/server/lib/auth/middlewares/only-one-user.ts index 92b31d29d..4025da819 100644 --- a/app/server/lib/auth/middlewares/only-one-user.ts +++ b/app/server/lib/auth/middlewares/only-one-user.ts @@ -19,6 +19,8 @@ export const ensureOnlyOneUser = async (ctx: AuthMiddlewareContext) => { if (result?.value !== "true" && existingUser) { logger.info("User registration attempt blocked: registrations are not enabled."); - throw new ForbiddenError("User registrations are currently disabled. Please contact an administrator for access."); + throw new ForbiddenError( + "User registrations are currently disabled. Please contact an administrator for access.", + ); } }; diff --git a/app/server/modules/agents/__tests__/agents-manager.backups.test.ts b/app/server/modules/agents/__tests__/agents-manager.backups.test.ts index eaab3870e..683309757 100644 --- a/app/server/modules/agents/__tests__/agents-manager.backups.test.ts +++ b/app/server/modules/agents/__tests__/agents-manager.backups.test.ts @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import waitForExpect from "wait-for-expect"; import { fromAny, fromPartial } from "@total-typescript/shoehorn"; import { Effect } from "effect"; diff --git a/app/server/modules/agents/__tests__/agents-manager.events.test.ts b/app/server/modules/agents/__tests__/agents-manager.events.test.ts index 8dde6e715..050c4b72e 100644 --- a/app/server/modules/agents/__tests__/agents-manager.events.test.ts +++ b/app/server/modules/agents/__tests__/agents-manager.events.test.ts @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import { Effect } from "effect"; import { fromAny, fromPartial } from "@total-typescript/shoehorn"; import type { BackupRunPayload, RestoreRunPayload } from "@zerobyte/contracts/agent-protocol"; diff --git a/app/server/modules/agents/__tests__/agents-manager.test.ts b/app/server/modules/agents/__tests__/agents-manager.test.ts index 116e9152b..af013dc52 100644 --- a/app/server/modules/agents/__tests__/agents-manager.test.ts +++ b/app/server/modules/agents/__tests__/agents-manager.test.ts @@ -1,7 +1,7 @@ import { EventEmitter } from "node:events"; import { PassThrough } from "node:stream"; import { Effect } from "effect"; -import { afterEach, beforeEach, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, expect, test, vi } from "vite-plus/test"; import { fromAny } from "@total-typescript/shoehorn"; import type { ProcessWithAgentRuntime } from "../helpers/runtime-state.dev"; diff --git a/app/server/modules/agents/__tests__/agents.service.test.ts b/app/server/modules/agents/__tests__/agents.service.test.ts index f6f87c8a7..4167a1def 100644 --- a/app/server/modules/agents/__tests__/agents.service.test.ts +++ b/app/server/modules/agents/__tests__/agents.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, expect, test } from "vitest"; +import { beforeEach, expect, test } from "vite-plus/test"; import { db } from "~/server/db/db"; import { agentsTable } from "~/server/db/schema"; import { LOCAL_AGENT_ID, LOCAL_AGENT_KIND, LOCAL_AGENT_NAME } from "../constants"; diff --git a/app/server/modules/agents/__tests__/controller-runtime.test.ts b/app/server/modules/agents/__tests__/controller-runtime.test.ts index 82a19a9f1..da1f67942 100644 --- a/app/server/modules/agents/__tests__/controller-runtime.test.ts +++ b/app/server/modules/agents/__tests__/controller-runtime.test.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import waitForExpect from "wait-for-expect"; import { fromPartial } from "@total-typescript/shoehorn"; import { createAgentMessage } from "@zerobyte/contracts/agent-protocol"; diff --git a/app/server/modules/agents/__tests__/session.test.ts b/app/server/modules/agents/__tests__/session.test.ts index fb076077a..e84e4c11d 100644 --- a/app/server/modules/agents/__tests__/session.test.ts +++ b/app/server/modules/agents/__tests__/session.test.ts @@ -1,5 +1,5 @@ import { Effect, Exit, Fiber, Scope } from "effect"; -import { expect, test, vi } from "vitest"; +import { expect, test, vi } from "vite-plus/test"; import waitForExpect from "wait-for-expect"; import { fromPartial } from "@total-typescript/shoehorn"; import { diff --git a/app/server/modules/auth/__tests__/auth.account-and-membership.test.ts b/app/server/modules/auth/__tests__/auth.account-and-membership.test.ts index 8bbdf2580..753f63535 100644 --- a/app/server/modules/auth/__tests__/auth.account-and-membership.test.ts +++ b/app/server/modules/auth/__tests__/auth.account-and-membership.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { db, sqlite } from "~/server/db/db"; import { account, apikey, member, organization, sessionsTable, usersTable } from "~/server/db/schema"; import { diff --git a/app/server/modules/auth/__tests__/auth.api-keys.test.ts b/app/server/modules/auth/__tests__/auth.api-keys.test.ts index 268563954..d389ec63a 100644 --- a/app/server/modules/auth/__tests__/auth.api-keys.test.ts +++ b/app/server/modules/auth/__tests__/auth.api-keys.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { and, eq } from "drizzle-orm"; import { hashPassword } from "better-auth/crypto"; import { createApp } from "~/server/app"; diff --git a/app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts b/app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts index 4d10fc790..124db50e6 100644 --- a/app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts +++ b/app/server/modules/auth/__tests__/auth.cleanup-user-organizations.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { db, sqlite } from "~/server/db/db"; import { member, organization, sessionsTable, usersTable } from "~/server/db/schema"; import { @@ -162,7 +162,9 @@ describe("authService.cleanupUserOrganizations", () => { `); try { - await expect(authService.cleanupUserOrganizations(deletedUserId)).rejects.toThrow("forced cleanup rollback"); + await expect(authService.cleanupUserOrganizations(deletedUserId)).rejects.toThrow( + "forced cleanup rollback", + ); } finally { dropTrigger(CLEANUP_USER_ORGS_ROLLBACK_TRIGGER); } diff --git a/app/server/modules/auth/__tests__/auth.controller.security.test.ts b/app/server/modules/auth/__tests__/auth.controller.security.test.ts index 11f0f4046..10268a724 100644 --- a/app/server/modules/auth/__tests__/auth.controller.security.test.ts +++ b/app/server/modules/auth/__tests__/auth.controller.security.test.ts @@ -1,4 +1,4 @@ -import { beforeAll, describe, expect, test } from "vitest"; +import { beforeAll, describe, expect, test } from "vite-plus/test"; import { createApp } from "~/server/app"; import { createTestSession, diff --git a/app/server/modules/auth/__tests__/auth.helpers.test.ts b/app/server/modules/auth/__tests__/auth.helpers.test.ts index a128de7bb..cb5b93682 100644 --- a/app/server/modules/auth/__tests__/auth.helpers.test.ts +++ b/app/server/modules/auth/__tests__/auth.helpers.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { config } from "~/server/core/config"; import { isPasswordAuthSupported, isSessionAuthSourceAllowed } from "../helpers"; diff --git a/app/server/modules/auth/__tests__/helpers.test.ts b/app/server/modules/auth/__tests__/helpers.test.ts index f427311ab..f24aedf75 100644 --- a/app/server/modules/auth/__tests__/helpers.test.ts +++ b/app/server/modules/auth/__tests__/helpers.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test, vi } from "vitest"; +import { beforeEach, describe, expect, test, vi } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { db } from "~/server/db/db"; import { account, passkey, usersTable } from "~/server/db/schema"; diff --git a/app/server/modules/backups/__tests__/backups.controller.test.ts b/app/server/modules/backups/__tests__/backups.controller.test.ts index c102b829a..18fa3f69b 100644 --- a/app/server/modules/backups/__tests__/backups.controller.test.ts +++ b/app/server/modules/backups/__tests__/backups.controller.test.ts @@ -1,4 +1,4 @@ -import { beforeAll, describe, expect, test } from "vitest"; +import { beforeAll, describe, expect, test } from "vite-plus/test"; import { createApp } from "~/server/app"; import { createTestSession, getAuthHeaders } from "~/test/helpers/auth"; import { createTestVolume } from "~/test/helpers/volume"; diff --git a/app/server/modules/backups/__tests__/backups.mirror-sync.test.ts b/app/server/modules/backups/__tests__/backups.mirror-sync.test.ts index 117f5bdd0..03f7d3d0e 100644 --- a/app/server/modules/backups/__tests__/backups.mirror-sync.test.ts +++ b/app/server/modules/backups/__tests__/backups.mirror-sync.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import waitForExpect from "wait-for-expect"; import { backupsService } from "../backups.service"; import { createTestVolume } from "~/test/helpers/volume"; diff --git a/app/server/modules/backups/__tests__/backups.patterns.test.ts b/app/server/modules/backups/__tests__/backups.patterns.test.ts index e0cb29d21..dc4657a3f 100644 --- a/app/server/modules/backups/__tests__/backups.patterns.test.ts +++ b/app/server/modules/backups/__tests__/backups.patterns.test.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { fromAny } from "@total-typescript/shoehorn"; import { createBackupOptions } from "../backup.helpers"; diff --git a/app/server/modules/backups/__tests__/backups.queries.test.ts b/app/server/modules/backups/__tests__/backups.queries.test.ts index 573fdd425..68f1675db 100644 --- a/app/server/modules/backups/__tests__/backups.queries.test.ts +++ b/app/server/modules/backups/__tests__/backups.queries.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { scheduleQueries } from "../backups.queries"; import { createTestBackupSchedule } from "~/test/helpers/backup"; import { createTestVolume } from "~/test/helpers/volume"; diff --git a/app/server/modules/backups/__tests__/backups.service.execution.test.ts b/app/server/modules/backups/__tests__/backups.service.execution.test.ts index 61036ed38..01bad5415 100644 --- a/app/server/modules/backups/__tests__/backups.service.execution.test.ts +++ b/app/server/modules/backups/__tests__/backups.service.execution.test.ts @@ -1,5 +1,5 @@ import waitForExpect from "wait-for-expect"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { backupsService } from "../backups.service"; import { createTestVolume } from "~/test/helpers/volume"; import { createTestBackupSchedule } from "~/test/helpers/backup"; diff --git a/app/server/modules/backups/__tests__/backups.service.test.ts b/app/server/modules/backups/__tests__/backups.service.test.ts index c13932b9f..e10b9e6c2 100644 --- a/app/server/modules/backups/__tests__/backups.service.test.ts +++ b/app/server/modules/backups/__tests__/backups.service.test.ts @@ -1,5 +1,5 @@ import waitForExpect from "wait-for-expect"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { backupsService } from "../backups.service"; import { createTestVolume } from "~/test/helpers/volume"; diff --git a/app/server/modules/backups/backups.dto.ts b/app/server/modules/backups/backups.dto.ts index 92437eaf1..257d06164 100644 --- a/app/server/modules/backups/backups.dto.ts +++ b/app/server/modules/backups/backups.dto.ts @@ -357,7 +357,8 @@ const getMirrorCompatibilityResponse = mirrorCompatibilitySchema.array(); export type GetMirrorCompatibilityDto = z.infer; export const getMirrorCompatibilityDto = describeRoute({ - description: "Get mirror compatibility info for all repositories relative to a backup schedule's primary repository", + description: + "Get mirror compatibility info for all repositories relative to a backup schedule's primary repository", operationId: "getMirrorCompatibility", tags: ["Backups"], responses: { diff --git a/app/server/modules/backups/backups.queries.ts b/app/server/modules/backups/backups.queries.ts index 00b2641ae..dcf5b46a9 100644 --- a/app/server/modules/backups/backups.queries.ts +++ b/app/server/modules/backups/backups.queries.ts @@ -48,7 +48,9 @@ export const scheduleQueries = { return db .update(backupSchedulesTable) .set({ ...status, updatedAt: Date.now() }) - .where(and(eq(backupSchedulesTable.id, scheduleId), eq(backupSchedulesTable.organizationId, organizationId))); + .where( + and(eq(backupSchedulesTable.id, scheduleId), eq(backupSchedulesTable.organizationId, organizationId)), + ); }, }; diff --git a/app/server/modules/desktop/__tests__/desktop.controller.test.ts b/app/server/modules/desktop/__tests__/desktop.controller.test.ts index 84f5419d6..defbffb94 100644 --- a/app/server/modules/desktop/__tests__/desktop.controller.test.ts +++ b/app/server/modules/desktop/__tests__/desktop.controller.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test } from "vitest"; +import { afterEach, describe, expect, test } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { hashPassword } from "better-auth/crypto"; import { createApp } from "~/server/app"; diff --git a/app/server/modules/events/__tests__/events.controller.test.ts b/app/server/modules/events/__tests__/events.controller.test.ts index 5a98f8fa7..fc2a64b56 100644 --- a/app/server/modules/events/__tests__/events.controller.test.ts +++ b/app/server/modules/events/__tests__/events.controller.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { createApp } from "~/server/app"; import { serverEvents } from "~/server/core/events"; import { createTestSession, getAuthHeaders } from "~/test/helpers/auth"; diff --git a/app/server/modules/lifecycle/__tests__/shutdown.test.ts b/app/server/modules/lifecycle/__tests__/shutdown.test.ts index 11dbed840..4e9d86bfc 100644 --- a/app/server/modules/lifecycle/__tests__/shutdown.test.ts +++ b/app/server/modules/lifecycle/__tests__/shutdown.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import { Scheduler } from "../../../core/scheduler"; import * as bootstrapModule from "../bootstrap"; import { agentManager } from "../../agents/agents-manager"; diff --git a/app/server/modules/lifecycle/__tests__/startup.test.ts b/app/server/modules/lifecycle/__tests__/startup.test.ts index ee0a73f45..51f756f4d 100644 --- a/app/server/modules/lifecycle/__tests__/startup.test.ts +++ b/app/server/modules/lifecycle/__tests__/startup.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, expect, test, vi } from "vite-plus/test"; import { Scheduler } from "~/server/core/scheduler"; import { serverEvents } from "~/server/core/events"; import { config } from "~/server/core/config"; diff --git a/app/server/modules/lifecycle/migrations/00006-map-smb-files-to-container-uid-gid.ts b/app/server/modules/lifecycle/migrations/00006-map-smb-files-to-container-uid-gid.ts index cdb0d5b95..08d85aa5b 100644 --- a/app/server/modules/lifecycle/migrations/00006-map-smb-files-to-container-uid-gid.ts +++ b/app/server/modules/lifecycle/migrations/00006-map-smb-files-to-container-uid-gid.ts @@ -10,7 +10,11 @@ const execute = async () => { let migratedCount = 0; for (const volume of volumes) { - if (volume.type !== "smb" || volume.config.backend !== "smb" || volume.config.mapToContainerUidGid !== undefined) { + if ( + volume.type !== "smb" || + volume.config.backend !== "smb" || + volume.config.mapToContainerUidGid !== undefined + ) { continue; } diff --git a/app/server/modules/notifications/__tests__/notification-builders.test.ts b/app/server/modules/notifications/__tests__/notification-builders.test.ts index b44be76dd..bc0e20731 100644 --- a/app/server/modules/notifications/__tests__/notification-builders.test.ts +++ b/app/server/modules/notifications/__tests__/notification-builders.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { buildCustomShoutrrrUrl } from "../builders/custom"; import { buildDiscordShoutrrrUrl } from "../builders/discord"; import { buildEmailShoutrrrUrl } from "../builders/email"; diff --git a/app/server/modules/notifications/__tests__/notification-config-secrets.test.ts b/app/server/modules/notifications/__tests__/notification-config-secrets.test.ts index 1657661b4..511104189 100644 --- a/app/server/modules/notifications/__tests__/notification-config-secrets.test.ts +++ b/app/server/modules/notifications/__tests__/notification-config-secrets.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { mapNotificationConfigSecrets } from "../notification-config-secrets"; describe("mapNotificationConfigSecrets", () => { diff --git a/app/server/modules/notifications/__tests__/notification-target-policy.test.ts b/app/server/modules/notifications/__tests__/notification-target-policy.test.ts index bd792e7b4..782d3684f 100644 --- a/app/server/modules/notifications/__tests__/notification-target-policy.test.ts +++ b/app/server/modules/notifications/__tests__/notification-target-policy.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { assertNotificationTargetAllowed } from "../utils/notification-target-policy"; describe("assertNotificationTargetAllowed", () => { diff --git a/app/server/modules/notifications/__tests__/notifications.controller.test.ts b/app/server/modules/notifications/__tests__/notifications.controller.test.ts index e595a1d0a..b1fb27cd6 100644 --- a/app/server/modules/notifications/__tests__/notifications.controller.test.ts +++ b/app/server/modules/notifications/__tests__/notifications.controller.test.ts @@ -1,4 +1,4 @@ -import { beforeAll, describe, expect, test } from "vitest"; +import { beforeAll, describe, expect, test } from "vite-plus/test"; import { createApp } from "~/server/app"; import { createTestSession, getAuthHeaders } from "~/test/helpers/auth"; diff --git a/app/server/modules/notifications/__tests__/notifications.service.test.ts b/app/server/modules/notifications/__tests__/notifications.service.test.ts index a2ef02d88..a03b7a04d 100644 --- a/app/server/modules/notifications/__tests__/notifications.service.test.ts +++ b/app/server/modules/notifications/__tests__/notifications.service.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { db } from "~/server/db/db"; import { notificationDestinationsTable } from "~/server/db/schema"; import { withContext } from "~/server/core/request-context"; @@ -91,7 +91,9 @@ describe("notificationsService.updateDestination", () => { const { organizationId, user } = await createTestSession(); await withContext({ organizationId, userId: user.id }, async () => { - const resolveSecretSpy = vi.spyOn(cryptoUtils, "resolveSecret").mockResolvedValue("discord://token@webhookid"); + const resolveSecretSpy = vi + .spyOn(cryptoUtils, "resolveSecret") + .mockResolvedValue("discord://token@webhookid"); const [destination] = await db .insert(notificationDestinationsTable) diff --git a/app/server/modules/notifications/notifications.service.ts b/app/server/modules/notifications/notifications.service.ts index 6f3f905b9..86e6fa54f 100644 --- a/app/server/modules/notifications/notifications.service.ts +++ b/app/server/modules/notifications/notifications.service.ts @@ -126,7 +126,10 @@ const updateDestination = async ( .update(notificationDestinationsTable) .set(updateData) .where( - and(eq(notificationDestinationsTable.id, id), eq(notificationDestinationsTable.organizationId, organizationId)), + and( + eq(notificationDestinationsTable.id, id), + eq(notificationDestinationsTable.organizationId, organizationId), + ), ) .returning(); @@ -143,7 +146,10 @@ const deleteDestination = async (id: number) => { await db .delete(notificationDestinationsTable) .where( - and(eq(notificationDestinationsTable.id, id), eq(notificationDestinationsTable.organizationId, organizationId)), + and( + eq(notificationDestinationsTable.id, id), + eq(notificationDestinationsTable.organizationId, organizationId), + ), ); }; @@ -252,7 +258,9 @@ const updateScheduleNotifications = async ( } } - await db.delete(backupScheduleNotificationsTable).where(eq(backupScheduleNotificationsTable.scheduleId, scheduleId)); + await db + .delete(backupScheduleNotificationsTable) + .where(eq(backupScheduleNotificationsTable.scheduleId, scheduleId)); if (assignments.length > 0) { await db.insert(backupScheduleNotificationsTable).values( diff --git a/app/server/modules/provisioning/provisioning.test.ts b/app/server/modules/provisioning/provisioning.test.ts index df8f8843e..7be0e4857 100644 --- a/app/server/modules/provisioning/provisioning.test.ts +++ b/app/server/modules/provisioning/provisioning.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import * as fs from "node:fs/promises"; import * as os from "node:os"; import * as path from "node:path"; diff --git a/app/server/modules/repositories/__tests__/repositories.controller.test.ts b/app/server/modules/repositories/__tests__/repositories.controller.test.ts index 9a123cd40..0a70695ff 100644 --- a/app/server/modules/repositories/__tests__/repositories.controller.test.ts +++ b/app/server/modules/repositories/__tests__/repositories.controller.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import crypto from "node:crypto"; import { PassThrough } from "node:stream"; import { createApp } from "~/server/app"; diff --git a/app/server/modules/repositories/__tests__/repositories.service.test.ts b/app/server/modules/repositories/__tests__/repositories.service.test.ts index 9d50bf5ba..b11213ebb 100644 --- a/app/server/modules/repositories/__tests__/repositories.service.test.ts +++ b/app/server/modules/repositories/__tests__/repositories.service.test.ts @@ -5,7 +5,7 @@ import nodePath from "node:path"; import { randomUUID } from "node:crypto"; import { Readable } from "node:stream"; import { Effect } from "effect"; -import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeAll, beforeEach, describe, expect, test, vi } from "vite-plus/test"; import type { RepositoryConfig } from "@zerobyte/core/restic"; import { REPOSITORY_BASE } from "~/server/core/constants"; import { config } from "~/server/core/config"; diff --git a/app/server/modules/sso/__tests__/sso.errors.test.ts b/app/server/modules/sso/__tests__/sso.errors.test.ts index 84650f32c..9af502c7d 100644 --- a/app/server/modules/sso/__tests__/sso.errors.test.ts +++ b/app/server/modules/sso/__tests__/sso.errors.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { ACCOUNT_LINK_REQUIRED_DESCRIPTION } from "~/lib/sso-errors"; import { mapAuthErrorToCode } from "../sso.errors"; diff --git a/app/server/modules/sso/__tests__/sso.integration.test.ts b/app/server/modules/sso/__tests__/sso.integration.test.ts index 949adac9a..e5aa6ff0c 100644 --- a/app/server/modules/sso/__tests__/sso.integration.test.ts +++ b/app/server/modules/sso/__tests__/sso.integration.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import type { GenericEndpointContext } from "better-auth"; import { eq } from "drizzle-orm"; import { db } from "~/server/db/db"; diff --git a/app/server/modules/sso/__tests__/sso.registration.test.ts b/app/server/modules/sso/__tests__/sso.registration.test.ts index b4903ccca..a9d229e3f 100644 --- a/app/server/modules/sso/__tests__/sso.registration.test.ts +++ b/app/server/modules/sso/__tests__/sso.registration.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, test } from "vitest"; +import { afterEach, beforeEach, describe, expect, test } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { createApp } from "~/server/app"; import { db } from "~/server/db/db"; diff --git a/app/server/modules/sso/__tests__/sso.security.test.ts b/app/server/modules/sso/__tests__/sso.security.test.ts index 095a1c4bf..71be7d839 100644 --- a/app/server/modules/sso/__tests__/sso.security.test.ts +++ b/app/server/modules/sso/__tests__/sso.security.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { createApp } from "~/server/app"; import { account, invitation, member, organization, ssoProvider, usersTable } from "~/server/db/schema"; import { db } from "~/server/db/db"; diff --git a/app/server/modules/sso/__tests__/sso.service.test.ts b/app/server/modules/sso/__tests__/sso.service.test.ts index 9ee839dfd..726c2a4c2 100644 --- a/app/server/modules/sso/__tests__/sso.service.test.ts +++ b/app/server/modules/sso/__tests__/sso.service.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { db, sqlite } from "~/server/db/db"; import { account, invitation, member, organization, sessionsTable, ssoProvider, usersTable } from "~/server/db/schema"; import { @@ -195,7 +195,9 @@ describe("ssoService.deleteSsoProvider", () => { `); try { - await expect(ssoService.deleteSsoProvider(providerId, org)).rejects.toThrow("forced deleteSsoProvider rollback"); + await expect(ssoService.deleteSsoProvider(providerId, org)).rejects.toThrow( + "forced deleteSsoProvider rollback", + ); } finally { dropTrigger(DELETE_SSO_PROVIDER_ROLLBACK_TRIGGER); } diff --git a/app/server/modules/sso/middlewares/__tests__/require-invitation.test.ts b/app/server/modules/sso/middlewares/__tests__/require-invitation.test.ts index ecf79c839..36a89a43f 100644 --- a/app/server/modules/sso/middlewares/__tests__/require-invitation.test.ts +++ b/app/server/modules/sso/middlewares/__tests__/require-invitation.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import type { GenericEndpointContext } from "better-auth"; import { db } from "~/server/db/db"; import { account, invitation, member, organization, ssoProvider, usersTable } from "~/server/db/schema"; diff --git a/app/server/modules/sso/middlewares/__tests__/trust-provider-for-linking.test.ts b/app/server/modules/sso/middlewares/__tests__/trust-provider-for-linking.test.ts index fa92611b2..f046b5615 100644 --- a/app/server/modules/sso/middlewares/__tests__/trust-provider-for-linking.test.ts +++ b/app/server/modules/sso/middlewares/__tests__/trust-provider-for-linking.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, expect, test } from "vitest"; +import { beforeEach, describe, expect, test } from "vite-plus/test"; import { eq } from "drizzle-orm"; import { db } from "~/server/db/db"; import { account, member, organization, ssoProvider, usersTable, verification } from "~/server/db/schema"; diff --git a/app/server/modules/sso/middlewares/__tests__/validate-callback-urls.test.ts b/app/server/modules/sso/middlewares/__tests__/validate-callback-urls.test.ts index b8c127952..de1611d21 100644 --- a/app/server/modules/sso/middlewares/__tests__/validate-callback-urls.test.ts +++ b/app/server/modules/sso/middlewares/__tests__/validate-callback-urls.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import type { AuthMiddlewareContext } from "~/server/lib/auth"; import { validateSsoCallbackUrls } from "../validate-callback-urls"; diff --git a/app/server/modules/sso/middlewares/__tests__/validate-provider-id.test.ts b/app/server/modules/sso/middlewares/__tests__/validate-provider-id.test.ts index 1977fa517..4d392082f 100644 --- a/app/server/modules/sso/middlewares/__tests__/validate-provider-id.test.ts +++ b/app/server/modules/sso/middlewares/__tests__/validate-provider-id.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import type { AuthMiddlewareContext } from "~/server/lib/auth"; import { validateSsoProviderId } from "../validate-provider-id"; diff --git a/app/server/modules/system/__tests__/system.controller.test.ts b/app/server/modules/system/__tests__/system.controller.test.ts index 6c9dbf72d..41c2b3d32 100644 --- a/app/server/modules/system/__tests__/system.controller.test.ts +++ b/app/server/modules/system/__tests__/system.controller.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeAll, describe, expect, test, vi } from "vitest"; +import { afterEach, beforeAll, describe, expect, test, vi } from "vite-plus/test"; import { createApp } from "~/server/app"; import { createTestSession, createTestSessionWithGlobalAdmin, getAuthHeaders } from "~/test/helpers/auth"; import { systemService } from "../system.service"; diff --git a/app/server/modules/tasks/__tests__/progress-buffer.test.ts b/app/server/modules/tasks/__tests__/progress-buffer.test.ts index 4af783860..11fbb1ff9 100644 --- a/app/server/modules/tasks/__tests__/progress-buffer.test.ts +++ b/app/server/modules/tasks/__tests__/progress-buffer.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, expect, test, vi } from "vite-plus/test"; import { db } from "~/server/db/db"; import { tasksTable } from "~/server/db/schema"; import { ensureTestOrganization, TEST_ORG_ID } from "~/test/helpers/organization"; diff --git a/app/server/modules/tasks/__tests__/tasks.store.test.ts b/app/server/modules/tasks/__tests__/tasks.store.test.ts index 3a6ed2370..e8761a3c3 100644 --- a/app/server/modules/tasks/__tests__/tasks.store.test.ts +++ b/app/server/modules/tasks/__tests__/tasks.store.test.ts @@ -1,4 +1,4 @@ -import { beforeEach, expect, test } from "vitest"; +import { beforeEach, expect, test } from "vite-plus/test"; import { db } from "~/server/db/db"; import { tasksTable } from "~/server/db/schema"; import { ensureTestOrganization, TEST_ORG_ID } from "~/test/helpers/organization"; diff --git a/app/server/modules/volumes/__tests__/volumes.controller.test.ts b/app/server/modules/volumes/__tests__/volumes.controller.test.ts index df0f129ca..0892e2b9b 100644 --- a/app/server/modules/volumes/__tests__/volumes.controller.test.ts +++ b/app/server/modules/volumes/__tests__/volumes.controller.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, test } from "vitest"; +import { afterAll, beforeAll, describe, expect, test } from "vite-plus/test"; import { db } from "~/server/db/db"; import { volumesTable } from "~/server/db/schema"; import { createApp } from "~/server/app"; diff --git a/app/server/modules/volumes/__tests__/volumes.service.test.ts b/app/server/modules/volumes/__tests__/volumes.service.test.ts index f401ba26d..b4a8fa369 100644 --- a/app/server/modules/volumes/__tests__/volumes.service.test.ts +++ b/app/server/modules/volumes/__tests__/volumes.service.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; const agentManagerMock = vi.hoisted(() => ({ runVolumeCommand: vi.fn(), })); diff --git a/app/server/utils/__tests__/crypto.test.ts b/app/server/utils/__tests__/crypto.test.ts index 851949e5b..e958669f6 100644 --- a/app/server/utils/__tests__/crypto.test.ts +++ b/app/server/utils/__tests__/crypto.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test, vi } from "vitest"; +import { describe, expect, test, vi } from "vite-plus/test"; describe("cryptoUtils", () => { test("sealSecret rejects encrypted values that cannot be decrypted with the current app secret", async () => { diff --git a/app/server/utils/__tests__/rclone.test.ts b/app/server/utils/__tests__/rclone.test.ts index 3787ea078..9d3ff5a9c 100644 --- a/app/server/utils/__tests__/rclone.test.ts +++ b/app/server/utils/__tests__/rclone.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; vi.mock("@zerobyte/core/node", async (importOriginal) => { const actual = await importOriginal(); diff --git a/app/server/utils/common-ancestor.test.ts b/app/server/utils/common-ancestor.test.ts index 468fb28a8..52026c215 100644 --- a/app/server/utils/common-ancestor.test.ts +++ b/app/server/utils/common-ancestor.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { findCommonAncestor } from "@zerobyte/core/utils"; describe("findCommonAncestor", () => { diff --git a/app/test/helpers/agent-mock.ts b/app/test/helpers/agent-mock.ts index 0cced76e3..83a6e4dd4 100644 --- a/app/test/helpers/agent-mock.ts +++ b/app/test/helpers/agent-mock.ts @@ -1,4 +1,4 @@ -import { vi } from "vitest"; +import { vi } from "vite-plus/test"; import { fromAny, fromPartial } from "@total-typescript/shoehorn"; import type { SafeSpawnParams } from "@zerobyte/core/node"; import type { BackupExecutionProgress, BackupExecutionResult } from "~/server/modules/agents/agents-manager"; diff --git a/app/test/helpers/backup-mirror.ts b/app/test/helpers/backup-mirror.ts index f6a4aa605..1ed36a2e1 100644 --- a/app/test/helpers/backup-mirror.ts +++ b/app/test/helpers/backup-mirror.ts @@ -2,7 +2,7 @@ import { db } from "~/server/db/db"; import { backupScheduleMirrorsTable, type BackupScheduleMirror } from "~/server/db/schema"; import { ensureTestOrganization } from "./organization"; -type BackupScheduleMirrorInsert = Omit; +type BackupScheduleMirrorInsert = Omit; export const createTestBackupScheduleMirror = async ( scheduleId: number, diff --git a/app/test/helpers/db.ts b/app/test/helpers/db.ts index adff565fa..5e22de8d5 100644 --- a/app/test/helpers/db.ts +++ b/app/test/helpers/db.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import path from "node:path"; import { tmpdir } from "node:os"; -import { vi } from "vitest"; +import { vi } from "vite-plus/test"; export const createTestDb = async () => { const projectRoot = process.cwd(); diff --git a/app/test/integration/src/helpers/assertions.ts b/app/test/integration/src/helpers/assertions.ts index a9eeee4a8..cdcea2eda 100644 --- a/app/test/integration/src/helpers/assertions.ts +++ b/app/test/integration/src/helpers/assertions.ts @@ -1,6 +1,6 @@ import fs from "node:fs/promises"; import path from "node:path"; -import { expect } from "vitest"; +import { expect } from "vite-plus/test"; import type { ScenarioFixture } from "./fixture"; type ResticLsNode = { diff --git a/app/test/integration/src/repositories.test.ts b/app/test/integration/src/repositories.test.ts index c4169788d..5f75e70c5 100644 --- a/app/test/integration/src/repositories.test.ts +++ b/app/test/integration/src/repositories.test.ts @@ -3,7 +3,7 @@ import fs from "node:fs/promises"; import path from "node:path"; import { Effect } from "effect"; import type { RepositoryConfig } from "@zerobyte/core/restic"; -import { expect, test } from "vitest"; +import { expect, test } from "vite-plus/test"; import { INTEGRATION_ORGANIZATION_ID, INTEGRATION_RUNS_DIR, diff --git a/app/test/integration/src/volume-backends.test.ts b/app/test/integration/src/volume-backends.test.ts index 3710d87b7..19ef5f2c9 100644 --- a/app/test/integration/src/volume-backends.test.ts +++ b/app/test/integration/src/volume-backends.test.ts @@ -3,7 +3,7 @@ import fs from "node:fs/promises"; import path from "node:path"; import type { RepositoryConfig } from "@zerobyte/core/restic"; import { Effect } from "effect"; -import { expect, test } from "vitest"; +import { expect, test } from "vite-plus/test"; import { makeNfsBackend } from "../../../../apps/agent/src/volume-host/backends/nfs"; import { makeSmbBackend } from "../../../../apps/agent/src/volume-host/backends/smb"; import { makeSftpBackend } from "../../../../apps/agent/src/volume-host/backends/sftp"; diff --git a/app/test/integration/vitest.config.ts b/app/test/integration/vitest.config.ts index 2fda2d1d1..6405feeba 100644 --- a/app/test/integration/vitest.config.ts +++ b/app/test/integration/vitest.config.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { defineConfig } from "vitest/config"; +import { defineConfig } from "vite-plus"; export default defineConfig({ resolve: { diff --git a/app/test/setup-client.ts b/app/test/setup-client.ts index 23f17ca9a..60c3e62f2 100644 --- a/app/test/setup-client.ts +++ b/app/test/setup-client.ts @@ -1,5 +1,5 @@ import "./setup-shared"; -import { afterAll, afterEach, beforeAll, vi } from "vitest"; +import { afterAll, afterEach, beforeAll, vi } from "vite-plus/test"; import { client } from "~/client/api-client/client.gen"; import { server } from "~/test/msw/server"; diff --git a/app/test/setup-shared.ts b/app/test/setup-shared.ts index 813206900..c0ef67cac 100644 --- a/app/test/setup-shared.ts +++ b/app/test/setup-shared.ts @@ -1,4 +1,4 @@ -import { vi } from "vitest"; +import { vi } from "vite-plus/test"; import { Effect } from "effect"; process.env.BASE_URL = "http://localhost:3000"; diff --git a/apps/agent/src/__tests__/controller-session.test.ts b/apps/agent/src/__tests__/controller-session.test.ts index 45156a771..76ebe342b 100644 --- a/apps/agent/src/__tests__/controller-session.test.ts +++ b/apps/agent/src/__tests__/controller-session.test.ts @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import { Effect } from "effect"; import waitForExpect from "wait-for-expect"; import { fromPartial } from "@total-typescript/shoehorn"; diff --git a/apps/agent/src/commands/__tests__/backup-run.test.ts b/apps/agent/src/commands/__tests__/backup-run.test.ts index 7f93a8f4d..0145a1fc7 100644 --- a/apps/agent/src/commands/__tests__/backup-run.test.ts +++ b/apps/agent/src/commands/__tests__/backup-run.test.ts @@ -1,6 +1,6 @@ import nodeHttp, { type IncomingMessage, type Server, type ServerResponse } from "node:http"; import { Effect } from "effect"; -import { afterEach, beforeEach, expect, test, vi } from "vitest"; +import { afterEach, beforeEach, expect, test, vi } from "vite-plus/test"; import waitForExpect from "wait-for-expect"; import { fromPartial } from "@total-typescript/shoehorn"; import { parseAgentMessage, type BackupCancelPayload, type BackupRunPayload } from "@zerobyte/contracts/agent-protocol"; diff --git a/apps/agent/src/commands/__tests__/restore.test.ts b/apps/agent/src/commands/__tests__/restore.test.ts index 03f7143ad..d669334b1 100644 --- a/apps/agent/src/commands/__tests__/restore.test.ts +++ b/apps/agent/src/commands/__tests__/restore.test.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import waitForExpect from "wait-for-expect"; import { fromPartial } from "@total-typescript/shoehorn"; import { parseAgentMessage, type RestoreRunPayload } from "@zerobyte/contracts/agent-protocol"; diff --git a/apps/agent/src/commands/__tests__/volume.test.ts b/apps/agent/src/commands/__tests__/volume.test.ts index 075278388..9e3f2adfb 100644 --- a/apps/agent/src/commands/__tests__/volume.test.ts +++ b/apps/agent/src/commands/__tests__/volume.test.ts @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; import { Effect } from "effect"; import { fromPartial } from "@total-typescript/shoehorn"; import { diff --git a/apps/agent/src/commands/helpers/__tests__/backup.helpers.test.ts b/apps/agent/src/commands/helpers/__tests__/backup.helpers.test.ts index 7c6cce686..f8d2f895d 100644 --- a/apps/agent/src/commands/helpers/__tests__/backup.helpers.test.ts +++ b/apps/agent/src/commands/helpers/__tests__/backup.helpers.test.ts @@ -1,6 +1,6 @@ import path from "node:path"; import fc from "fast-check"; -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import type { BackupRunPayload } from "@zerobyte/contracts/agent-protocol"; import { createBackupOptions, processPattern } from "../backup.helpers"; diff --git a/apps/agent/src/restic/__tests__/hostname.test.ts b/apps/agent/src/restic/__tests__/hostname.test.ts index 448a85306..a4087fb69 100644 --- a/apps/agent/src/restic/__tests__/hostname.test.ts +++ b/apps/agent/src/restic/__tests__/hostname.test.ts @@ -1,4 +1,4 @@ -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; const fsMock = vi.hoisted(() => ({ readFileSync: vi.fn(), diff --git a/apps/agent/src/volume-host/__tests__/cleanup.test.ts b/apps/agent/src/volume-host/__tests__/cleanup.test.ts index b80e34923..d74d71f4a 100644 --- a/apps/agent/src/volume-host/__tests__/cleanup.test.ts +++ b/apps/agent/src/volume-host/__tests__/cleanup.test.ts @@ -1,7 +1,7 @@ import * as fs from "node:fs/promises"; import * as os from "node:os"; import * as path from "node:path"; -import { afterEach, expect, test, vi } from "vitest"; +import { afterEach, expect, test, vi } from "vite-plus/test"; let tempRoot: string | undefined; let mockMountPoints: string[] = []; diff --git a/apps/agent/src/volume-host/__tests__/operations.test.ts b/apps/agent/src/volume-host/__tests__/operations.test.ts index d5dd756e5..52985de49 100644 --- a/apps/agent/src/volume-host/__tests__/operations.test.ts +++ b/apps/agent/src/volume-host/__tests__/operations.test.ts @@ -2,7 +2,7 @@ import * as fs from "node:fs/promises"; import * as os from "node:os"; import * as path from "node:path"; import type { Volume as AgentVolume } from "@zerobyte/contracts/volumes"; -import { afterEach, expect, test } from "vitest"; +import { afterEach, expect, test } from "vite-plus/test"; import { listVolumeFiles } from "../operations"; let tempRoot: string | undefined; diff --git a/apps/agent/src/volume-host/backends/utils.test.ts b/apps/agent/src/volume-host/backends/utils.test.ts index 7ca06b93c..a62024e14 100644 --- a/apps/agent/src/volume-host/backends/utils.test.ts +++ b/apps/agent/src/volume-host/backends/utils.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; vi.mock("node:fs/promises", async (importOriginal) => { const actual = await importOriginal(); diff --git a/apps/agent/src/volume-host/backends/webdav.ts b/apps/agent/src/volume-host/backends/webdav.ts index 9e66b84b7..d5f58404c 100644 --- a/apps/agent/src/volume-host/backends/webdav.ts +++ b/apps/agent/src/volume-host/backends/webdav.ts @@ -131,7 +131,10 @@ const mount = async (config: BackendConfig, mountPath: string) => { }; } if (message.includes("unauthorized") || message.includes("Unauthorized")) { - return { status: "error" as const, error: "Authentication failed. Please check your username and password." }; + return { + status: "error" as const, + error: "Authentication failed. Please check your username and password.", + }; } return { status: "error" as const, error: message }; diff --git a/apps/agent/vitest.config.ts b/apps/agent/vitest.config.ts index 534c36963..5257ad9f3 100644 --- a/apps/agent/vitest.config.ts +++ b/apps/agent/vitest.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from "vitest/config"; +import { defineConfig } from "vite-plus"; export default defineConfig({ test: { diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 3f740d511..3c9049473 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -6,7 +6,7 @@ "main": ".vite/build/main.js", "scripts": { "start": "bun run build:electron && env -u ELECTRON_RUN_AS_NODE electron .", - "build:electron": "vite build --config vite.main.config.ts", + "build:electron": "vp build --config vite.main.config.ts", "package": "electron-builder --config electron-builder.config.cjs --mac dir --publish never", "make": "electron-builder --config electron-builder.config.cjs --mac --publish never", "make:mas": "electron-builder --config electron-builder.config.cjs --mac mas --publish never", @@ -21,6 +21,7 @@ "electron": "^39.2.7", "electron-builder": "^26.15.3", "typescript": "^6.0.3", - "vite": "^8.0.16" + "vite": "file:../../vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", + "vite-plus": "catalog:" } } diff --git a/apps/desktop/vite.main.config.ts b/apps/desktop/vite.main.config.ts index 766461e06..86812ea8b 100644 --- a/apps/desktop/vite.main.config.ts +++ b/apps/desktop/vite.main.config.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { defineConfig } from "vite"; +import { defineConfig } from "vite-plus"; export default defineConfig({ build: { diff --git a/apps/docs/content/docs/cli.mdx b/apps/docs/content/docs/cli.mdx index 8efc2fa0f..6f3204c6a 100644 --- a/apps/docs/content/docs/cli.mdx +++ b/apps/docs/content/docs/cli.mdx @@ -22,14 +22,14 @@ Most commands prompt for missing values when run interactively. ## Commands -| Command | Useful for | -|---------|------------| -| `reset-password` | Reset a user's password when they are locked out or forgot it. Invalidates existing sessions. | -| `disable-2fa` | Disable two-factor authentication for a user who lost access to their 2FA device. | -| `change-username` | Rename a user account. Invalidates existing sessions. | -| `change-email` | Change a user's email address. Removes linked SSO accounts for that user and invalidates sessions. | -| `rekey-2fa` | Re-encrypt existing 2FA secrets using the current `APP_SECRET`, usually after migrating from an older secret setup. | -| `assign-organization` | Move a user to another organization by organization slug. Invalidates existing sessions. | +| Command | Useful for | +| --------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `reset-password` | Reset a user's password when they are locked out or forgot it. Invalidates existing sessions. | +| `disable-2fa` | Disable two-factor authentication for a user who lost access to their 2FA device. | +| `change-username` | Rename a user account. Invalidates existing sessions. | +| `change-email` | Change a user's email address. Removes linked SSO accounts for that user and invalidates sessions. | +| `rekey-2fa` | Re-encrypt existing 2FA secrets using the current `APP_SECRET`, usually after migrating from an older secret setup. | +| `assign-organization` | Move a user to another organization by organization slug. Invalidates existing sessions. | ## Examples diff --git a/apps/docs/content/docs/concepts/backups.mdx b/apps/docs/content/docs/concepts/backups.mdx index f629eecc8..9505a86b4 100644 --- a/apps/docs/content/docs/concepts/backups.mdx +++ b/apps/docs/content/docs/concepts/backups.mdx @@ -26,7 +26,7 @@ To create a backup job, navigate to **Backups** in the sidebar and click **Creat - **Retention policy**, optionally define how many snapshots to keep - Choose **Manual only** if you want to create the job without scheduled runs and trigger it yourself. + Choose **Manual only** if you want to create the job without scheduled runs and trigger it yourself. ## Scheduling @@ -35,16 +35,17 @@ Backup jobs use **cron expressions** to define when they run. Cron syntax gives ### Common cron patterns -| Cron Expression | Schedule | -| ----------------- | ---------------------------- | -| `0 2 * * *` | Daily at 2:00 AM | -| `0 2 * * 0` | Weekly on Sunday at 2:00 AM | -| `0 2 1 * *` | Monthly on the 1st at 2:00 AM | -| `0 */6 * * *` | Every 6 hours | -| `0 0 * * 1-5` | Weekdays at midnight | +| Cron Expression | Schedule | +| --------------- | ----------------------------- | +| `0 2 * * *` | Daily at 2:00 AM | +| `0 2 * * 0` | Weekly on Sunday at 2:00 AM | +| `0 2 1 * *` | Monthly on the 1st at 2:00 AM | +| `0 */6 * * *` | Every 6 hours | +| `0 0 * * 1-5` | Weekdays at midnight | - The timezone for cron schedules is controlled by the `TZ` environment variable set on the Zerobyte container. If `TZ` is not set, the system defaults to UTC. + The timezone for cron schedules is controlled by the `TZ` environment variable set on the Zerobyte container. If `TZ` + is not set, the system defaults to UTC. ## Retention policies @@ -53,13 +54,13 @@ Retention policies control how long snapshots are kept. After each backup, Resti You can configure the following retention rules: -| Rule | Description | -| -------------- | ------------------------------------------ | -| **Keep Last** | Number of most recent snapshots to keep | -| **Keep Daily** | Number of daily snapshots to keep | -| **Keep Weekly** | Number of weekly snapshots to keep | -| **Keep Monthly** | Number of monthly snapshots to keep | -| **Keep Yearly** | Number of yearly snapshots to keep | +| Rule | Description | +| ---------------- | --------------------------------------- | +| **Keep Last** | Number of most recent snapshots to keep | +| **Keep Daily** | Number of daily snapshots to keep | +| **Keep Weekly** | Number of weekly snapshots to keep | +| **Keep Monthly** | Number of monthly snapshots to keep | +| **Keep Yearly** | Number of yearly snapshots to keep | ### Example retention policy @@ -71,7 +72,8 @@ A balanced policy for most workloads: - **Keep Yearly**: 1, one snapshot per year for long-term archival - Retention rules are additive. A snapshot that satisfies any rule is kept. Restic determines which snapshots best represent each time period automatically. + Retention rules are additive. A snapshot that satisfies any rule is kept. Restic determines which snapshots best + represent each time period automatically. ## Include and exclude paths @@ -92,7 +94,8 @@ Exclude files or directories that do not need to be backed up. Common patterns: - `*.log`, log files - Exclude patterns use Restic's pattern matching. Test your patterns after the first backup by browsing the snapshot contents to confirm the right files are included. + Exclude patterns use Restic's pattern matching. Test your patterns after the first backup by browsing the snapshot + contents to confirm the right files are included. ## Compression @@ -111,7 +114,8 @@ There are two ways to run a backup job: Both methods produce identical snapshots. Manual runs are useful for verifying a new backup job or creating an extra snapshot before a major change. - You can monitor backup progress in real time through the web interface. Zerobyte streams file counts, data processed, and upload progress as the backup runs. + You can monitor backup progress in real time through the web interface. Zerobyte streams file counts, data processed, + and upload progress as the backup runs. ## Backup webhooks @@ -191,7 +195,8 @@ Click **Restore** and wait for the operation to complete. - By default, restored files are placed back in their original location. This can overwrite current files. If you want to inspect the restored data before replacing anything, specify an alternate restore path. + By default, restored files are placed back in their original location. This can overwrite current files. If you want + to inspect the restored data before replacing anything, specify an alternate restore path. ## Mirror repositories @@ -224,17 +229,20 @@ The Zerobyte web interface provides visibility into each backup job: Run backups when system load is lowest to minimize impact on production workloads. Late night or early morning schedules (e.g., `0 2 * * *`) work well for most setups. - - Keeping every snapshot indefinitely wastes storage. A policy like 7 daily, 4 weekly, 6 monthly, and 1 yearly provides good coverage without excessive cost. - + + Keeping every snapshot indefinitely wastes storage. A policy like 7 daily, 4 weekly, 6 monthly, and 1 yearly provides + good coverage without excessive cost. + - - A backup is only valuable if you can restore from it. Periodically restore files to a test location to verify data integrity and familiarize yourself with the restore process. - + + A backup is only valuable if you can restore from it. Periodically restore files to a test location to verify data + integrity and familiarize yourself with the restore process. + - - Excluding directories like `node_modules/`, `.cache/`, and `*.tmp` files reduces backup size and duration without losing important data. - + + Excluding directories like `node_modules/`, `.cache/`, and `*.tmp` files reduces backup size and duration without + losing important data. + Check the backup dashboard regularly for failed jobs. Configure notifications so you are alerted immediately when a backup fails rather than discovering it during a restore. See the [Notifications guide](/docs/guides/notifications) for destination setup, event routing, and delivery examples. diff --git a/apps/docs/content/docs/concepts/organizations.mdx b/apps/docs/content/docs/concepts/organizations.mdx index bfcefc199..01694841c 100644 --- a/apps/docs/content/docs/concepts/organizations.mdx +++ b/apps/docs/content/docs/concepts/organizations.mdx @@ -20,14 +20,15 @@ Invited SSO users behave differently: Zerobyte creates their membership in the i ## Organization roles -| Role | What it means in practice | -| --- | --- | -| `member` | Standard organization member. Can use the organization, but cannot access organization-management actions such as member management or SSO settings. | -| `admin` | Can access the **Organization** settings tab, manage members, manage invitations, toggle SSO auto-linking, and download the active organization's recovery key. | -| `owner` | Has all admin capabilities and is additionally required for registering new SSO providers. Owners cannot be demoted or removed through the current organization member-management endpoints. | +| Role | What it means in practice | +| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `member` | Standard organization member. Can use the organization, but cannot access organization-management actions such as member management or SSO settings. | +| `admin` | Can access the **Organization** settings tab, manage members, manage invitations, toggle SSO auto-linking, and download the active organization's recovery key. | +| `owner` | Has all admin capabilities and is additionally required for registering new SSO providers. Owners cannot be demoted or removed through the current organization member-management endpoints. | - Zerobyte also has an instance-wide user role named `admin` for global tasks such as registration control and user management. That global role is separate from organization roles like `member`, `admin`, and `owner`. + Zerobyte also has an instance-wide user role named `admin` for global tasks such as registration control and user + management. That global role is separate from organization roles like `member`, `admin`, and `owner`. ## Current permission model @@ -37,7 +38,8 @@ Zerobyte does not currently provide fine-grained RBAC for backup operations. Aut The `member`, `admin`, and `owner` roles mainly control organization-management actions. For example, standard members cannot manage members, SSO settings, invitations, or recovery-key downloads, but they can still operate backup resources inside the organization. - Only add users to an organization if you are comfortable with them managing that organization's backup resources and using the storage, volume, and notification capabilities configured for the Zerobyte instance. + Only add users to an organization if you are comfortable with them managing that organization's backup resources and + using the storage, volume, and notification capabilities configured for the Zerobyte instance. ## Invitations diff --git a/apps/docs/content/docs/concepts/repositories.mdx b/apps/docs/content/docs/concepts/repositories.mdx index 2ceb2a2d1..17274a2f7 100644 --- a/apps/docs/content/docs/concepts/repositories.mdx +++ b/apps/docs/content/docs/concepts/repositories.mdx @@ -32,7 +32,7 @@ Store backups on a local disk or mounted filesystem. Zerobyte creates the reposi **Fields:** Name, Path. - Zerobyte automatically creates a subdirectory under the given path to keep each repository isolated. + Zerobyte automatically creates a subdirectory under the given path to keep each repository isolated. ### S3-compatible @@ -62,7 +62,7 @@ Store backups on Google Cloud Platform's object storage. **Fields:** Name, Bucket, Project ID, Service Account JSON. - The service account needs permissions to create, read, and delete objects in the target bucket. + The service account needs permissions to create, read, and delete objects in the target bucket. ### Azure Blob Storage @@ -82,7 +82,8 @@ Access any of rclone's 40+ supported cloud storage backends, including Dropbox, **Fields:** Name, Remote (as configured in your rclone config), Path. - Your rclone configuration file must be mounted into the Zerobyte container. Consumer services like Google Drive may have API rate limits and are not recommended for production backups. + Your rclone configuration file must be mounted into the Zerobyte container. Consumer services like Google Drive may + have API rate limits and are not recommended for production backups. ### REST server @@ -102,7 +103,8 @@ Store backups on remote servers accessible via SSH. **Fields:** Name, Host, Port, User, Path, SSH Private Key, Known Hosts or Skip Host Key Verification. - For production use, keep host key verification enabled and provide the server's known host key to prevent man-in-the-middle attacks. + For production use, keep host key verification enabled and provide the server's known host key to prevent + man-in-the-middle attacks. ## Connecting to an existing repository @@ -126,9 +128,10 @@ Compression is set when creating a repository and applies to all backups stored Restic automatically decides whether to compress each data chunk. This provides the best balance of speed and space savings for most workloads. - - No compression is applied. Use this when backing up data that is already compressed, such as video files, ZIP archives, or compressed images. Avoids wasting CPU on data that will not shrink further. - + + No compression is applied. Use this when backing up data that is already compressed, such as video files, ZIP + archives, or compressed images. Avoids wasting CPU on data that will not shrink further. + Maximum compression for the best space savings. Uses more CPU time during backups. Best suited for text-heavy data, source code, and database dumps where CPU is not a bottleneck. @@ -143,7 +146,8 @@ You can configure upload and download speed limits per repository to prevent bac - **Download limit**, controls the speed at which data is retrieved during restores or snapshot browsing. Helps manage egress costs on cloud providers. - Bandwidth limits are enforced at the application layer. Actual network usage may be slightly higher due to protocol overhead. + Bandwidth limits are enforced at the application layer. Actual network usage may be slightly higher due to protocol + overhead. ## Repository maintenance @@ -155,7 +159,9 @@ Zerobyte provides maintenance actions in the repository details page. A background maintenance run that unlocks the repository, runs `restic check`, and repairs the index if restic reports that repair is needed. - Doctor blocks other repository operations while it runs, but it does **not** currently perform a full `check --read-data` scrub and it does **not** prune unused data. See the [Repository maintenance guide](/docs/guides/repository-maintenance) for the exact behavior. + Doctor blocks other repository operations while it runs, but it does **not** currently perform a full `check + --read-data` scrub and it does **not** prune unused data. See the [Repository maintenance + guide](/docs/guides/repository-maintenance) for the exact behavior. ### Unlock @@ -163,7 +169,7 @@ A background maintenance run that unlocks the repository, runs `restic check`, a Removes stale locks from a repository. Use this when you see "repository is locked" errors after a crash or forced termination of a backup or restore operation. - Only run unlock if you are certain no other operations are actively accessing the repository. + Only run unlock if you are certain no other operations are actively accessing the repository. ### Statistics refresh @@ -206,17 +212,20 @@ The regular repository form in the UI currently expects the actual credential va Create distinct repositories for critical data, archive data, and test/development environments. This lets you apply different retention policies, storage tiers, and maintenance schedules to each class. - - Prevent backup operations from saturating your internet connection, especially during business hours. Even modest limits (e.g., 50 Mbps) can make a significant difference to other services sharing the same link. - + + Prevent backup operations from saturating your internet connection, especially during business hours. Even modest + limits (e.g., 50 Mbps) can make a significant difference to other services sharing the same link. + - - Schedule the Doctor operation monthly or quarterly for production repositories to verify data integrity, rebuild indexes, and reclaim space from deleted snapshots. - + + Schedule the Doctor operation monthly or quarterly for production repositories to verify data integrity, rebuild + indexes, and reclaim space from deleted snapshots. + - - Backups are only as good as your ability to restore from them. Periodically restore files from your repositories to verify that data can be recovered, recovery time meets your expectations, and restored data is complete. - + + Backups are only as good as your ability to restore from them. Periodically restore files from your repositories to + verify that data can be recovered, recovery time meets your expectations, and restored data is complete. + Keep an eye on repository status. A repository in an error state will cause backup jobs to fail. Set up notifications so you are alerted to issues before they affect your backup schedule. @@ -230,9 +239,9 @@ The regular repository form in the UI currently expects the actual credential va Learn how backup jobs create snapshots and manage retention - } href="/docs/guides/rclone"> - Set up rclone to access 40+ cloud storage backends - +} href="/docs/guides/rclone"> + Set up rclone to access 40+ cloud storage backends + } href="/docs/configuration"> Full reference for all environment variables and Docker settings diff --git a/apps/docs/content/docs/concepts/volumes.mdx b/apps/docs/content/docs/concepts/volumes.mdx index cfe7658e3..66c31461a 100644 --- a/apps/docs/content/docs/concepts/volumes.mdx +++ b/apps/docs/content/docs/concepts/volumes.mdx @@ -7,12 +7,14 @@ Volumes are the data sources you want to protect with Zerobyte. Each volume repr ## What are volumes? -A volume tells Zerobyte *where* your data lives. When you create a volume, you provide connection details (a path, a server address, credentials) and Zerobyte takes care of mounting that filesystem, monitoring its health, and making it available to your backup jobs. +A volume tells Zerobyte _where_ your data lives. When you create a volume, you provide connection details (a path, a server address, credentials) and Zerobyte takes care of mounting that filesystem, monitoring its health, and making it available to your backup jobs. Volumes support a range of protocols, from simple local directories to NFS shares, Windows/Samba file servers, WebDAV endpoints, SFTP connections, and cloud storage via rclone. Once a volume is mounted, you can browse its contents directly in the UI, assign it to one or more backup jobs, and let Zerobyte handle the rest. - Mounted remote volumes can expose translated metadata instead of the source system's original ownership and ACL model. Before relying on NFS, SMB, WebDAV, SFTP, or rclone volumes for metadata-sensitive backups, read [Mounted Shares, ACLs, and Metadata Fidelity](/docs/guides/mounted-shares-and-acls). + Mounted remote volumes can expose translated metadata instead of the source system's original ownership and ACL model. + Before relying on NFS, SMB, WebDAV, SFTP, or rclone volumes for metadata-sensitive backups, read [Mounted Shares, + ACLs, and Metadata Fidelity](/docs/guides/mounted-shares-and-acls). ## Supported volume types @@ -39,6 +41,7 @@ Zerobyte supports six volume types. Each one is configured through the web UI wh You must first mount the host directory into the Zerobyte container by adding it to the `volumes` section of your `compose.yaml`. For example, to back up `/home/user/photos` on the host, add `- /home/user/photos:/photos:ro` to your compose file, restart the container, then create a Directory volume in the UI with the path `/photos`. + @@ -64,6 +67,7 @@ Zerobyte supports six volume types. Each one is configured through the web UI wh NFS volumes require the `SYS_ADMIN` capability in your Docker container configuration. See the [Installation guide](/docs/installation) for details on enabling `cap_add: [SYS_ADMIN]`. + @@ -97,6 +101,7 @@ Zerobyte supports six volume types. Each one is configured through the web UI wh SMB volumes require the `SYS_ADMIN` capability in your Docker container configuration. See the [Installation guide](/docs/installation) for setup details. + @@ -124,6 +129,7 @@ Zerobyte supports six volume types. Each one is configured through the web UI wh WebDAV volumes require the `SYS_ADMIN` capability in your Docker container configuration. See the [Installation guide](/docs/installation) for setup details. + @@ -153,6 +159,7 @@ Zerobyte supports six volume types. Each one is configured through the web UI wh SFTP volumes require both the `SYS_ADMIN` capability and access to `/dev/fuse` in your Docker container configuration. See the [Installation guide](/docs/installation) for setup details. + @@ -180,6 +187,7 @@ Zerobyte supports six volume types. Each one is configured through the web UI wh Rclone volumes require both the `SYS_ADMIN` capability and access to `/dev/fuse` in your Docker container configuration. + @@ -236,7 +244,8 @@ This is a read-only view of the volume's contents, browsing does not modify any All six volume types support mounting in read-only mode. When enabled, Zerobyte can still read and back up files, but write operations are blocked at the filesystem level. - Read-only mode adds an extra layer of safety when backing up production data. It guarantees that the backup process cannot accidentally modify or delete source files. + Read-only mode adds an extra layer of safety when backing up production data. It guarantees that the backup process + cannot accidentally modify or delete source files. ## Credential security @@ -253,7 +262,8 @@ During provisioning, Zerobyte resolves these references on startup and stores th The regular volume form in the UI currently expects the actual credential value. Entering `env://...` or `file://...` there will not resolve it at runtime. - For a complete walkthrough of managing secrets through environment variables, Docker secrets, and provisioning files, see the [Provisioning guide](/docs/guides/provisioning). + For a complete walkthrough of managing secrets through environment variables, Docker secrets, and provisioning files, + see the [Provisioning guide](/docs/guides/provisioning). ## Best practices @@ -267,18 +277,21 @@ The regular volume form in the UI currently expects the actual credential value. - `accounting-smb-share` Avoid generic names like `volume1` or `backup`, they become confusing as you add more volumes. - - - Network shares can experience transient failures from server restarts, brief network outages, or DNS hiccups. Keep auto-remount enabled so Zerobyte recovers on its own and your scheduled backups are not disrupted. + + Network shares can experience transient failures from server restarts, brief network outages, or DNS hiccups. Keep + auto-remount enabled so Zerobyte recovers on its own and your scheduled backups are not disrupted. + + Mounting volumes in read-only mode prevents any chance of the backup process modifying source data. This is especially important for: - Live production systems - Archive or compliance data - Shared storage used by multiple applications + diff --git a/apps/docs/content/docs/configuration.mdx b/apps/docs/content/docs/configuration.mdx index bbf8ee76f..392657dec 100644 --- a/apps/docs/content/docs/configuration.mdx +++ b/apps/docs/content/docs/configuration.mdx @@ -9,41 +9,43 @@ Zerobyte is configured through environment variables and Docker Compose settings ### Required -| Variable | Description | Example | -|----------|-------------|---------| -| `BASE_URL` | The URL where Zerobyte will be accessed. Controls cookie security and CORS behavior. | `http://localhost:4096` or `https://zerobyte.example.com` | -| `APP_SECRET` | Random secret key (32+ characters) used to encrypt sensitive data in the database. Generate with `openssl rand -hex 32`. Set this or `APP_SECRET_FILE`, but not both. | `94bad46e...c66e25d5c2b` | -| `APP_SECRET_FILE` | Alternative to `APP_SECRET`. Path to a file containing the app secret, useful with Docker or Kubernetes secrets. Set this or `APP_SECRET`, but not both. | `/run/secrets/app_secret` | +| Variable | Description | Example | +| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| `BASE_URL` | The URL where Zerobyte will be accessed. Controls cookie security and CORS behavior. | `http://localhost:4096` or `https://zerobyte.example.com` | +| `APP_SECRET` | Random secret key (32+ characters) used to encrypt sensitive data in the database. Generate with `openssl rand -hex 32`. Set this or `APP_SECRET_FILE`, but not both. | `94bad46e...c66e25d5c2b` | +| `APP_SECRET_FILE` | Alternative to `APP_SECRET`. Path to a file containing the app secret, useful with Docker or Kubernetes secrets. Set this or `APP_SECRET`, but not both. | `/run/secrets/app_secret` | - Never share or commit your `APP_SECRET`. If you lose it, encrypted data (credentials stored for volumes and repositories) cannot be recovered. + Never share or commit your `APP_SECRET`. If you lose it, encrypted data (credentials stored for volumes and + repositories) cannot be recovered. - Zerobyte reads the contents of `APP_SECRET_FILE`, trims surrounding whitespace and newlines, and applies the same 32-256 character requirement as `APP_SECRET`. + Zerobyte reads the contents of `APP_SECRET_FILE`, trims surrounding whitespace and newlines, and applies the same + 32-256 character requirement as `APP_SECRET`. ### Recommended -| Variable | Description | Default | -|----------|-------------|---------| -| `TZ` | Timezone for the container. **Important for accurate backup scheduling.** | `UTC` | +| Variable | Description | Default | +| -------- | ------------------------------------------------------------------------- | ------- | +| `TZ` | Timezone for the container. **Important for accurate backup scheduling.** | `UTC` | ### Optional -| Variable | Description | Default | -|----------|-------------|---------| -| `PORT` | Port the web interface and API listen on inside the container. | `4096` | -| `RESTIC_HOSTNAME` | Hostname used by Restic when creating snapshots. Automatically detected if a custom hostname is set in Docker. | `zerobyte` | -| `GOMAXPROCS` | Optional positive integer passed to Restic processes to limit CPU scheduler threads. See [Performance tuning](/docs/guides/performance-tuning). | Restic default | -| `TRUST_PROXY` | Set to `true` to trust `X-Forwarded-For` headers from a reverse proxy. | `false` | -| `TRUSTED_ORIGINS` | Comma-separated list of additional trusted origins for CORS. | (none) | -| `WEBHOOK_ALLOWED_ORIGINS` | Comma-separated list of HTTP origins allowed for backup webhooks and outbound HTTP notification destinations. | (none) | -| `WEBHOOK_TIMEOUT` | Timeout for backup webhook requests in seconds. | `60` | -| `LOG_LEVEL` | Logging verbosity: `debug`, `info`, `warn`, `error`. | `info` | -| `SERVER_IDLE_TIMEOUT` | Server idle timeout in seconds. | `60` | -| `RCLONE_CONFIG_DIR` | Path to the rclone config directory inside the container. | `/root/.config/rclone` | -| `PROVISIONING_PATH` | Path to a JSON file with operator-managed repositories and volumes to sync at startup. | (none) | +| Variable | Description | Default | +| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | +| `PORT` | Port the web interface and API listen on inside the container. | `4096` | +| `RESTIC_HOSTNAME` | Hostname used by Restic when creating snapshots. Automatically detected if a custom hostname is set in Docker. | `zerobyte` | +| `GOMAXPROCS` | Optional positive integer passed to Restic processes to limit CPU scheduler threads. See [Performance tuning](/docs/guides/performance-tuning). | Restic default | +| `TRUST_PROXY` | Set to `true` to trust `X-Forwarded-For` headers from a reverse proxy. | `false` | +| `TRUSTED_ORIGINS` | Comma-separated list of additional trusted origins for CORS. | (none) | +| `WEBHOOK_ALLOWED_ORIGINS` | Comma-separated list of HTTP origins allowed for backup webhooks and outbound HTTP notification destinations. | (none) | +| `WEBHOOK_TIMEOUT` | Timeout for backup webhook requests in seconds. | `60` | +| `LOG_LEVEL` | Logging verbosity: `debug`, `info`, `warn`, `error`. | `info` | +| `SERVER_IDLE_TIMEOUT` | Server idle timeout in seconds. | `60` | +| `RCLONE_CONFIG_DIR` | Path to the rclone config directory inside the container. | `/root/.config/rclone` | +| `PROVISIONING_PATH` | Path to a JSON file with operator-managed repositories and volumes to sync at startup. | (none) | ## Using APP_SECRET_FILE @@ -88,26 +90,28 @@ volumes: ``` - **Do not** point `/var/lib/zerobyte` to a network share. This causes permission issues and severe performance degradation. Always use local storage. + **Do not** point `/var/lib/zerobyte` to a network share. This causes permission issues and severe performance + degradation. Always use local storage. **TrueNAS users**: The `/var/lib` path is ephemeral and resets during system upgrades. Create a dedicated ZFS dataset instead: - ```yaml - volumes: - - /mnt/tank/docker/zerobyte:/var/lib/zerobyte - ``` +```yaml +volumes: + - /mnt/tank/docker/zerobyte:/var/lib/zerobyte +``` + #### Additional Volume Mounts -| Mount | Purpose | -|-------|---------| -| `/path/to/data:/data:ro` | Mount host directories for local directory backups (use `:ro` for read-only) | -| `~/.config/rclone:/root/.config/rclone:ro` | Mount rclone configuration for rclone-based repositories and volumes | -| `~/.ssh:/root/.ssh:ro` | Mount SSH keys for rclone SFTP remotes that use `key_file` | -| `./provisioning.json:/config/provisioning.json:ro` | Mount a provisioning file for operator-managed resources | +| Mount | Purpose | +| -------------------------------------------------- | ---------------------------------------------------------------------------- | +| `/path/to/data:/data:ro` | Mount host directories for local directory backups (use `:ro` for read-only) | +| `~/.config/rclone:/root/.config/rclone:ro` | Mount rclone configuration for rclone-based repositories and volumes | +| `~/.ssh:/root/.ssh:ro` | Mount SSH keys for rclone SFTP remotes that use `key_file` | +| `./provisioning.json:/config/provisioning.json:ro` | Mount a provisioning file for operator-managed resources | ### Container Capabilities @@ -154,33 +158,36 @@ ports: The `BASE_URL` determines how authentication cookies behave: -| BASE_URL | Cookie Behavior | -|----------|----------------| -| `http://192.168.1.50:4096` | Secure cookies **disabled**, allows login over HTTP | -| `http://localhost:4096` | Secure cookies **disabled**, allows local development | -| `https://zerobyte.example.com` | Secure cookies **enabled**, requires HTTPS | +| BASE_URL | Cookie Behavior | +| ------------------------------ | ----------------------------------------------------- | +| `http://192.168.1.50:4096` | Secure cookies **disabled**, allows login over HTTP | +| `http://localhost:4096` | Secure cookies **disabled**, allows local development | +| `https://zerobyte.example.com` | Secure cookies **enabled**, requires HTTPS | - If `BASE_URL` starts with `https://`, browsers will only send auth cookies over HTTPS connections. Plain HTTP access may show the login page but authentication will fail. + If `BASE_URL` starts with `https://`, browsers will only send auth cookies over HTTPS connections. Plain HTTP access + may show the login page but authentication will fail. - `TRUSTED_ORIGINS` only allows additional origins for CORS. It does **not** disable secure cookies or make HTTP access work when `BASE_URL` is HTTPS. + `TRUSTED_ORIGINS` only allows additional origins for CORS. It does **not** disable secure cookies or make HTTP access + work when `BASE_URL` is HTTPS. ## Secret References When provisioning volumes or repositories, sensitive fields support secret references: -| Reference | Resolves From | Example | -|-----------|--------------|---------| -| `env://VARIABLE_NAME` | Container environment variable | `env://S3_SECRET_KEY` | -| `file://secret_name` | Docker secret at `/run/secrets/secret_name` | `file://smb_password` | +| Reference | Resolves From | Example | +| --------------------- | ------------------------------------------- | --------------------- | +| `env://VARIABLE_NAME` | Container environment variable | `env://S3_SECRET_KEY` | +| `file://secret_name` | Docker secret at `/run/secrets/secret_name` | `file://smb_password` | This allows you to keep credentials in your deployment configuration rather than writing them directly into the provisioning file. - The standard volume and repository forms in the UI currently store the value you enter, encrypted at rest. `env://` and `file://` references are only resolved during provisioning. + The standard volume and repository forms in the UI currently store the value you enter, encrypted at rest. `env://` + and `file://` references are only resolved during provisioning. ### Example with Docker Secrets @@ -201,6 +208,7 @@ secrets: ``` In the provisioning file, reference these as: + - Access Key: `env://S3_ACCESS_KEY` - Secret Key: `file://s3_secret_key` @@ -215,7 +223,8 @@ docker compose logs -f zerobyte ``` - Always check the [release notes](https://github.com/nicotsx/zerobyte/releases) before updating, especially for v0.x.x versions which may include breaking changes. + Always check the [release notes](https://github.com/nicotsx/zerobyte/releases) before updating, especially for v0.x.x + versions which may include breaking changes. import { Step, Steps } from "fumadocs-ui/components/steps"; diff --git a/apps/docs/content/docs/guides/3-2-1-backup-strategy.mdx b/apps/docs/content/docs/guides/3-2-1-backup-strategy.mdx index ab2b8b39b..a50496fb6 100644 --- a/apps/docs/content/docs/guides/3-2-1-backup-strategy.mdx +++ b/apps/docs/content/docs/guides/3-2-1-backup-strategy.mdx @@ -19,13 +19,13 @@ In Zerobyte, that usually looks like this: A single backup copy can still fail for the same reason as the original data. The 3-2-1 rule reduces correlated failure, so one bad delete, dead disk, provider issue, or site-level incident is less likely to wipe out every copy at once. -| Failure scenario | What goes wrong without 3-2-1 | How 3-2-1 helps | -| --- | --- | --- | -| Accidental deletion or bad change | Your only backup may be too recent or incomplete | Older snapshots give you a clean restore point | -| Disk or NAS failure | Data and backup can be lost together | A second storage system still has the data | -| Ransomware or host compromise | Local storage may be affected too | An offsite copy gives you another recovery path | -| Fire, theft, or power event | Everything in one building can disappear together | The offsite copy survives | -| Provider or account problem | One backend outage blocks restore | Different backends reduce that single point of failure | +| Failure scenario | What goes wrong without 3-2-1 | How 3-2-1 helps | +| --------------------------------- | ------------------------------------------------- | ------------------------------------------------------ | +| Accidental deletion or bad change | Your only backup may be too recent or incomplete | Older snapshots give you a clean restore point | +| Disk or NAS failure | Data and backup can be lost together | A second storage system still has the data | +| Ransomware or host compromise | Local storage may be affected too | An offsite copy gives you another recovery path | +| Fire, theft, or power event | Everything in one building can disappear together | The offsite copy survives | +| Provider or account problem | One backend outage blocks restore | Different backends reduce that single point of failure | Zerobyte fits this strategy well because it already gives you the building blocks: @@ -36,14 +36,16 @@ Zerobyte fits this strategy well because it already gives you the building block ## How 3-2-1 maps to Zerobyte -| 3-2-1 element | Zerobyte example | -| --- | --- | -| **3 copies** | Live data + primary repository + mirror repository | +| 3-2-1 element | Zerobyte example | +| ------------------------------- | ------------------------------------------------------------------------------------------- | +| **3 copies** | Live data + primary repository + mirror repository | | **2 different storage systems** | Local disk or NAS for the primary copy, object storage or remote server for the second copy | -| **1 offsite copy** | A repository in another building, region, or provider | +| **1 offsite copy** | A repository in another building, region, or provider | - Historically, the "2" in 3-2-1 meant two different kinds of media. In modern setups, different storage systems and failure domains matter more than literal media type. A local disk plus cloud object storage is a strong practical interpretation. + Historically, the "2" in 3-2-1 meant two different kinds of media. In modern setups, different storage systems and + failure domains matter more than literal media type. A local disk plus cloud object storage is a strong practical + interpretation. ## How to do it with Zerobyte @@ -118,11 +120,11 @@ Use **Backup now** to create the first snapshot, then test a restore to a non-pr ## Example Zerobyte layout -| Copy | Example | -| --- | --- | -| Live data | `/srv/data` on your server | -| Local backup copy | Local repository on `/mnt/backup-disk/zerobyte` | -| Offsite backup copy | Cloudflare R2 bucket or remote SFTP repository | +| Copy | Example | +| ------------------- | ----------------------------------------------- | +| Live data | `/srv/data` on your server | +| Local backup copy | Local repository on `/mnt/backup-disk/zerobyte` | +| Offsite backup copy | Cloudflare R2 bucket or remote SFTP repository | One backup job can then write to the local repository and mirror each successful snapshot to the offsite repository. diff --git a/apps/docs/content/docs/guides/backup-webhooks.mdx b/apps/docs/content/docs/guides/backup-webhooks.mdx index 805b7965c..03f6102b1 100644 --- a/apps/docs/content/docs/guides/backup-webhooks.mdx +++ b/apps/docs/content/docs/guides/backup-webhooks.mdx @@ -11,15 +11,16 @@ Backup webhooks are configured per backup job in the **Advanced** section. They Zerobyte supports two lifecycle hooks: -| Hook | When it runs | Failure behavior | -| --- | --- | --- | -| **Pre-backup webhook** | Before Restic starts reading the volume | A failed request stops the backup before Restic runs | +| Hook | When it runs | Failure behavior | +| ----------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------ | +| **Pre-backup webhook** | Before Restic starts reading the volume | A failed request stops the backup before Restic runs | | **Post-backup webhook** | After Restic finishes, fails, or is cancelled | A failed request is recorded with the final result; a clean backup becomes a warning | Each hook sends a `POST` request. A response with a `2xx` status code is treated as success. Redirects are not followed. Webhook requests time out after `WEBHOOK_TIMEOUT` seconds, which defaults to 60 seconds. - Every backup webhook URL must use an origin listed in `WEBHOOK_ALLOWED_ORIGINS`. The origin is the scheme, hostname, and port, such as `http://host.docker.internal:9000`. + Every backup webhook URL must use an origin listed in `WEBHOOK_ALLOWED_ORIGINS`. The origin is the scheme, hostname, + and port, such as `http://host.docker.internal:9000`. ## Request body @@ -30,12 +31,12 @@ Pre-backup webhook example: ```json { - "phase": "pre", - "event": "backup.pre", - "jobId": "job_...", - "scheduleId": "sched_...", - "organizationId": "org_...", - "sourcePath": "/data" + "phase": "pre", + "event": "backup.pre", + "jobId": "job_...", + "scheduleId": "sched_...", + "organizationId": "org_...", + "sourcePath": "/data" } ``` @@ -43,13 +44,13 @@ Post-backup webhook example: ```json { - "phase": "post", - "event": "backup.post", - "jobId": "job_...", - "scheduleId": "sched_...", - "organizationId": "org_...", - "sourcePath": "/data", - "status": "success" + "phase": "post", + "event": "backup.post", + "jobId": "job_...", + "scheduleId": "sched_...", + "organizationId": "org_...", + "sourcePath": "/data", + "status": "success" } ``` @@ -99,7 +100,8 @@ This example runs [`adnanh/webhook`](https://github.com/adnanh/webhook) on the D - Post-backup hook starts the `postgres` container again. - Stopping a database container is a blunt consistency strategy. Use it only when a short outage is acceptable. For larger databases, prefer native database dumps, replication snapshots, or storage-level snapshots. + Stopping a database container is a blunt consistency strategy. Use it only when a short outage is acceptable. For + larger databases, prefer native database dumps, replication snapshots, or storage-level snapshots. ### 1. Install webhook on the Docker host @@ -165,40 +167,40 @@ Create `/opt/zerobyte-hooks/hooks.json`: ```json [ - { - "id": "stop-postgres", - "execute-command": "/opt/zerobyte-hooks/stop-postgres.sh", - "command-working-directory": "/opt/zerobyte-hooks", - "http-methods": ["POST"], - "include-command-output-in-response": true, - "trigger-rule": { - "match": { - "type": "value", - "value": "replace-with-a-long-random-secret", - "parameter": { - "source": "header", - "name": "X-Zerobyte-Hook-Secret" - } - } - } - }, - { - "id": "start-postgres", - "execute-command": "/opt/zerobyte-hooks/start-postgres.sh", - "command-working-directory": "/opt/zerobyte-hooks", - "http-methods": ["POST"], - "include-command-output-in-response": true, - "trigger-rule": { - "match": { - "type": "value", - "value": "replace-with-a-long-random-secret", - "parameter": { - "source": "header", - "name": "X-Zerobyte-Hook-Secret" - } - } - } - } + { + "id": "stop-postgres", + "execute-command": "/opt/zerobyte-hooks/stop-postgres.sh", + "command-working-directory": "/opt/zerobyte-hooks", + "http-methods": ["POST"], + "include-command-output-in-response": true, + "trigger-rule": { + "match": { + "type": "value", + "value": "replace-with-a-long-random-secret", + "parameter": { + "source": "header", + "name": "X-Zerobyte-Hook-Secret" + } + } + } + }, + { + "id": "start-postgres", + "execute-command": "/opt/zerobyte-hooks/start-postgres.sh", + "command-working-directory": "/opt/zerobyte-hooks", + "http-methods": ["POST"], + "include-command-output-in-response": true, + "trigger-rule": { + "match": { + "type": "value", + "value": "replace-with-a-long-random-secret", + "parameter": { + "source": "header", + "name": "X-Zerobyte-Hook-Secret" + } + } + } + } ] ``` diff --git a/apps/docs/content/docs/guides/mounted-shares-and-acls.mdx b/apps/docs/content/docs/guides/mounted-shares-and-acls.mdx index 677987433..d334e7d31 100644 --- a/apps/docs/content/docs/guides/mounted-shares-and-acls.mdx +++ b/apps/docs/content/docs/guides/mounted-shares-and-acls.mdx @@ -10,7 +10,8 @@ Where things get a little more nuanced is permissions and other filesystem detai Backing up a mounted share does **not** remove permissions from the source. - The main question is simpler than it sounds: how much of the source system's permission information can the mounted view actually show to the backup? +The main question is simpler than it sounds: how much of the source system's permission information can the mounted view actually show to the backup? + ## The short version @@ -70,14 +71,14 @@ Common examples where permissions matter more: ## Backend comparison -| Backend | Good fit for | Permission fidelity | What to keep in mind | -| --- | --- | --- | --- | -| **Directory** | Local data and bind-mounted host paths | **Best** | Best choice when you want the backup and restore to stay as close as possible to the original filesystem | -| **NFS** | Linux and NAS shares | **Usually good** | Often a strong remote option, but ownership mapping can still vary between systems | -| **SMB/CIFS** | Windows shares and Samba servers | **Mixed to good** | Often the best remote option when permission details matter, but still not a perfect copy of the original Windows permission model | -| **WebDAV** | Nextcloud, ownCloud, and content-focused remote access | **Limited** | Great for backing up files, less reliable for exact permission replication | -| **SFTP** | Secure access to remote Linux servers | **Limited** | Good for content backup, but advanced permission details are often reduced | -| **Rclone** | Cloud providers and object storage | **Lowest** | Best treated as a content source, not as a full filesystem replica | +| Backend | Good fit for | Permission fidelity | What to keep in mind | +| ------------- | ------------------------------------------------------ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| **Directory** | Local data and bind-mounted host paths | **Best** | Best choice when you want the backup and restore to stay as close as possible to the original filesystem | +| **NFS** | Linux and NAS shares | **Usually good** | Often a strong remote option, but ownership mapping can still vary between systems | +| **SMB/CIFS** | Windows shares and Samba servers | **Mixed to good** | Often the best remote option when permission details matter, but still not a perfect copy of the original Windows permission model | +| **WebDAV** | Nextcloud, ownCloud, and content-focused remote access | **Limited** | Great for backing up files, less reliable for exact permission replication | +| **SFTP** | Secure access to remote Linux servers | **Limited** | Good for content backup, but advanced permission details are often reduced | +| **Rclone** | Cloud providers and object storage | **Lowest** | Best treated as a content source, not as a full filesystem replica | ## What each backend is best at @@ -178,5 +179,6 @@ If the original data lives somewhere else, the most reliable approach is usually The message here is not "avoid mounted shares." They are useful and often exactly the right choice. - The simpler rule is: if file contents matter most, mounted shares are often great. If you want the closest possible replica of the original filesystem, a local **Directory** volume is still the best option. +The simpler rule is: if file contents matter most, mounted shares are often great. If you want the closest possible replica of the original filesystem, a local **Directory** volume is still the best option. + diff --git a/apps/docs/content/docs/guides/notifications.mdx b/apps/docs/content/docs/guides/notifications.mdx index 2aaf0f5bf..62e3d3593 100644 --- a/apps/docs/content/docs/guides/notifications.mdx +++ b/apps/docs/content/docs/guides/notifications.mdx @@ -18,26 +18,25 @@ You create destinations under **Notifications**. You route them per backup sched - The **Test** button sends a generic test message for that destination. - Per-schedule routing supports four events: `start`, `success`, `warning`, and `failure`. - - Create destinations once, then reuse them across as many backup schedules as you want. - +Create destinations once, then reuse them across as many backup schedules as you want. ## Supported destination types -| Type | Best for | Key fields | -| --- | --- | --- | -| `Email (SMTP)` | Existing mail infrastructure, multiple recipients, ticketing aliases | SMTP host, port, sender, recipients, optional auth, TLS | -| `Slack` | Team chat channels | Webhook URL, optional bot username, optional icon emoji | -| `Discord` | Server channels or threads | Webhook URL, optional username, optional avatar URL, optional thread ID | -| `Gotify` | Self-hosted mobile or desktop push | Server URL, app token, priority, optional path | -| `ntfy` | Lightweight publish-subscribe notifications | Topic, optional server URL, optional auth, priority | -| `Pushover` | Personal mobile alerts | User key, API token, optional devices, priority | -| `Telegram` | Group or direct chat notifications | Bot token, chat ID, optional thread ID | -| `Generic Webhook` | Arbitrary HTTP endpoints and automation systems | URL, method, headers, content type, optional JSON template keys | -| `Custom (Shoutrrr URL)` | Power users or services not exposed by the built-in forms | Raw Shoutrrr URL | +| Type | Best for | Key fields | +| ----------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `Email (SMTP)` | Existing mail infrastructure, multiple recipients, ticketing aliases | SMTP host, port, sender, recipients, optional auth, TLS | +| `Slack` | Team chat channels | Webhook URL, optional bot username, optional icon emoji | +| `Discord` | Server channels or threads | Webhook URL, optional username, optional avatar URL, optional thread ID | +| `Gotify` | Self-hosted mobile or desktop push | Server URL, app token, priority, optional path | +| `ntfy` | Lightweight publish-subscribe notifications | Topic, optional server URL, optional auth, priority | +| `Pushover` | Personal mobile alerts | User key, API token, optional devices, priority | +| `Telegram` | Group or direct chat notifications | Bot token, chat ID, optional thread ID | +| `Generic Webhook` | Arbitrary HTTP endpoints and automation systems | URL, method, headers, content type, optional JSON template keys | +| `Custom (Shoutrrr URL)` | Power users or services not exposed by the built-in forms | Raw Shoutrrr URL | - Outbound HTTP notification destinations must use an origin listed in `WEBHOOK_ALLOWED_ORIGINS`. This applies to Generic Webhook, Gotify, self-hosted ntfy servers, and Custom Shoutrrr URLs that resolve to a custom HTTP endpoint. + Outbound HTTP notification destinations must use an origin listed in `WEBHOOK_ALLOWED_ORIGINS`. This applies to + Generic Webhook, Gotify, self-hosted ntfy servers, and Custom Shoutrrr URLs that resolve to a custom HTTP endpoint. ## Which type should I use? @@ -72,12 +71,12 @@ Each assignment is independent. One schedule can send failures to Email, warning ## Backup event meanings -| Event | When Zerobyte sends it | What is included | -| --- | --- | --- | -| `start` | The backup begins running | Volume name, repository name, and schedule name | -| `success` | The backup completes cleanly | Volume, repository, schedule, and backup summary details when available | -| `warning` | The backup completes with warnings instead of a clean success | Success details plus warning text when available | -| `failure` | The backup fails validation or execution | Volume, repository, schedule, and the error text | +| Event | When Zerobyte sends it | What is included | +| --------- | ------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `start` | The backup begins running | Volume name, repository name, and schedule name | +| `success` | The backup completes cleanly | Volume, repository, schedule, and backup summary details when available | +| `warning` | The backup completes with warnings instead of a clean success | Success details plus warning text when available | +| `failure` | The backup fails validation or execution | Volume, repository, schedule, and the error text | ## Type reference @@ -126,6 +125,7 @@ Each assignment is independent. One schedule can send failures to Email, warning To Addresses: ops@example.com, backups@example.com Use TLS: On ``` + @@ -145,6 +145,7 @@ Each assignment is independent. One schedule can send failures to Email, warning Bot Username: Zerobyte Icon Emoji: :floppy_disk: ``` + @@ -156,6 +157,7 @@ Each assignment is independent. One schedule can send failures to Email, warning - `Bot Username` (optional) - `Avatar URL` (optional) - `Thread ID` (optional) + @@ -171,6 +173,7 @@ Each assignment is independent. One schedule can send failures to Email, warning **Notes** - Add the Gotify server origin, such as `https://gotify.example.com`, to `WEBHOOK_ALLOWED_ORIGINS`. + @@ -200,6 +203,7 @@ Each assignment is independent. One schedule can send failures to Email, warning Access token: Priority: high ``` + @@ -211,6 +215,7 @@ Each assignment is independent. One schedule can send failures to Email, warning - `API Token` - `Devices` (optional) - `Priority` as `-1`, `0`, or `1` + @@ -230,6 +235,7 @@ Each assignment is independent. One schedule can send failures to Email, warning Chat ID: -1231234567890 Thread ID: 3 ``` + @@ -265,6 +271,7 @@ Each assignment is independent. One schedule can send failures to Email, warning Title Key: title Message Key: message ``` + @@ -283,18 +290,19 @@ Each assignment is independent. One schedule can send failures to Email, warning ```text slack://hook:T000-B000-XXX@webhook?username=Zerobyte ``` + ## Practical routing patterns -| Goal | Suggested routing | -| --- | --- | -| Only wake someone up for real problems | `failure` to Email or Pushover | -| Keep the team informed without noise | `warning` and `failure` to Slack or Discord | -| Audit every run | `start`, `success`, `warning`, and `failure` to Email or Generic Webhook | -| Mobile-first personal alerting | `failure` to Telegram, ntfy, Gotify, or Pushover | -| Feed another incident or workflow system | `failure` and optionally `warning` to Generic Webhook | +| Goal | Suggested routing | +| ---------------------------------------- | ------------------------------------------------------------------------ | +| Only wake someone up for real problems | `failure` to Email or Pushover | +| Keep the team informed without noise | `warning` and `failure` to Slack or Discord | +| Audit every run | `start`, `success`, `warning`, and `failure` to Email or Generic Webhook | +| Mobile-first personal alerting | `failure` to Telegram, ntfy, Gotify, or Pushover | +| Feed another incident or workflow system | `failure` and optionally `warning` to Generic Webhook | ## Related docs diff --git a/apps/docs/content/docs/guides/oidc-sso.mdx b/apps/docs/content/docs/guides/oidc-sso.mdx index 476d8267b..badc7ab8e 100644 --- a/apps/docs/content/docs/guides/oidc-sso.mdx +++ b/apps/docs/content/docs/guides/oidc-sso.mdx @@ -6,7 +6,7 @@ description: Register OIDC providers, control access with invitations, and under Zerobyte's current SSO implementation is organization-scoped and OIDC-based. You register providers under **Settings > Organization > Single Sign-On**, or directly at `/settings/sso/new`. - Zerobyte SSO is invite-oriented. Enabling auto-linking does **not** mean "anyone with that email can join". + Zerobyte SSO is invite-oriented. Enabling auto-linking does **not** mean "anyone with that email can join". ## What Zerobyte supports @@ -19,15 +19,15 @@ Zerobyte's current SSO implementation is organization-scoped and OIDC-based. You ## Required values -| Zerobyte field | What it means | Example | -| --- | --- | --- | -| `Provider ID` | Stable unique identifier for this provider. It is used in the callback URL and is what users see on the login button. | `acme-oidc` | -| `Organization Domain` | Domain recorded with the provider and used for provider discovery metadata. | `example.com` | -| `Issuer URL` | The OIDC issuer published by your identity provider. | `https://idp.example.com/realms/acme` | -| `Discovery Endpoint` | The provider's `.well-known/openid-configuration` URL. | `https://idp.example.com/.well-known/openid-configuration` | -| `Client ID` | OIDC client identifier from your IdP. | `zerobyte` | -| `Client Secret` | OIDC client secret from your IdP. | `(secret)` | -| `Link matching emails to existing accounts` | Per-provider trust switch for matching an existing Zerobyte account by email. | `Off` by default | +| Zerobyte field | What it means | Example | +| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | +| `Provider ID` | Stable unique identifier for this provider. It is used in the callback URL and is what users see on the login button. | `acme-oidc` | +| `Organization Domain` | Domain recorded with the provider and used for provider discovery metadata. | `example.com` | +| `Issuer URL` | The OIDC issuer published by your identity provider. | `https://idp.example.com/realms/acme` | +| `Discovery Endpoint` | The provider's `.well-known/openid-configuration` URL. | `https://idp.example.com/.well-known/openid-configuration` | +| `Client ID` | OIDC client identifier from your IdP. | `zerobyte` | +| `Client Secret` | OIDC client secret from your IdP. | `(secret)` | +| `Link matching emails to existing accounts` | Per-provider trust switch for matching an existing Zerobyte account by email. | `Off` by default | ## Callback URL @@ -57,14 +57,14 @@ https://backup.example.com/api/auth/sso/callback/acme-oidc The important rule is that Zerobyte checks **organization membership** and **pending invitations** in addition to whatever your identity provider says. -| Situation | Result | Why | -| --- | --- | --- | -| Brand-new user, no membership, no invitation | Blocked | There is no valid organization membership or pending invitation. | -| Brand-new user with a pending invitation | Allowed | Zerobyte creates the membership on first successful SSO login and marks the invitation as `accepted`. | -| Existing local account already belongs to the organization, auto-linking is `off` | Blocked with an account-linking error | The provider is not trusted to auto-link by email yet. | -| Existing local account already belongs to the organization, auto-linking is `on` | Allowed | The provider is trusted for matching-email account linking inside that organization. | +| Situation | Result | Why | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| Brand-new user, no membership, no invitation | Blocked | There is no valid organization membership or pending invitation. | +| Brand-new user with a pending invitation | Allowed | Zerobyte creates the membership on first successful SSO login and marks the invitation as `accepted`. | +| Existing local account already belongs to the organization, auto-linking is `off` | Blocked with an account-linking error | The provider is not trusted to auto-link by email yet. | +| Existing local account already belongs to the organization, auto-linking is `on` | Allowed | The provider is trusted for matching-email account linking inside that organization. | | Existing local account has the same email, has a pending invitation, but is **not already a member** of the organization | Blocked with an account-linking error | Zerobyte refuses to merge an existing account that is outside the organization, even if the email matches and there is a pending invitation. | -| User was invited before, signed in once, was later removed from the organization, then tries SSO again | Blocked | The old invitation remains `accepted`; it is not reopened automatically after removal. | +| User was invited before, signed in once, was later removed from the organization, then tries SSO again | Blocked | The old invitation remains `accepted`; it is not reopened automatically after removal. | In practice, an **eligible local account** means an account that already belongs to the organization you are signing into. A matching email plus a pending invitation is **not** enough to merge an unrelated existing account. @@ -79,7 +79,9 @@ In practice, an **eligible local account** means an account that already belongs The invitation UI lets you assign `member`, `admin`, or `owner` at invite time. The accepted membership is created with that invited role. - Zerobyte does not currently provide fine-grained RBAC for backup operations. Invited members can operate backup resources inside the organization. Roles mainly restrict organization-management actions such as SSO settings, invitations, member management, and recovery-key downloads. + Zerobyte does not currently provide fine-grained RBAC for backup operations. Invited members can operate backup + resources inside the organization. Roles mainly restrict organization-management actions such as SSO settings, + invitations, member management, and recovery-key downloads. ## Auto-linking semantics @@ -93,18 +95,19 @@ The invitation UI lets you assign `member`, `admin`, or `owner` at invite time. - Leaving it off is the safest default for new rollouts. - The safest mental model is: auto-linking can help an already eligible account add SSO, but it is not an open-enrollment feature. + The safest mental model is: auto-linking can help an already eligible account add SSO, but it is not an + open-enrollment feature. ## Common failure cases -| What the user sees | Typical cause | What to do | -| --- | --- | --- | -| `Access is invite-only. Ask an organization admin to send you an invitation before signing in with SSO.` | No pending invitation, invitation expired, invitation was cancelled, or the user was removed after an earlier accepted invite | Create a new pending invitation or restore membership before retrying. | -| `SSO sign-in was blocked because this email already belongs to another user in this instance.` | Zerobyte found an existing account with the same email, but that account is not eligible for auto-linking with this provider | Confirm whether the account already belongs to the organization and whether auto-linking should be enabled on this trusted provider. | -| `Your identity provider did not mark your email as verified.` | The IdP did not send a verified email claim | Fix email verification in the IdP before retrying. | -| `You have been banned from this application.` | The user is banned at the application level | Remove the ban or use a different account. | -| `SSO authentication failed. Please try again.` | Generic provider or callback failure | Check IdP redirect URI, client credentials, issuer, and discovery endpoint. | +| What the user sees | Typical cause | What to do | +| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `Access is invite-only. Ask an organization admin to send you an invitation before signing in with SSO.` | No pending invitation, invitation expired, invitation was cancelled, or the user was removed after an earlier accepted invite | Create a new pending invitation or restore membership before retrying. | +| `SSO sign-in was blocked because this email already belongs to another user in this instance.` | Zerobyte found an existing account with the same email, but that account is not eligible for auto-linking with this provider | Confirm whether the account already belongs to the organization and whether auto-linking should be enabled on this trusted provider. | +| `Your identity provider did not mark your email as verified.` | The IdP did not send a verified email claim | Fix email verification in the IdP before retrying. | +| `You have been banned from this application.` | The user is banned at the application level | Remove the ban or use a different account. | +| `SSO authentication failed. Please try again.` | Generic provider or callback failure | Check IdP redirect URI, client credentials, issuer, and discovery endpoint. | ## Related docs diff --git a/apps/docs/content/docs/guides/performance-tuning.mdx b/apps/docs/content/docs/guides/performance-tuning.mdx index ec0ac4672..365f72e36 100644 --- a/apps/docs/content/docs/guides/performance-tuning.mdx +++ b/apps/docs/content/docs/guides/performance-tuning.mdx @@ -24,11 +24,11 @@ Change one setting at a time, then compare runtime, CPU, memory, network usage, Some settings apply globally, some apply to one repository, and some apply only to one backup schedule. -| Scope | Setting | Use it for | -| ---------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| Zerobyte container | `GOMAXPROCS` | Capping CPU available to all Restic operations: backups, restores, checks | -| Repository settings | Compression mode, upload limit, download limit | Repository-wide storage, CPU, and network trade-offs | -| Backup schedule | **Advanced** > **Custom restic parameters** | Per-source backup behavior such as read concurrency, pack size, scan mode | +| Scope | Setting | Use it for | +| ------------------- | ---------------------------------------------- | ------------------------------------------------------------------------- | +| Zerobyte container | `GOMAXPROCS` | Capping CPU available to all Restic operations: backups, restores, checks | +| Repository settings | Compression mode, upload limit, download limit | Repository-wide storage, CPU, and network trade-offs | +| Backup schedule | **Advanced** > **Custom restic parameters** | Per-source backup behavior such as read concurrency, pack size, scan mode | Custom Restic parameters are appended to the `restic backup` command for that schedule only. Enter one flag per line. @@ -103,11 +103,11 @@ Larger pack files can improve performance when the bottleneck is per-file or per Suggested starting points: -| Situation | Try | -| ------------------------------------------------- | ----------------- | -| Slow HDD or small NAS repository | `--pack-size 32` | -| Large repository on object storage or rclone | `--pack-size 64` | -| Very large repository with high upload speed | `--pack-size 128` | +| Situation | Try | +| -------------------------------------------- | ----------------- | +| Slow HDD or small NAS repository | `--pack-size 32` | +| Large repository on object storage or rclone | `--pack-size 64` | +| Very large repository with high upload speed | `--pack-size 128` | Example: @@ -118,7 +118,8 @@ Example: Do not jump straight to very large values. Larger packs reduce object count, but each pack is a larger unit to upload, retry, rewrite, and cache. If an upload fails near the end of a large pack, more work may need to be repeated. - In Zerobyte, `--pack-size` in custom Restic parameters affects only the backup schedule where you set it. It does not rewrite existing repository data and it does not automatically apply to every other schedule. + In Zerobyte, `--pack-size` in custom Restic parameters affects only the backup schedule where you set it. It does not + rewrite existing repository data and it does not automatically apply to every other schedule. ## Tune read concurrency diff --git a/apps/docs/content/docs/guides/rclone.mdx b/apps/docs/content/docs/guides/rclone.mdx index ee9331f3c..a97f4f455 100644 --- a/apps/docs/content/docs/guides/rclone.mdx +++ b/apps/docs/content/docs/guides/rclone.mdx @@ -96,6 +96,7 @@ environment: volumes: - ~/.config/rclone:/home/appuser/.config/rclone:ro ``` + ## Using rclone for repositories @@ -145,7 +146,9 @@ Click **Create and Initialize**. Zerobyte will initialize a new encrypted Restic -Consumer cloud services like Google Drive and Dropbox have API rate limits and are not designed for heavy I/O workloads. They work for personal or light-duty backups, but for production or critical data, use proper object storage such as S3, Backblaze B2, or Cloudflare R2. + Consumer cloud services like Google Drive and Dropbox have API rate limits and are not designed for heavy I/O + workloads. They work for personal or light-duty backups, but for production or critical data, use proper object + storage such as S3, Backblaze B2, or Cloudflare R2. ## Using rclone for volumes @@ -202,7 +205,8 @@ Click **Create**. Zerobyte will mount the remote as a FUSE filesystem and make i -Rclone volumes are **Linux-only**. Docker on macOS and Windows does not support FUSE mounts inside containers. If you are running Docker Desktop on macOS or Windows, rclone volumes will not work. + Rclone volumes are **Linux-only**. Docker on macOS and Windows does not support FUSE mounts inside containers. If you + are running Docker Desktop on macOS or Windows, rclone volumes will not work. ## SFTP remotes with SSH keys @@ -278,7 +282,8 @@ docker compose restart -If you mount the rclone config as a read-only volume (`:ro`), the updated tokens on the host are immediately visible to the container after a restart. No need to copy files manually. + If you mount the rclone config as a read-only volume (`:ro`), the updated tokens on the host are immediately visible + to the container after a restart. No need to copy files manually. ## Troubleshooting @@ -308,7 +313,7 @@ If you see errors related to FUSE when creating rclone volumes: - Check that `/dev/fuse` exists on the host: `ls -la /dev/fuse`. -For more detailed troubleshooting steps, see the [Troubleshooting](/docs/troubleshooting) page. + For more detailed troubleshooting steps, see the [Troubleshooting](/docs/troubleshooting) page. import { Step, Steps } from "fumadocs-ui/components/steps"; diff --git a/apps/docs/content/docs/guides/recovery-key-and-repository-passwords.mdx b/apps/docs/content/docs/guides/recovery-key-and-repository-passwords.mdx index 8a21035ff..76e2967e8 100644 --- a/apps/docs/content/docs/guides/recovery-key-and-repository-passwords.mdx +++ b/apps/docs/content/docs/guides/recovery-key-and-repository-passwords.mdx @@ -7,12 +7,12 @@ Zerobyte separates **account authentication** from **Restic repository encryptio ## The important secrets in Zerobyte -| Secret | What it is for | Where it applies | Downloadable from the UI? | -| --- | --- | --- | --- | -| User password | Signing in to Zerobyte and confirming sensitive actions | Your user account | No | -| Recovery key (`restic.pass`) | Opening repositories that use the organization's default Restic password | The active organization | Yes, for org owners and admins after password re-authentication | -| Custom repository password | Opening an imported repository that uses a different Restic password | One imported repository | No separate download flow | -| `APP_SECRET` | Encrypting secrets that Zerobyte stores in the database | The application deployment | No | +| Secret | What it is for | Where it applies | Downloadable from the UI? | +| ---------------------------- | ------------------------------------------------------------------------ | -------------------------- | --------------------------------------------------------------- | +| User password | Signing in to Zerobyte and confirming sensitive actions | Your user account | No | +| Recovery key (`restic.pass`) | Opening repositories that use the organization's default Restic password | The active organization | Yes, for org owners and admins after password re-authentication | +| Custom repository password | Opening an imported repository that uses a different Restic password | One imported repository | No separate download flow | +| `APP_SECRET` | Encrypting secrets that Zerobyte stores in the database | The application deployment | No | ## What the recovery key actually is @@ -25,7 +25,8 @@ That organization-level password is what Zerobyte uses when it: - Runs normal backup, restore, snapshot, doctor, and stats operations for those repositories - Store the recovery key outside Zerobyte in a password manager, secret vault, or other encrypted storage. If you lose both server access and the correct Restic password, your backups are not recoverable. + Store the recovery key outside Zerobyte in a password manager, secret vault, or other encrypted storage. If you lose + both server access and the correct Restic password, your backups are not recoverable. ## First-run behavior for local users @@ -60,11 +61,11 @@ The downloaded filename is `restic.pass`. ## New repositories vs imported repositories -| Repository scenario | Password Zerobyte uses | What to choose in the UI | -| --- | --- | --- | -| New repository created in Zerobyte | The active organization's recovery key | No extra password choice is shown | +| Repository scenario | Password Zerobyte uses | What to choose in the UI | +| ---------------------------------------------------------------------------- | -------------------------------------- | -------------------------------------------------------------- | +| New repository created in Zerobyte | The active organization's recovery key | No extra password choice is shown | | Existing repository that already uses the active organization's recovery key | The active organization's recovery key | `Import existing repository` + `Use the existing recovery key` | -| Existing repository created elsewhere with a different Restic password | A per-repository custom password | `Import existing repository` + `Enter password manually` | +| Existing repository created elsewhere with a different Restic password | A per-repository custom password | `Import existing repository` + `Enter password manually` | ### Important limitation diff --git a/apps/docs/content/docs/guides/repository-maintenance.mdx b/apps/docs/content/docs/guides/repository-maintenance.mdx index cb2d45d4f..ec52210ce 100644 --- a/apps/docs/content/docs/guides/repository-maintenance.mdx +++ b/apps/docs/content/docs/guides/repository-maintenance.mdx @@ -7,23 +7,23 @@ The repository details page exposes a small set of maintenance tools, but they d ## Repository status values -| Status | What it means in Zerobyte | What to do next | -| --- | --- | --- | -| `healthy` | The last stored health verdict finished without errors | Keep monitoring and refresh stats when you want updated size metrics | -| `error` | The last health or doctor run recorded an error | Review **Last Error** and the **Doctor Report**, fix the underlying issue, then rerun maintenance if needed | -| `unknown` | Zerobyte does not currently have a fresh health verdict, or repository settings were changed and the old verdict was cleared | Expect this after some config changes; verify access and consider running Doctor | -| `doctor` | A Doctor run is in progress | Wait for it to finish or cancel it during a maintenance window | -| `cancelled` | A Doctor run was aborted before completion | Review any partial Doctor output and rerun Doctor if you still need validation | +| Status | What it means in Zerobyte | What to do next | +| ----------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `healthy` | The last stored health verdict finished without errors | Keep monitoring and refresh stats when you want updated size metrics | +| `error` | The last health or doctor run recorded an error | Review **Last Error** and the **Doctor Report**, fix the underlying issue, then rerun maintenance if needed | +| `unknown` | Zerobyte does not currently have a fresh health verdict, or repository settings were changed and the old verdict was cleared | Expect this after some config changes; verify access and consider running Doctor | +| `doctor` | A Doctor run is in progress | Wait for it to finish or cancel it during a maintenance window | +| `cancelled` | A Doctor run was aborted before completion | Review any partial Doctor output and rerun Doctor if you still need validation | Repository status is stored metadata inside Zerobyte. It is not a continuous live probe. ## What each action really does -| Action | What it does | What it does **not** do | -| --- | --- | --- | -| `Run doctor` | Runs `unlock`, then `check`, then `repair-index` if restic says it is needed. Saves step output into the Doctor Report. | It does **not** run a full `check --read-data` scrub, it does **not** prune unused data, and it does **not** refresh the stats card. | -| `Unlock` | Runs `restic unlock` to clear stale repository locks. | It does **not** validate repository integrity and it does **not** change the stored health status by itself. | -| Stats refresh button | Runs `restic stats --mode raw-data` and updates stored size and snapshot metrics. | It does **not** change repository health status, **Last Checked**, or the Doctor Report. | +| Action | What it does | What it does **not** do | +| -------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `Run doctor` | Runs `unlock`, then `check`, then `repair-index` if restic says it is needed. Saves step output into the Doctor Report. | It does **not** run a full `check --read-data` scrub, it does **not** prune unused data, and it does **not** refresh the stats card. | +| `Unlock` | Runs `restic unlock` to clear stale repository locks. | It does **not** validate repository integrity and it does **not** change the stored health status by itself. | +| Stats refresh button | Runs `restic stats --mode raw-data` and updates stored size and snapshot metrics. | It does **not** change repository health status, **Last Checked**, or the Doctor Report. | ## Run doctor in detail @@ -41,7 +41,9 @@ During a Doctor run, Zerobyte: Because Doctor holds an exclusive repository lock, it can block other repository operations such as backups, restores, and snapshot mutations while it runs. - Doctor is helpful, but it is lighter than a full offline integrity scrub. Today it does not read every stored data pack and it does not prune repository data. Treat `healthy` as a useful application-level signal, not as proof that every blob was recently re-read. + Doctor is helpful, but it is lighter than a full offline integrity scrub. Today it does not read every stored data + pack and it does not prune repository data. Treat `healthy` as a useful application-level signal, not as proof that + every blob was recently re-read. ## When to use Run doctor @@ -64,7 +66,7 @@ Use **Unlock** when the problem is specifically stale repository locks, for exam If the problem is not a lock issue, Unlock will not fix it. - Only run Unlock when you are certain no real backup, restore, or maintenance operation is still using that repository. + Only run Unlock when you are certain no real backup, restore, or maintenance operation is still using that repository. ## What stats refresh actually recalculates diff --git a/apps/docs/content/docs/guides/restoring.mdx b/apps/docs/content/docs/guides/restoring.mdx index 706a8d9d3..b50bbe4b0 100644 --- a/apps/docs/content/docs/guides/restoring.mdx +++ b/apps/docs/content/docs/guides/restoring.mdx @@ -21,7 +21,8 @@ Before starting a restore, check these basics: If you are restoring into a path that is bind-mounted into the container, make sure it is **not** mounted read-only. Read-only mounts can be backed up, but they cannot accept restores back into the original location. -If you are not fully sure about the target, restore to a custom staging path first. It is safer, easier to verify, and reduces the chance of overwriting live data. + If you are not fully sure about the target, restore to a custom staging path first. It is safer, easier to verify, and + reduces the chance of overwriting live data. ## Restore vs Download @@ -120,7 +121,8 @@ This is the safer default when: - you expect permission or metadata problems on the final destination -If the snapshot was created from non-POSIX paths, or from source paths that do not match the current Zerobyte server or linked volume, original-location restore is unavailable. Restore to a custom location instead. + If the snapshot was created from non-POSIX paths, or from source paths that do not match the current Zerobyte server + or linked volume, original-location restore is unavailable. Restore to a custom location instead. ## Overwrite modes @@ -190,6 +192,7 @@ These destinations may let Zerobyte write file contents while still rejecting `c Mounted destinations can expose translated metadata. In Zerobyte today, WebDAV and SFTP mounts still pass the container process `uid` and `gid` to the mount command, and SMB mounts still depend on what the Linux CIFS client can represent from the remote server. A backup taken from any mounted view records what Linux can see there, which may not be the remote system's full ACL model. For the practical implications and backend-by-backend tradeoffs, see [Mounted Shares and Permissions](/docs/guides/mounted-shares-and-acls). + ## What Zerobyte can and cannot change diff --git a/apps/docs/content/docs/guides/reverse-proxy.mdx b/apps/docs/content/docs/guides/reverse-proxy.mdx index 669921e0d..bac1ba807 100644 --- a/apps/docs/content/docs/guides/reverse-proxy.mdx +++ b/apps/docs/content/docs/guides/reverse-proxy.mdx @@ -12,7 +12,7 @@ Set the following environment variables in your `compose.yaml`: ```yaml compose.yaml environment: - BASE_URL=https://zerobyte.example.com - - TRUST_PROXY=true # Optional: trust X-Forwarded-For headers from your proxy + - TRUST_PROXY=true # Optional: trust X-Forwarded-For headers from your proxy ``` Restart the container after making changes: @@ -25,13 +25,15 @@ docker compose down && docker compose up -d Zerobyte uses `BASE_URL` to determine whether authentication cookies should be marked as `Secure`. This directly affects how login sessions work: -| BASE_URL value | Cookie behavior | -|---|---| -| `http://` or IP address (e.g., `http://192.168.1.100:4096`) | Secure cookies **disabled**, cookies sent over HTTP. Suitable for local network access. | -| `https://` with domain (e.g., `https://zerobyte.example.com`) | Secure cookies **enabled**, cookies only sent over HTTPS. Required for production. | +| BASE_URL value | Cookie behavior | +| ------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `http://` or IP address (e.g., `http://192.168.1.100:4096`) | Secure cookies **disabled**, cookies sent over HTTP. Suitable for local network access. | +| `https://` with domain (e.g., `https://zerobyte.example.com`) | Secure cookies **enabled**, cookies only sent over HTTPS. Required for production. | -If `BASE_URL` is set to an `https://` address, browsers will **only** send authentication cookies over HTTPS connections. Accessing Zerobyte over plain HTTP will fail with login loops or session errors. Make sure your reverse proxy terminates TLS before forwarding to Zerobyte. + If `BASE_URL` is set to an `https://` address, browsers will **only** send authentication cookies over HTTPS + connections. Accessing Zerobyte over plain HTTP will fail with login loops or session errors. Make sure your reverse + proxy terminates TLS before forwarding to Zerobyte. ## Proxy configurations @@ -142,7 +144,7 @@ This ensures all traffic goes through your reverse proxy, which handles TLS and - Use a strong `APP_SECRET` (generated with `openssl rand -hex 32`). - Keep Zerobyte updated to the latest version. - Consider placing Zerobyte behind a secure tunnel (Cloudflare Tunnel, Tailscale, WireGuard) for an additional layer of protection. - + ### A note on TRUSTED_ORIGINS diff --git a/apps/docs/content/docs/guides/tailscale.mdx b/apps/docs/content/docs/guides/tailscale.mdx index 65c7ebacb..7e0791dd6 100644 --- a/apps/docs/content/docs/guides/tailscale.mdx +++ b/apps/docs/content/docs/guides/tailscale.mdx @@ -117,12 +117,13 @@ To make Zerobyte accessible **only** via Tailscale, remove the `ports:` section ## Kernel Mode vs Userspace Mode -| Mode | Requirements | Best For | -|------|-------------|----------| -| **Kernel** (default) | `/dev/net/tun`, `NET_ADMIN` | Linux servers, best performance | -| **Userspace** | No special devices | Docker Desktop, restricted hosts | +| Mode | Requirements | Best For | +| -------------------- | --------------------------- | -------------------------------- | +| **Kernel** (default) | `/dev/net/tun`, `NET_ADMIN` | Linux servers, best performance | +| **Userspace** | No special devices | Docker Desktop, restricted hosts | To use userspace mode: + 1. Set `TS_USERSPACE=true` in your `.env` 2. Remove the `devices: /dev/net/tun` section from the tailscale service diff --git a/apps/docs/content/docs/index.mdx b/apps/docs/content/docs/index.mdx index 2808512ad..74a65b9f0 100644 --- a/apps/docs/content/docs/index.mdx +++ b/apps/docs/content/docs/index.mdx @@ -12,13 +12,13 @@ Welcome to Zerobyte, a powerful backup automation platform built on [Restic](htt Learn about Zerobyte's features and capabilities - } href="/docs/installation"> - Deploy Zerobyte with Docker and Docker Compose - +} href="/docs/installation"> + Deploy Zerobyte with Docker and Docker Compose + - } href="/docs/quickstart"> - Set up your first backup in minutes - +} href="/docs/quickstart"> + Set up your first backup in minutes + } href="/docs/guides/3-2-1-backup-strategy"> Learn why 3-2-1 backups matter and how to set them up in Zerobyte @@ -38,7 +38,8 @@ Zerobyte simplifies backup management by providing an intuitive web interface on - **Snapshot browsing and restore** directly from the web interface - Zerobyte is still in version 0.x.x and is subject to major changes between versions. Core features are under active development + Zerobyte is still in version 0.x.x and is subject to major changes between versions. Core features are under active + development ## Explore the Docs @@ -48,21 +49,31 @@ Zerobyte simplifies backup management by providing an intuitive web interface on Understand volumes, repositories, and backup jobs - } href="/docs/guides/rclone"> - Step-by-step guides for rclone, reverse proxies, Tailscale, and more - +} href="/docs/guides/rclone"> + Step-by-step guides for rclone, reverse proxies, Tailscale, and more + - } href="/docs/configuration"> - Environment variables and Docker configuration reference - +} href="/docs/configuration"> + Environment variables and Docker configuration reference + - } href="/docs/cli"> - Admin commands for account recovery and maintenance - +} href="/docs/cli"> + Admin commands for account recovery and maintenance + } href="/docs/troubleshooting"> Solve common issues with permissions, mounts, and rclone -import { BookOpen, Download, Rocket, ShieldCheck, Layers, BookMarked, Settings, Terminal, LifeBuoy } from "lucide-react"; +import { + BookOpen, + Download, + Rocket, + ShieldCheck, + Layers, + BookMarked, + Settings, + Terminal, + LifeBuoy, +} from "lucide-react"; diff --git a/apps/docs/content/docs/installation.mdx b/apps/docs/content/docs/installation.mdx index 30e715829..c80e777d2 100644 --- a/apps/docs/content/docs/installation.mdx +++ b/apps/docs/content/docs/installation.mdx @@ -74,6 +74,7 @@ services: **Security Note**: The `SYS_ADMIN` capability and `/dev/fuse` device are required for mounting remote filesystems (NFS, SMB, WebDAV, SFTP). If you only need local directory backups, see the [Simplified Installation](#simplified-installation-no-remote-mounts) section below. Remote mounts are convenient, but they can expose translated ownership, permissions, and ACL metadata instead of the source system's original view. Read [Mounted Shares and Permissions](/docs/guides/mounted-shares-and-acls) before using mounted volumes for metadata-sensitive backups. + ### 2. Configure Environment Variables @@ -92,35 +93,35 @@ openssl rand -hex 32 environment: - TZ=America/New_York - BASE_URL=http://192.168.1.100:4096 - - APP_SECRET=a1b2c3d4e5f6... # Output from openssl command + - APP_SECRET=a1b2c3d4e5f6... # Output from openssl command ``` #### Required Environment Variables -| Variable | Description | Example | -|----------|-------------|---------| -| `BASE_URL` | **Required.** The base URL where Zerobyte will be accessed. Used for cookie security and CORS. | `http://localhost:4096` or `https://zerobyte.example.com` | -| `APP_SECRET` | **Required.** A 32+ character random secret for encrypting sensitive data in the database. Generate with `openssl rand -hex 32`. | `94bad46...c66e25d5c2b` | -| `TZ` | **Recommended.** Timezone for accurate backup scheduling. | `Europe/Zurich`, `America/New_York`, `UTC` | +| Variable | Description | Example | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | +| `BASE_URL` | **Required.** The base URL where Zerobyte will be accessed. Used for cookie security and CORS. | `http://localhost:4096` or `https://zerobyte.example.com` | +| `APP_SECRET` | **Required.** A 32+ character random secret for encrypting sensitive data in the database. Generate with `openssl rand -hex 32`. | `94bad46...c66e25d5c2b` | +| `TZ` | **Recommended.** Timezone for accurate backup scheduling. | `Europe/Zurich`, `America/New_York`, `UTC` | The `BASE_URL` determines cookie security behavior: -* **HTTP or IP addresses**: Secure cookies disabled (allows local access) -* **HTTPS with domain**: Secure cookies enabled (required for production) - +- **HTTP or IP addresses**: Secure cookies disabled (allows local access) +- **HTTPS with domain**: Secure cookies enabled (required for production) + #### Optional Environment Variables -| Variable | Description | Default | -|----------|-------------|---------| -| `PORT` | Port the web interface listens on inside the container | `4096` | -| `RESTIC_HOSTNAME` | Hostname used by Restic in snapshots | `zerobyte` | -| `TRUSTED_ORIGINS` | Comma-separated list of additional trusted CORS origins | (none) | -| `WEBHOOK_TIMEOUT` | Timeout for backup webhook requests in seconds | `60` | -| `LOG_LEVEL` | Logging verbosity: `debug`, `info`, `warn`, `error` | `info` | -| `SERVER_IDLE_TIMEOUT` | Server idle timeout in seconds | `60` | -| `RCLONE_CONFIG_DIR` | Path to rclone config directory inside container | `/root/.config/rclone` | +| Variable | Description | Default | +| --------------------- | ------------------------------------------------------- | ---------------------- | +| `PORT` | Port the web interface listens on inside the container | `4096` | +| `RESTIC_HOSTNAME` | Hostname used by Restic in snapshots | `zerobyte` | +| `TRUSTED_ORIGINS` | Comma-separated list of additional trusted CORS origins | (none) | +| `WEBHOOK_TIMEOUT` | Timeout for backup webhook requests in seconds | `60` | +| `LOG_LEVEL` | Logging verbosity: `debug`, `info`, `warn`, `error` | `info` | +| `SERVER_IDLE_TIMEOUT` | Server idle timeout in seconds | `60` | +| `RCLONE_CONFIG_DIR` | Path to rclone config directory inside container | `/root/.config/rclone` | ### 3. Configure Volume Mounts @@ -133,7 +134,8 @@ volumes: ``` -**Important**: Do not point `/var/lib/zerobyte` to a network share. This will cause permission issues and severe performance degradation. Always use local storage. + **Important**: Do not point `/var/lib/zerobyte` to a network share. This will cause permission issues and severe + performance degradation. Always use local storage. @@ -146,6 +148,7 @@ volumes: ``` This ensures your configuration, encryption keys, and database persist across upgrades. + ### 4. Start Zerobyte @@ -172,7 +175,8 @@ http://:4096 ``` -On first access, you'll be prompted to create an admin account. This account will have full access to all backup management features. + On first access, you'll be prompted to create an admin account. This account will have full access to all backup + management features. ## Simplified Installation (No Remote Mounts) @@ -200,28 +204,29 @@ services: **Trade-offs:**
      -
    • - - Improved security by removing `SYS_ADMIN` capability -
    • -
    • - - Support for local directories mounted into the container -
    • -
    • - - All repository types still supported (local, S3, GCS, Azure, rclone) -
    • -
    • - - Cannot mount remote shares (NFS, SMB, WebDAV, SFTP) from within Zerobyte -
    • +
    • + + Improved security by removing `SYS_ADMIN` capability +
    • +
    • + + Support for local directories mounted into the container +
    • +
    • + + All repository types still supported (local, S3, GCS, Azure, rclone) +
    • +
    • + + Cannot mount remote shares (NFS, SMB, WebDAV, SFTP) from within Zerobyte +
    If you need remote mount capabilities later, you can update your `compose.yaml` to add back the `cap_add: SYS_ADMIN` and `devices: /dev/fuse:/dev/fuse` directives. If your goal is the closest thing to true replication, prefer local bind-mounted directories whenever possible. See [Mounted Shares and Permissions](/docs/guides/mounted-shares-and-acls) for the practical tradeoffs. + ## Mounting Local Directories @@ -238,7 +243,8 @@ volumes: ``` -Use read-only mounts (`:ro`) if you want to prevent Zerobyte from modifying the source data. But you won't be able to restore files back to the original location if you use read-only mounts. + Use read-only mounts (`:ro`) if you want to prevent Zerobyte from modifying the source data. But you won't be able to + restore files back to the original location if you use read-only mounts. After adding volume mounts, restart the container: @@ -287,11 +293,12 @@ secrets: When authoring a provisioning file, you can reference these secrets: -* `env://S3_SECRET_KEY` - Resolves from environment variable `S3_SECRET_KEY` -* `file://smb_password` - Resolves from `/run/secrets/smb_password` +- `env://S3_SECRET_KEY` - Resolves from environment variable `S3_SECRET_KEY` +- `file://smb_password` - Resolves from `/run/secrets/smb_password` - These references are currently resolved only during provisioning. The normal volume and repository forms in the UI expect the actual secret value. See the [Provisioning guide](/docs/guides/provisioning) for the full workflow. + These references are currently resolved only during provisioning. The normal volume and repository forms in the UI + expect the actual secret value. See the [Provisioning guide](/docs/guides/provisioning) for the full workflow. ### Mounting rclone Configuration @@ -354,7 +361,7 @@ Now that Zerobyte is installed, proceed to the Quick Start guide to configure yo } href="/docs/configuration"> - All environment variables and Docker settings + All environment variables and Docker settings } href="/docs/troubleshooting"> diff --git a/apps/docs/content/docs/introduction.mdx b/apps/docs/content/docs/introduction.mdx index 070ac6bf8..b9bd5b9ce 100644 --- a/apps/docs/content/docs/introduction.mdx +++ b/apps/docs/content/docs/introduction.mdx @@ -6,7 +6,8 @@ description: Learn about Zerobyte, a powerful backup automation platform built o Zerobyte is a backup automation tool that helps you protect your data across multiple storage backends. Built on top of [Restic](https://restic.net/), it provides a modern web interface to schedule, manage, and monitor encrypted backups. - Zerobyte is still in version 0.x.x and is subject to major changes between versions. Core features are under active development + Zerobyte is still in version 0.x.x and is subject to major changes between versions. Core features are under active + development ## Key Features @@ -16,13 +17,13 @@ Zerobyte is a backup automation tool that helps you protect your data across mul Schedule encrypted, compressed backups with fine-grained retention policies powered by Restic - }> - Configure automated backup jobs with cron expressions and sophisticated retention rules - +}> + Configure automated backup jobs with cron expressions and sophisticated retention rules + - }> - Your data is always protected with strong encryption at rest, ensuring security for every snapshot - +}> + Your data is always protected with strong encryption at rest, ensuring security for every snapshot + }> Back up from NFS, SMB, WebDAV, SFTP, or local directories with ease @@ -86,7 +87,8 @@ Configure **backup jobs** that connect volumes to repositories with scheduling r - All backups are encrypted using Restic's encryption. Your encryption password is securely stored and never leaves your server. + All backups are encrypted using Restic's encryption. Your encryption password is securely stored and never leaves your + server. ## Use Cases @@ -96,13 +98,13 @@ Configure **backup jobs** that connect volumes to repositories with scheduling r Back up your home server data (photos, documents, media) to cloud storage or an external drive with automatic scheduling and retention.
    - - Protect your NAS data by backing up critical shares to offsite cloud storage with encryption and versioning. - + + Protect your NAS data by backing up critical shares to offsite cloud storage with encryption and versioning. + - - Automatically back up development servers, databases, and configuration files to ensure quick recovery. - + + Automatically back up development servers, databases, and configuration files to ensure quick recovery. + Centralize backup management for multiple locations, backing up various sources to different repository types. diff --git a/apps/docs/content/docs/quickstart.mdx b/apps/docs/content/docs/quickstart.mdx index f1cef9d08..0c40e36d3 100644 --- a/apps/docs/content/docs/quickstart.mdx +++ b/apps/docs/content/docs/quickstart.mdx @@ -6,7 +6,7 @@ description: Set up your first backup in minutes with Zerobyte This guide walks you through creating your first backup in Zerobyte, from initial setup to verifying a successful backup. - This guide assumes you've already [installed Zerobyte](/docs/installation) and can access the web interface. + This guide assumes you've already [installed Zerobyte](/docs/installation) and can access the web interface. ## Overview @@ -89,11 +89,14 @@ After the recovery key is downloaded, Zerobyte redirects to **Volumes**. The res - **Critical**: Store the downloaded recovery key file safely. It contains the Restic password required to recover your backups. If you lose both server access and this file, your backups will be unrecoverable. See [Recovery keys and repository passwords](/docs/guides/recovery-key-and-repository-passwords) for the full model, including imported repositories with custom passwords. + **Critical**: Store the downloaded recovery key file safely. It contains the Restic password required to recover your + backups. If you lose both server access and this file, your backups will be unrecoverable. See [Recovery keys and + repository passwords](/docs/guides/recovery-key-and-repository-passwords) for the full model, including imported + repositories with custom passwords. - After onboarding is complete, future visits use the normal **Login** page instead of the onboarding flow. + After onboarding is complete, future visits use the normal **Login** page instead of the onboarding flow. ## Step 1: Add a Volume @@ -118,7 +121,7 @@ services: volumes: - /etc/localtime:/etc/localtime:ro - /var/lib/zerobyte:/var/lib/zerobyte - - /path/to/your/data:/data # Add this line + - /path/to/your/data:/data # Add this line ``` Restart the container to apply changes: @@ -169,7 +172,9 @@ Click **Create** to save the volume configuration - The directory browser shows paths from the Zerobyte server or container filesystem, not your host filesystem directly. In the Docker example above, the host path `/path/to/your/data` appears in Zerobyte as `/data`, so that is the path you select in the browser. + The directory browser shows paths from the Zerobyte server or container filesystem, not your host filesystem directly. + In the Docker example above, the host path `/path/to/your/data` appears in Zerobyte as `/data`, so that is the path + you select in the browser. ### Adding Remote Volumes @@ -185,6 +190,7 @@ Zerobyte also supports remote volume types: - **Port**: NFS port (default: `2049`) - **Version**: `3`, `4`, or `4.1` - **Read-only Mode**: Optional, recommended for backup sources + @@ -198,6 +204,7 @@ Zerobyte also supports remote volume types: - **SMB Version**: `1.0`, `2.0`, `2.1`, or `3.0` - **Domain**: Windows domain or workgroup (optional) - **Port**: SMB port (default: `445`) + @@ -210,6 +217,7 @@ Zerobyte also supports remote volume types: - **Port**: Server port (`80` by default, or `443` for HTTPS) - **Use SSL/HTTPS**: Enable secure HTTPS connections - **Read-only Mode**: Optional, recommended for backup sources + @@ -222,11 +230,13 @@ Zerobyte also supports remote volume types: - **Private Key**: SSH private key (optional if using a password) - **Path**: Remote directory path - **Known Hosts**: Required unless you enable **Skip Host Key Verification** + - Remote volumes require the full installation with `SYS_ADMIN` capability and `/dev/fuse` device. See the [Installation guide](/docs/installation) for details. + Remote volumes require the full installation with `SYS_ADMIN` capability and `/dev/fuse` device. See the [Installation + guide](/docs/installation) for details. ## Step 2: Create a Repository @@ -285,11 +295,14 @@ Click **Create repository**. Zerobyte creates and initializes the repository, th - If you choose a custom local repository directory, make sure it is mounted from the host into the container. Otherwise the repository data can be lost when the container restarts. + If you choose a custom local repository directory, make sure it is mounted from the host into the container. Otherwise + the repository data can be lost when the container restarts. - If you are importing an existing repository instead of creating a new one, read [Recovery keys and repository passwords](/docs/guides/recovery-key-and-repository-passwords) before choosing between the existing recovery key and a custom repository password. + If you are importing an existing repository instead of creating a new one, read [Recovery keys and repository + passwords](/docs/guides/recovery-key-and-repository-passwords) before choosing between the existing recovery key and a + custom repository password. ### Cloud Storage Repositories @@ -307,6 +320,7 @@ For production use, consider using cloud storage for offsite backups: Access Key ID: AKIAIOSFODNN7EXAMPLE Secret Access Key: my-secret-access-key ``` + @@ -318,6 +332,7 @@ For production use, consider using cloud storage for offsite backups: Project ID: my-project-id Service Account JSON: Paste the service account JSON ``` + @@ -330,6 +345,7 @@ For production use, consider using cloud storage for offsite backups: Account Key: my-account-key Endpoint Suffix: core.windows.net (optional) ``` + @@ -344,11 +360,14 @@ For production use, consider using cloud storage for offsite backups: rclone must be configured on the host and mounted into the container. See [Installation - Mounting rclone Configuration](/docs/installation#mounting-rclone-configuration). + - If you want credentials to come from environment variables or Docker secrets, use the [Provisioning guide](/docs/guides/provisioning). The standard volume and repository forms currently expect the actual secret value and store it encrypted. + If you want credentials to come from environment variables or Docker secrets, use the [Provisioning + guide](/docs/guides/provisioning). The standard volume and repository forms currently expect the actual secret value + and store it encrypted. ## Step 3: Create a Backup Job @@ -408,13 +427,10 @@ If you choose **Daily**, **Weekly**, or **Specific days**, set an **Execution ti If you choose **Weekly**, also choose the day of the week. - - - `0 2 * * *` - Daily at 2:00 AM - - `0 2 * * 0` - Weekly on Sunday at 2:00 AM - - `0 2 1 * *` - Monthly on the 1st at 2:00 AM - - `0 */6 * * *` - Every 6 hours - - `0 0 * * 1-5` - Weekdays at midnight - + + - `0 2 * * *` - Daily at 2:00 AM - `0 2 * * 0` - Weekly on Sunday at 2:00 AM - `0 2 1 * *` - Monthly on the 1st at + 2:00 AM - `0 */6 * * *` - Every 6 hours - `0 0 * * 1-5` - Weekdays at midnight + @@ -433,7 +449,8 @@ Keep Yearly: 1 ``` - Retention policies automatically prune old backups to save storage space. Restic's deduplication ensures you only store unique data. + Retention policies automatically prune old backups to save storage space. Restic's deduplication ensures you only + store unique data. @@ -512,7 +529,8 @@ Wait for the backup to finish. When it completes successfully, the job status ch - During the first backup, all data is uploaded. Subsequent backups are much faster due to Restic's incremental backup and deduplication. + During the first backup, all data is uploaded. Subsequent backups are much faster due to Restic's incremental backup + and deduplication. ## Step 5: Verify Your Backup @@ -569,7 +587,8 @@ For peace of mind, test restoring a file: - By default, restored files are placed back in their original location. Be careful not to overwrite current files. You can specify an alternate restore path if needed. + By default, restored files are placed back in their original location. Be careful not to overwrite current files. You + can specify an alternate restore path if needed. ## Understanding Backup Status @@ -581,7 +600,8 @@ The UI exposes two related status views: - If a backup job has not completed a run yet, the details page shows no last run value - Click any backup job to view its snapshot history, restore actions, schedule summary, and repository links. If a run fails and the UI does not show enough detail, check your container logs with `docker compose logs -f zerobyte`. + Click any backup job to view its snapshot history, restore actions, schedule summary, and repository links. If a run + fails and the UI does not show enough detail, check your container logs with `docker compose logs -f zerobyte`. ## Monitoring Your Backups @@ -618,7 +638,9 @@ Repository details show: - Doctor report output - Use **Run doctor** in the repository details page when you need a repository maintenance pass. Use the refresh button in **Compression Statistics** when you only need updated stored-size and snapshot metrics. For the exact meaning of the status values and actions, see [Repository maintenance and status](/docs/guides/repository-maintenance). + Use **Run doctor** in the repository details page when you need a repository maintenance pass. Use the refresh button + in **Compression Statistics** when you only need updated stored-size and snapshot metrics. For the exact meaning of + the status values and actions, see [Repository maintenance and status](/docs/guides/repository-maintenance). ## Next Steps @@ -630,13 +652,13 @@ Now that you have a working backup, consider: Back up additional directories or remote shares - }> - Configure offsite backups to S3, Google Cloud, or Azure - +}> + Configure offsite backups to S3, Google Cloud, or Azure + - } href="/docs/guides/notifications"> - Get alerted when backups fail or complete - +} href="/docs/guides/notifications"> + Get alerted when backups fail or complete + }> Fine-tune retention policies to balance storage and history @@ -692,7 +714,8 @@ Click **Restore All** to restore everything, or select specific files first and - For the full restore workflow, overwrite modes, download vs restore, and mounted-volume permission caveats, see [Restoring Data](/docs/guides/restoring). + For the full restore workflow, overwrite modes, download vs restore, and mounted-volume permission caveats, see + [Restoring Data](/docs/guides/restoring). ### Pausing a Backup Job @@ -721,9 +744,7 @@ Backups are automatically pruned according to retention policies, but you can ma 3. Click **Delete Snapshot** 4. Confirm deletion - - Deleting snapshots is irreversible. Ensure you don't need the data before deleting. - +Deleting snapshots is irreversible. Ensure you don't need the data before deleting. ## Troubleshooting @@ -770,13 +791,13 @@ If you encounter issues: View detailed logs with `docker compose logs -f zerobyte` - }> - Report bugs or request features at [github.com/nicotsx/zerobyte/issues](https://github.com/nicotsx/zerobyte/issues) - +}> + Report bugs or request features at [github.com/nicotsx/zerobyte/issues](https://github.com/nicotsx/zerobyte/issues) + - }> - Explore the full documentation for advanced topics - +}> + Explore the full documentation for advanced topics + }> Join discussions and get help from other users @@ -786,37 +807,37 @@ If you encounter issues: When reporting issues, include: - - Zerobyte version (visible in UI footer) - - Docker and Docker Compose versions - - Relevant logs from `docker compose logs zerobyte` - - Steps to reproduce the issue - +- Zerobyte version (visible in UI footer) +- Docker and Docker Compose versions +- Relevant logs from `docker compose logs zerobyte` +- Steps to reproduce the issue + ## Conclusion You've successfully:
      -
    • - - Created an admin account and downloaded the recovery key -
    • -
    • - - Added a volume to backup -
    • -
    • - - Created a repository for encrypted storage -
    • -
    • - - Configured and ran your first backup job -
    • -
    • - - Verified your backup was successful -
    • +
    • + + Created an admin account and downloaded the recovery key +
    • +
    • + + Added a volume to backup +
    • +
    • + + Created a repository for encrypted storage +
    • +
    • + + Configured and ran your first backup job +
    • +
    • + + Verified your backup was successful +
    Your data is now protected with encrypted, deduplicated backups. Zerobyte will continue to run backups automatically according to your schedule. diff --git a/apps/docs/content/docs/troubleshooting.mdx b/apps/docs/content/docs/troubleshooting.mdx index 83bb34a75..af223b125 100644 --- a/apps/docs/content/docs/troubleshooting.mdx +++ b/apps/docs/content/docs/troubleshooting.mdx @@ -21,7 +21,8 @@ docker logs -f zerobyte ``` - Never share sensitive information (passwords, access keys, personal data) in public issue reports. Redact them from logs before posting. + Never share sensitive information (passwords, access keys, personal data) in public issue reports. Redact them from + logs before posting. ## Container Won't Start @@ -122,7 +123,8 @@ security_opt: - **Last resort**: If nothing else works, you can run with `privileged: true`. This disables most container isolation and should only be used temporarily for diagnosis. + **Last resort**: If nothing else works, you can run with `privileged: true`. This disables most container isolation + and should only be used temporarily for diagnosis. ## FUSE Mount Failures @@ -141,7 +143,7 @@ docker exec zerobyte ls -la /dev/fuse ``` - `/dev/fuse` is **not required** for SMB/CIFS or NFS mounts, only for SFTP and rclone volumes. + `/dev/fuse` is **not required** for SMB/CIFS or NFS mounts, only for SFTP and rclone volumes. ## Rclone Issues @@ -162,6 +164,7 @@ rclone ls myremote:path/to/test ``` **If these commands fail on the host, fix your rclone configuration first.** Common causes: + - Expired OAuth tokens, run `rclone config` to re-authenticate - Incorrect credentials - Missing permissions on the cloud provider side @@ -196,6 +199,7 @@ volumes: ### "Failed to Create File System" Error Usually an authentication failure. On your host: + 1. Run `rclone config` and re-authenticate the remote 2. Verify with `rclone lsd remote:` 3. Restart the Zerobyte container @@ -205,6 +209,7 @@ Usually an authentication failure. On your host: If your rclone SFTP remote uses `key_file`, the path points to the host filesystem which isn't accessible inside the container. Solutions: + - **Mount SSH keys**: `~/.ssh:/root/.ssh:ro` - **Embed key in config**: Use `key_pem` instead of `key_file` - **Use ssh-agent**: Set `key_use_agent = true` and mount the SSH agent socket @@ -214,6 +219,7 @@ See the [rclone guide](/docs/guides/rclone) for detailed instructions. ### Rclone Volume Mount Errors Rclone volumes (mounting cloud storage as a data source) require: + - Linux host (Windows/macOS cannot use rclone volumes) - `/dev/fuse` device mounted - `SYS_ADMIN` capability @@ -263,7 +269,7 @@ See [Performance tuning](/docs/guides/performance-tuning) before changing multip If you see "repository is locked" errors, a previous operation may have been interrupted. Use the **Unlock** button in the repository settings. - Only unlock if you're certain no other backup or restore operations are running against the repository. + Only unlock if you're certain no other backup or restore operations are running against the repository. ## Getting Help @@ -275,6 +281,7 @@ If you've tried the solutions above and still have issues: 3. Open an issue at [github.com/nicotsx/zerobyte/issues](https://github.com/nicotsx/zerobyte/issues) Include in your report: + - Zerobyte version (visible in the UI footer) - Docker and Docker Compose versions - Relevant logs (with sensitive data redacted) diff --git a/apps/docs/package.json b/apps/docs/package.json index ffe07b78e..2f8996af2 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -50,10 +50,10 @@ "@vitejs/plugin-react": "^6.0.2", "jsdom": "^29.1.1", "typescript": "^6.0.3", - "vite": "^8.0.16", + "vite": "file:../../vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", "vite-plugin-killer-instincts": "^1.1.0", - "vite-plus": "^0.1.24", - "vitest": "^4.1.8", + "vite-plus": "catalog:", + "vitest": "catalog:", "wrangler": "^4.100.0" }, "pnpm": { diff --git a/apps/docs/public/images/favicon/site.webmanifest b/apps/docs/public/images/favicon/site.webmanifest index acc5ceada..5279706a5 100644 --- a/apps/docs/public/images/favicon/site.webmanifest +++ b/apps/docs/public/images/favicon/site.webmanifest @@ -1,21 +1,21 @@ { - "name": "Zerobyte", - "short_name": "Zerobyte", - "icons": [ - { - "src": "/images/favicon/web-app-manifest-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "/images/favicon/web-app-manifest-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ], - "theme_color": "#1b1b1b", - "background_color": "#1b1b1b", - "display": "standalone" -} \ No newline at end of file + "name": "Zerobyte", + "short_name": "Zerobyte", + "icons": [ + { + "src": "/images/favicon/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/images/favicon/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#1b1b1b", + "background_color": "#1b1b1b", + "display": "standalone" +} diff --git a/apps/docs/src/components/Footer.tsx b/apps/docs/src/components/Footer.tsx index f9583d999..5efe74942 100644 --- a/apps/docs/src/components/Footer.tsx +++ b/apps/docs/src/components/Footer.tsx @@ -36,7 +36,9 @@ export default function Footer() {
    -

    Open source backup automation for Restic.

    +

    + Open source backup automation for Restic. +

    diff --git a/apps/docs/src/components/LandingPage.tsx b/apps/docs/src/components/LandingPage.tsx index 26f670b2d..4799cb71f 100644 --- a/apps/docs/src/components/LandingPage.tsx +++ b/apps/docs/src/components/LandingPage.tsx @@ -121,7 +121,8 @@ const features: Array<{ icon: LucideIcon; title: string; description: string }> { icon: Container, title: "Operator-friendly deployment", - description: "Self-host with Docker Compose and manage backups from a web interface your team can actually use.", + description: + "Self-host with Docker Compose and manage backups from a web interface your team can actually use.", }, ]; @@ -159,33 +160,27 @@ const benefits = [ const faqs = [ { question: "Is Zerobyte a backup engine or a UI for Restic?", - answer: - "Zerobyte is a Restic-based backup automation tool. It gives you a web control plane for scheduling, managing, monitoring, restoring, and maintaining Restic backups.", + answer: "Zerobyte is a Restic-based backup automation tool. It gives you a web control plane for scheduling, managing, monitoring, restoring, and maintaining Restic backups.", }, { question: "What can I back up with Zerobyte?", - answer: - "You can back up local directories, NFS shares, SMB/CIFS shares, WebDAV endpoints, SFTP locations, and rclone-backed sources.", + answer: "You can back up local directories, NFS shares, SMB/CIFS shares, WebDAV endpoints, SFTP locations, and rclone-backed sources.", }, { question: "Where can I store backups?", - answer: - "Zerobyte supports local repositories, S3-compatible storage, Cloudflare R2, Google Cloud Storage, Azure Blob Storage, REST servers, SFTP targets, and many additional providers through rclone.", + answer: "Zerobyte supports local repositories, S3-compatible storage, Cloudflare R2, Google Cloud Storage, Azure Blob Storage, REST servers, SFTP targets, and many additional providers through rclone.", }, { question: "Is my data encrypted?", - answer: - "Yes. Zerobyte relies on Restic's end-to-end encryption for repository data, and sensitive credentials stored by the app are encrypted before they are written to the database.", + answer: "Yes. Zerobyte relies on Restic's end-to-end encryption for repository data, and sensitive credentials stored by the app are encrypted before they are written to the database.", }, { question: "Can I restore individual files?", - answer: - "Yes. You can browse snapshots from the web interface and restore individual files, directories, or larger paths to the original or an alternate location.", + answer: "Yes. You can browse snapshots from the web interface and restore individual files, directories, or larger paths to the original or an alternate location.", }, { question: "Can teams use Zerobyte?", - answer: - "Yes. Zerobyte is organization-scoped and supports roles, invitations, and OIDC-based SSO for managed access.", + answer: "Yes. Zerobyte is organization-scoped and supports roles, invitations, and OIDC-based SSO for managed access.", }, { question: "How do I deploy it?", @@ -242,21 +237,27 @@ export default function LandingPage() { Backups you can finally forget about

    - Zerobyte gives you a clean web interface to schedule, monitor, restore, and maintain encrypted backups - across local disks, NAS shares, remote servers, and cloud storage. + Zerobyte gives you a clean web interface to schedule, monitor, restore, and maintain + encrypted backups across local disks, NAS shares, remote servers, and cloud storage.

    Documentation - + View on GitHub

    - Self-hosted. Restic-powered. Built for operators who want fewer scripts and more visibility. + Self-hosted. Restic-powered. Built for operators who want fewer scripts and more + visibility.

    @@ -286,7 +287,8 @@ export default function LandingPage() { Backups are easy to start and hard to trust

    - A few commands and a cron job can get backups running. Keeping them reliable is the hard part. + A few commands and a cron job can get backups running. Keeping them reliable is the hard + part.

      {problems.map((problem) => ( @@ -309,8 +311,8 @@ export default function LandingPage() { Zerobyte puts a real control plane on top of Restic

      - Instead of stitching together CLI commands, cron, and ad hoc monitoring, you manage the full backup - lifecycle from one place. + Instead of stitching together CLI commands, cron, and ad hoc monitoring, you manage the + full backup lifecycle from one place.

    @@ -320,7 +322,9 @@ export default function LandingPage() {

    {solution.title}

    -

    {solution.description}

    +

    + {solution.description} +

    ))}
    @@ -342,7 +346,9 @@ export default function LandingPage() {

    {feature.title}

    -

    {feature.description}

    +

    + {feature.description} +

    ))} @@ -365,14 +371,18 @@ export default function LandingPage() { key={step.number} className="relative flex flex-col gap-6 pl-16 lg:flex-row lg:items-center lg:gap-12 lg:pl-0" > -
    +

    {step.title}

    {step.description}

    {step.number}
    -
    +
    ))}
    @@ -393,8 +403,8 @@ export default function LandingPage() { Built for the gap between raw CLI power and real-world operations

    - Restic is excellent at creating secure, efficient backups. Zerobyte makes that power practical day to - day. + Restic is excellent at creating secure, efficient backups. Zerobyte makes that power + practical day to day.

      {benefits.map((benefit) => ( @@ -423,7 +433,9 @@ export default function LandingPage() { {faq.question} - {faq.answer} + + {faq.answer} + ))} @@ -446,14 +458,19 @@ export default function LandingPage() { Documentation - + View on GitHub

    - Self-host Zerobyte and bring scheduling, visibility, restores, and repository maintenance into one - place. + Self-host Zerobyte and bring scheduling, visibility, restores, and repository + maintenance into one place.

    diff --git a/apps/docs/src/components/ui/accordion.tsx b/apps/docs/src/components/ui/accordion.tsx index 67f21f244..a08797d12 100644 --- a/apps/docs/src/components/ui/accordion.tsx +++ b/apps/docs/src/components/ui/accordion.tsx @@ -4,7 +4,9 @@ import { cn } from "#/lib/utils"; import { CaretDownIcon, CaretUpIcon } from "@phosphor-icons/react"; function Accordion({ className, ...props }: AccordionPrimitive.Root.Props) { - return ; + return ( + + ); } function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) { diff --git a/apps/docs/src/components/ui/button.tsx b/apps/docs/src/components/ui/button.tsx index decd692bb..9c52912e9 100644 --- a/apps/docs/src/components/ui/button.tsx +++ b/apps/docs/src/components/ui/button.tsx @@ -13,8 +13,7 @@ const buttonVariants = cva( "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50", secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground", - ghost: - "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50", + ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50", destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40", link: "text-primary underline-offset-4 hover:underline", @@ -43,7 +42,9 @@ function Button({ size = "default", ...props }: ButtonPrimitive.Props & VariantProps) { - return ; + return ( + + ); } export { Button, buttonVariants }; diff --git a/apps/docs/src/styles.css b/apps/docs/src/styles.css index b84e66521..d6e9efc72 100644 --- a/apps/docs/src/styles.css +++ b/apps/docs/src/styles.css @@ -15,44 +15,26 @@ } :root { - --background: - oklch(1 0 0); - --foreground: - oklch(0.145 0 0); - --card: - oklch(1 0 0); - --card-foreground: - oklch(0.145 0 0); + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); --card-header: #1b1b1b; - --popover: - oklch(1 0 0); - --popover-foreground: - oklch(0.145 0 0); - --primary: - oklch(0.205 0 0); - --primary-foreground: - oklch(0.985 0 0); - --secondary: - oklch(0.97 0 0); - --secondary-foreground: - oklch(0.205 0 0); - --muted: - oklch(0.97 0 0); - --muted-foreground: - oklch(0.556 0 0); - --accent: - oklch(0.97 0 0); - --accent-foreground: - oklch(0.205 0 0); - --destructive: - oklch(0.577 0.245 27.325); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); --destructive-foreground: #fff; - --border: - oklch(0.922 0 0); - --input: - oklch(0.922 0 0); - --ring: - oklch(0.708 0 0); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); --strong-accent: #ff543a; --sea-ink: var(--foreground); --sea-ink-soft: var(--muted-foreground); @@ -74,34 +56,20 @@ --hero-a: color-mix(in oklab, var(--strong-accent) 8%, transparent); --hero-b: color-mix(in oklab, var(--strong-accent) 4%, transparent); --site-header-offset: calc(4rem + 1px); - --chart-1: - oklch(0.87 0 0); - --chart-2: - oklch(0.556 0 0); - --chart-3: - oklch(0.439 0 0); - --chart-4: - oklch(0.371 0 0); - --chart-5: - oklch(0.269 0 0); - --radius: - 0.625rem; - --sidebar: - oklch(0.985 0 0); - --sidebar-foreground: - oklch(0.145 0 0); - --sidebar-primary: - oklch(0.205 0 0); - --sidebar-primary-foreground: - oklch(0.985 0 0); - --sidebar-accent: - oklch(0.97 0 0); - --sidebar-accent-foreground: - oklch(0.205 0 0); - --sidebar-border: - oklch(0.922 0 0); - --sidebar-ring: - oklch(0.708 0 0); + --chart-1: oklch(0.87 0 0); + --chart-2: oklch(0.556 0 0); + --chart-3: oklch(0.439 0 0); + --chart-4: oklch(0.371 0 0); + --chart-5: oklch(0.269 0 0); + --radius: 0.625rem; + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); } @theme inline { @@ -126,50 +94,28 @@ --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); - --font-heading: - var(--font-mono); - --font-mono: - 'JetBrains Mono Variable', monospace; - --color-sidebar-ring: - var(--sidebar-ring); - --color-sidebar-border: - var(--sidebar-border); - --color-sidebar-accent-foreground: - var(--sidebar-accent-foreground); - --color-sidebar-accent: - var(--sidebar-accent); - --color-sidebar-primary-foreground: - var(--sidebar-primary-foreground); - --color-sidebar-primary: - var(--sidebar-primary); - --color-sidebar-foreground: - var(--sidebar-foreground); - --color-sidebar: - var(--sidebar); - --color-chart-5: - var(--chart-5); - --color-chart-4: - var(--chart-4); - --color-chart-3: - var(--chart-3); - --color-chart-2: - var(--chart-2); - --color-chart-1: - var(--chart-1); - --radius-sm: - calc(var(--radius) * 0.6); - --radius-md: - calc(var(--radius) * 0.8); - --radius-lg: - var(--radius); - --radius-xl: - calc(var(--radius) * 1.4); - --radius-2xl: - calc(var(--radius) * 1.8); - --radius-3xl: - calc(var(--radius) * 2.2); - --radius-4xl: - calc(var(--radius) * 2.6); + --font-heading: var(--font-mono); + --font-mono: "JetBrains Mono Variable", monospace; + --color-sidebar-ring: var(--sidebar-ring); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar: var(--sidebar); + --color-chart-5: var(--chart-5); + --color-chart-4: var(--chart-4); + --color-chart-3: var(--chart-3); + --color-chart-2: var(--chart-2); + --color-chart-1: var(--chart-1); + --radius-sm: calc(var(--radius) * 0.6); + --radius-md: calc(var(--radius) * 0.8); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) * 1.4); + --radius-2xl: calc(var(--radius) * 1.8); + --radius-3xl: calc(var(--radius) * 2.2); + --radius-4xl: calc(var(--radius) * 2.6); } .dark { @@ -190,68 +136,37 @@ --color-fd-accent: var(--accent); --color-fd-accent-foreground: var(--accent-foreground); --color-fd-ring: var(--ring); - --card: - oklch(0.205 0 0); - --background: - oklch(0.145 0 0); - --foreground: - oklch(0.985 0 0); - --card-foreground: - oklch(0.985 0 0); - --popover: - oklch(0.205 0 0); - --popover-foreground: - oklch(0.985 0 0); - --primary: - oklch(0.922 0 0); - --primary-foreground: - oklch(0.205 0 0); - --secondary: - oklch(0.269 0 0); - --secondary-foreground: - oklch(0.985 0 0); - --muted: - oklch(0.269 0 0); - --muted-foreground: - oklch(0.708 0 0); - --accent: - oklch(0.269 0 0); - --accent-foreground: - oklch(0.985 0 0); - --destructive: - oklch(0.704 0.191 22.216); - --border: - oklch(1 0 0 / 10%); - --input: - oklch(1 0 0 / 15%); - --ring: - oklch(0.556 0 0); - --chart-1: - oklch(0.87 0 0); - --chart-2: - oklch(0.556 0 0); - --chart-3: - oklch(0.439 0 0); - --chart-4: - oklch(0.371 0 0); - --chart-5: - oklch(0.269 0 0); - --sidebar: - oklch(0.205 0 0); - --sidebar-foreground: - oklch(0.985 0 0); - --sidebar-primary: - oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: - oklch(0.985 0 0); - --sidebar-accent: - oklch(0.269 0 0); - --sidebar-accent-foreground: - oklch(0.985 0 0); - --sidebar-border: - oklch(1 0 0 / 10%); - --sidebar-ring: - oklch(0.556 0 0); + --card: oklch(0.205 0 0); + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.87 0 0); + --chart-2: oklch(0.556 0 0); + --chart-3: oklch(0.439 0 0); + --chart-4: oklch(0.371 0 0); + --chart-5: oklch(0.269 0 0); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); } .dark #nd-sidebar { @@ -869,13 +784,13 @@ div[style*="--callout-color"] { } @layer base { - * { - @apply border-border outline-ring/50; + * { + @apply border-border outline-ring/50; } - body { - @apply bg-background text-foreground; + body { + @apply bg-background text-foreground; } - html { - @apply font-mono; + html { + @apply font-mono; } } diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 269f13b6b..fa04e0c37 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -10,7 +10,7 @@ "fumadocs-mdx:collections/*": ["./.source/*"] }, "lib": ["ES2022", "DOM", "DOM.Iterable"], - "types": ["vite/client"], + "types": ["vite-plus/client"], /* Bundler mode */ "moduleResolution": "bundler", diff --git a/apps/docs/vite.config.ts b/apps/docs/vite.config.ts index 77bf199cf..a39ac33dd 100644 --- a/apps/docs/vite.config.ts +++ b/apps/docs/vite.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from "vite-plus"; +import { defineConfig, lazyPlugins } from "vite-plus"; import { devtools } from "@tanstack/devtools-vite"; import { tanstackStart } from "@tanstack/react-start/plugin/vite"; @@ -14,14 +14,14 @@ const config = defineConfig({ host: true, port: 4000, }, - plugins: [ + plugins: lazyPlugins(() => [ mdx(MdxConfig), devtools(), tailwindcss(), cloudflare({ viteEnvironment: { name: "ssr" } }), tanstackStart(), viteReact(), - ], + ]), resolve: { tsconfigPaths: true, }, diff --git a/bun.lock b/bun.lock index ac01744db..7c2a3eea8 100644 --- a/bun.lock +++ b/bun.lock @@ -94,6 +94,7 @@ "@types/react-dom": "^19.2.3", "@types/semver": "^7.7.1", "@vitejs/plugin-react": "^6.0.2", + "@voidzero-dev/vite-plus-core": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-core@eadfb3dec203530d065ae4390288b029108d5baf", "babel-plugin-react-compiler": "^1.0.0", "dotenv-cli": "^11.0.0", "drizzle-kit": "^1.0.0-rc.4-ca0f029", @@ -101,13 +102,12 @@ "happy-dom": "^20.10.3", "msw": "^2.14.6", "nitro": "^3.0.260522-beta", - "oxfmt": "0.54.0", "tailwindcss": "^4.3.1", "tw-animate-css": "^1.4.0", "typescript": "^6.0.3", - "vite": "^8.0.16", - "vite-plus": "^0.1.24", - "vitest": "^4.1.8", + "vite": "file:./vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", + "vite-plus": "catalog:", + "vitest": "catalog:", "wait-for-expect": "^4.0.0", }, }, @@ -135,7 +135,8 @@ "electron": "^39.2.7", "electron-builder": "^26.15.3", "typescript": "^6.0.3", - "vite": "^8.0.16", + "vite": "file:../../vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", + "vite-plus": "catalog:", }, }, "apps/docs": { @@ -177,10 +178,10 @@ "@vitejs/plugin-react": "^6.0.2", "jsdom": "^29.1.1", "typescript": "^6.0.3", - "vite": "^8.0.16", + "vite": "file:../../vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", "vite-plugin-killer-instincts": "^1.1.0", - "vite-plus": "^0.1.24", - "vitest": "^4.1.8", + "vite-plus": "catalog:", + "vitest": "catalog:", "wrangler": "^4.100.0", }, }, @@ -210,8 +211,14 @@ }, "overrides": { "esbuild": "^0.28.1", + "vite": "file:./vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", + "vitest": "catalog:", "yauzl": "^3.4.0", }, + "catalog": { + "vite-plus": "https://pkg.pr.new/voidzero-dev/vite-plus@eadfb3dec203530d065ae4390288b029108d5baf", + "vitest": "4.1.9", + }, "packages": { "@asamuzakjp/css-color": ["@asamuzakjp/css-color@5.1.11", "", { "dependencies": { "@asamuzakjp/generational-cache": "^1.0.1", "@csstools/css-calc": "^3.2.0", "@csstools/css-color-parser": "^4.1.0", "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg=="], @@ -309,6 +316,8 @@ "@better-fetch/fetch": ["@better-fetch/fetch@1.3.0", "", {}, "sha512-Lgkl18IrUURFqa1nE38GNDWXf7XGzfxXQDCE/alCQV0yZ98YrPGtlmW61ch1T4YRt3lxrSAGA+Ft73FzuWWb3A=="], + "@blazediff/core": ["@blazediff/core@1.9.1", "", {}, "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA=="], + "@bramus/specificity": ["@bramus/specificity@2.4.2", "", { "dependencies": { "css-tree": "^3.0.0" }, "bin": { "specificity": "bin/cli.js" } }, "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw=="], "@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.5.0", "", {}, "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg=="], @@ -685,47 +694,47 @@ "@oxc-parser/binding-win32-x64-msvc": ["@oxc-parser/binding-win32-x64-msvc@0.120.0", "", { "os": "win32", "cpu": "x64" }, "sha512-ys+upfqNtSu58huAhJMBKl3XCkGzyVFBlMlGPzHeFKgpFF/OdgNs1MMf8oaJIbgMH8ZxgGF7qfue39eJohmKIg=="], - "@oxc-project/runtime": ["@oxc-project/runtime@0.133.0", "", {}, "sha512-PkvjA1Lq5++V5S1E6Patr92ZVcieE6EalDr1VJTqv4BnjZdOUC4W3p8k1wMXSd5/2aFP4b/A6N5sg2Bkzcr9vQ=="], + "@oxc-project/runtime": ["@oxc-project/runtime@0.137.0", "", {}, "sha512-eg4nbD+t3awY/gxhcc5M5IX556O6q17mGJKvl/brL86uDZn41ZwrVO6MEAMJVNf3Q1mhhoIOzNxbNE70UUFK3Q=="], - "@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], + "@oxc-project/types": ["@oxc-project/types@0.137.0", "", {}, "sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA=="], - "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.54.0", "", { "os": "android", "cpu": "arm" }, "sha512-NAtpl/SiaeU103e7/OmZw0MvUnsUUopW7hEm/ecegJg7YM0skQaA0IXEZoyTV6NUdiNPupdIUreRqUZTShbn/g=="], + "@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.56.0", "", { "os": "android", "cpu": "arm" }, "sha512-CSCxi7ovYojgfdPOdUb9T508HKeAdDIKeRGg7x8IZwVJrWz9gVgX7MbUnFqtQAE4QvoNo07mj2JlwnOzJw4qqA=="], - "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.54.0", "", { "os": "android", "cpu": "arm64" }, "sha512-B4VZfBUlKK1rmMChsssNZbkZjE8+FzG3avMjGgMDwbGxXRoXkoeXiAZ+78Oa+eyDPHvDCiUb4zH/vmCOUSafLQ=="], + "@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.56.0", "", { "os": "android", "cpu": "arm64" }, "sha512-HYJFnd+PkDwf6S9ZPGzXXtjNqvRWFnnhdbWaouh4mi/SxU8wmDuzlMn3xo/wDTGnr4Q1VA7ZzOaE/D4biW0W6A=="], - "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.54.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-i02vF75b+ePsQP3tHqSxVYI5S6b8X/xqdPu7/mDHXtpgXLTYXi3jJmfHU0j+dnZZDKaYTx/ioCK7QYJmtiJR2g=="], + "@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.56.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-sftR/bEOr+t1gs+evwsHi/Xbq2FAPA2uU3VMr8n6ZU9PoK/IMSfnfu7+OEe/uy1+knhrFl4Wvy7Vkm3uo9mJ7g=="], - "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.54.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-8VMFvGvooXj7mswkbrhdVZ2/sgiDaBzWpkkbtO+qGDLV4EfJd67nQadHkQC0ZNbaWA9ajXfqI6i7PZLIeDzxEQ=="], + "@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.56.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-z66SdjLqa3MUPKvTp3Mbb5nSjKSbnYxJGeB+Wx987s8T5hPcIRiBMfnJ6zcPgYtQn3x5xjvdzNVkXrSeYH6ZFg=="], - "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.54.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0cRHnp43WN1Jrc5s0BdbdKgR1XirdvHy7TAFi3JEsoEVQVJxTXMbpVd76sxXlgRswNMDhVFSJw+y7Eb8mEavFQ=="], + "@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.56.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-t2tkrV1vtZyaItSQ71dTi2ZVKZEI39b/LqLT12V5KMfIeXK6N32TUC1jhOXKVQmhECq9j2ZXMQV3JeT1kh9Vmg=="], - "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.54.0", "", { "os": "linux", "cpu": "arm" }, "sha512-JyQAk3hK/OEtup7Rw6kZwfdzbKqTVD5jXXb8Xpfay29suwZyfBDMVW/bj4RqEPySYWc6zCp198pOluf8n5uYzg=="], + "@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.56.0", "", { "os": "linux", "cpu": "arm" }, "sha512-+gCy+Tp3RHeXQ9y/QrS76lXIpZkbziTyp6hIgjB2MssCwfMph3vG/GEfkhO34Rai1vhYIaUkvv8UT1BcDorJPw=="], - "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.54.0", "", { "os": "linux", "cpu": "arm" }, "sha512-qnvLatTpM8vtvjOfcckBOzJjk+n6ce/wwpP8OFeUrD5aNLYcKyWAitwj+Rk3PK9jGanbZvKsJnv14JGQ6XqFdw=="], + "@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.56.0", "", { "os": "linux", "cpu": "arm" }, "sha512-0kKkVvQ2I+FJ2sxQyUu1zJ0yWP5kcWse/yVFnGQSFCXMwSSkfEaUGu0dW774O7nyy3jrcBGap7OSc8dZmU/CdA=="], - "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.54.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-SMkhnCzIYZYDk9vw3W/80eeYKmrMpGF0Giuxt4HruFlCH7jEtnPeb3SdQKMfgYi/dgtaf+hZAb5XWPYnxqCQ3w=="], + "@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.56.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-npkA2siMbyWRh+wEhi1aTAx4RirukGcGNt8V4Ch86pG+xU9aurqS1MZOnKYMu03ISwat3rB6zkQx51SsB9obNw=="], - "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.54.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-QrwJlBFFKnxOd95TAaszpMbZBLzMoYMpGaQTZF8oibacnF5rv8l12IhILhQRPmksWiBqg0YSe2Mnl7ayeJAHSA=="], + "@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.56.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UekqOjGkV4/MkqreCV9SPIB2jlR3/HbXrmhV1rVXJZ9wfDXMyCMriLtq3tHqLY4PkbVWNtfcm1kMojJ26KLSJw=="], - "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.54.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WILatiol/TUHTlhod7R09+7Az/XlhKwmY1MHfLZNmewltPWNN/EwxP2rQSHahibZ/cB8gmckEBjBOByD+5bYsQ=="], + "@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.56.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-XSzveSpeZMD5XJpew5lRFVtNnT04xd3rJxENXmk7wkZzN9oWzv2aFJyoNDhOtoz69BYaS/fg4SYl+CfEZRpB0Q=="], - "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.54.0", "", { "os": "linux", "cpu": "none" }, "sha512-f05YMG4BH4G8S4ME6UM6fi1MnJ9094mrnvO5Pa4SJlMfWlUM+1/ZWMEF4NnjM7shZAvbHsHRuVYpUo0PHC4P9Q=="], + "@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-EkQ0nJa7k7HDDIVuPF7WY+k4k+bzdclLYtyIXNt7/OqVghfNiMym6YGppFBgx1XRIHW6QylxBz5OogumPjPJbQ=="], - "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.54.0", "", { "os": "linux", "cpu": "none" }, "sha512-UfL+2hj1ClNqcCRT9s8vBU4axDpjxgVxX96G+9DYAYjoc5b0u15CJtn2jgsi9iM+EbGNc5CW1HVRgwVu76UsSA=="], + "@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.56.0", "", { "os": "linux", "cpu": "none" }, "sha512-dyjAGW8jKRge0ik6U/dgvQG0nVpA3iBlRskQTz5qJLvQWIrySxX5jpqzPetLBNIIZ231KA82fDdi1nLTk8ENCw=="], - "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.54.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-3/XZe931Hka+J6NjnaqJzYpsWWxDTuRdUdwSQHnOuJEgbC+SehIMFJS8hsEjV7LBhVSL2OCnRLvbVW8O97XIyw=="], + "@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.56.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-60ZGH3LtfqlW8X6vcLdSFY4lvCQYINurttYBKaALnHCDVAUCYJ1LsUgS6p1XOzVlzEDx3yNUZvDF1Lvt59zoZw=="], - "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.54.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Ik93RlObtu43GbxApafayFjwYE06L6Xr08cSwpBPYbDrLp2ReZx0Jm1DqwRyYRnukUJy+rK2WaEvUQOxdytU9Q=="], + "@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.56.0", "", { "os": "linux", "cpu": "x64" }, "sha512-u1suj1tgJHK4ZqB7buCtdbNef2n8+d0lXTPJwLHNmtyK6p+DTpsaoDvmqhQrA56fgKYv4LuRxNtL8YooebKOew=="], - "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.54.0", "", { "os": "linux", "cpu": "x64" }, "sha512-yZcakmPlD86CNymknd7KfW+FH+qfbqJH+i0h69CYfV1+KMoVeM9UED+8+TDVoU4haxI0NxY7RPCvRLy3Sqd2Qg=="], + "@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.56.0", "", { "os": "linux", "cpu": "x64" }, "sha512-aYGLvlQHt80y+qKEtfJY/Nm27G0125Lv+qyh9SJ4Cjc6lXnXjD+ndfhqQnbV24POpMi7rNRi0jvx/0d70FRpCQ=="], - "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.54.0", "", { "os": "none", "cpu": "arm64" }, "sha512-GiVBZNnEZnKu00f1jTg49nomv187d0GQX+O+ocykoLeiaALuEO+swoTehHn9TehTfi7V8H0i0e/yvUjCqnwk1w=="], + "@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.56.0", "", { "os": "none", "cpu": "arm64" }, "sha512-H/re/gO+7ysVc+kywHNuzY3C33EN9sQcZhg0kp1ZwOZl7y998ZE5mhnBiuGR/nYI0pqLL5xQfrHVUOJ/cIJsCA=="], - "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.54.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-J0SSB8Z1Fre2sxRolYcW6Rl1RQmKdQ2hnHyq4YJrfBRiXTObLw4DXnIVraM/UyqGqwOi7yTrQA4VT7DPxlHVKA=="], + "@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.56.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-6qLNXfXmtAs8jXDvYMkxk6Wec5SUJoew+ZX1uOZmqaR7ks0EJFbAohuOCELDyJMWyVlxotVG8Xf8m74Bfq0O2w=="], - "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.54.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-O61UDVj8zz6yXJjkHPf05VaMLOXmEF8P5kf/N0W7AQMmd6bcQogl+KJc7rMutKTL524oE9iH32JXZClBFmEQIg=="], + "@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.56.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-UXEXuKphAe15bsob4AswNMArCw38XSmUIs3wk1s6e6MX9OWGW/IRWU95s1hZDiVg09STy1jHgyN2qkqbu1FT0w=="], - "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.54.0", "", { "os": "win32", "cpu": "x64" }, "sha512-1MDpqJPiFqxWtIHas8vkb1VZ7f7eKyTffAwmO8isxQYMaG1OFKsH666BWLeXQLO+IWNfiMssLD55hbR1lIPTqg=="], + "@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.56.0", "", { "os": "win32", "cpu": "x64" }, "sha512-HPyNDjky+NIOuaMvHZflR+kst3YWdUOH2JUQYkf99grqZ5mEBTQM6h9iGy501Z8Xt5xMScrwHOuVCOlqDrktRw=="], "@oxlint-tsgolint/darwin-arm64": ["@oxlint-tsgolint/darwin-arm64@0.23.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gOs9PVr2wEg4ox9z0aJo+RKhhImW86YL5N6yav8BK/rgPsIrwN/igSZ+pbRr723NFvUNKde9fgMhRA6JrXAOZw=="], @@ -739,45 +748,45 @@ "@oxlint-tsgolint/win32-x64": ["@oxlint-tsgolint/win32-x64@0.23.0", "", { "os": "win32", "cpu": "x64" }, "sha512-5MyjFuqf+g8OUPJBSGWHJtmoWnzFJYyOg4To9WMQshZYEWig/vtu7JtJ03VWnzHv9LJkAUeApY0gVCOywFR/iQ=="], - "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.67.0", "", { "os": "android", "cpu": "arm" }, "sha512-VrSi571rDv1N8HaEDM+DEX8nmT0y9jJo8tzzW13vsOWTx59xQczCIJx68n2zWOXRT5YKZsOZXp4qkHN/10x4mw=="], + "@oxlint/binding-android-arm-eabi": ["@oxlint/binding-android-arm-eabi@1.71.0", "", { "os": "android", "cpu": "arm" }, "sha512-ImGmd1njEg4FEJH03jhRnveEegtO3czCtfptvaHivKAZQIYATbVFBrrzbaYMYv0oJioTnxZAZVSyV+oL7W8S2g=="], - "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.67.0", "", { "os": "android", "cpu": "arm64" }, "sha512-l6+NdYxMoRohix5r5bbigW16LPicceCwGcQ6LKKuE1kUdjgFfQolJjrJsQYPFetIs78Gxj/G/f5TEGoTCwj9nQ=="], + "@oxlint/binding-android-arm64": ["@oxlint/binding-android-arm64@1.71.0", "", { "os": "android", "cpu": "arm64" }, "sha512-4A5BEexBrwY1YFF8Kiq/lp/wQPRG79G3BWIE1FuWaM5MvmpYSd+7ZySVcKkHdwo0UDzdQGddp6pD9mpctMqLnw=="], - "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.67.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-jOzXxS1AxFxhImLIRbtGIMrEwaXcgMw3gR57WB1cRk8ai+vpr6726kxXqVvlNsrXtJ/FrmOm8RxlC0m8SW24Qg=="], + "@oxlint/binding-darwin-arm64": ["@oxlint/binding-darwin-arm64@1.71.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9wJA9GJulLwS2usU3CEisI/ESDO1n1z9eyTCvApMDrAkbJ1ve0mORgTMjcWWsKxkzkeZ2N/Gpra5IQE7x8tYgQ=="], - "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.67.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-3DFAVY94OqjIZHXIPz37yGRSWwOFTAqChQ64/M69GYLawzP0KiwdhDNfqdKKYT0bTR/DNxmMnQsj3ns+8+X/Lg=="], + "@oxlint/binding-darwin-x64": ["@oxlint/binding-darwin-x64@1.71.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-PlLCjS06V0PeJMAJwzjrExw1sYNW9Gch3JtNlcwwZDXGlTYDuwHNN89zYH8LTXFfgkVtsYvs2nv0FqrzyuFDzg=="], - "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.67.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-e4dDKZuLu8TR9DEBssWSDahlPgZBwojTTHZUvnjBRJfJJbpxYCjfjKfi0Z1+CSLMiJBwI2yCDtRM1XJQaARjmg=="], + "@oxlint/binding-freebsd-x64": ["@oxlint/binding-freebsd-x64@1.71.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Lhil7bWre0ncxbUoDoxfS0JzpTz17BRQKW7iwoAUY8GJ66+WwJEfYPCFJ1P0WgVZR5/O/b3Q2pENlHOjeXLOGQ=="], - "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.67.0", "", { "os": "linux", "cpu": "arm" }, "sha512-BKytFdcQzbITV3xlnzDUDTEDtbUMCCiC4EaNTDZ4FyT8gdNvBC4gfiLucXp/sQl0XU3p7syTlorUWVVVBZab2g=="], + "@oxlint/binding-linux-arm-gnueabihf": ["@oxlint/binding-linux-arm-gnueabihf@1.71.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Oo9/L58PYD3RC0x05d2upAPLllHytTjHQGsnC06P6Ynn7jKkp5mdImQxXdJ3+FnBaKspNpGogzgVsi6g872LiA=="], - "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.67.0", "", { "os": "linux", "cpu": "arm" }, "sha512-XYAv0esBDX7BpTzRDjVX2Vdj+zndd8ll2dFQiaeQ6zTZr7A8GRDTN7fH3FP3jU+O0vCDx85oH/EtG7BzPgAXuw=="], + "@oxlint/binding-linux-arm-musleabihf": ["@oxlint/binding-linux-arm-musleabihf@1.71.0", "", { "os": "linux", "cpu": "arm" }, "sha512-mSHfyfgJrEbyIR29ejaeS50BdPk+GoNPlC1dckpDiUZbJAIel68sjSMdOt4WY0/gva+ECC7FNITQkxMJU+vSBw=="], - "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.67.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-zizRMjA0i6u/2B0evgda04iycu+MoNuf1pBy6Eh+1CjC5wMEG7qN5zdDKTCvFc0KSYSDM9QTG3gjZHirgtQuKg=="], + "@oxlint/binding-linux-arm64-gnu": ["@oxlint/binding-linux-arm64-gnu@1.71.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-n9yY4M2tiy3aij4AqtlnspzpfdpeT5JQfK2/w2d8oyp5W0FRwOb1dIeX99nORNcxGr08iD9bH8N5XFz3I2iy8w=="], - "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.67.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-zB/Tf6sUjmmvvbva9Gj3JTJ8rJ9t4I8/U0o6vSRtd0DRIsIuyegBwJAzhSUFQHdMijIRJkW0exs/yBhpw2S20w=="], + "@oxlint/binding-linux-arm64-musl": ["@oxlint/binding-linux-arm64-musl@1.71.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-fJZrs5sDZtTaPIOiemRQQmo82Ezy+vOGXemPc4Ok7iVVsYsFa7SlW6Z5XN819VfsqBHRm3NJ3rTdnR8+bJYJdQ=="], - "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.67.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-kgU40Gt74CK0TCsF51KZymkIwN9U0BajKsMijB52zPqOeZU9NAHkA/NSQkZDHEaCakx42DxhXkODiAqf2b4Gug=="], + "@oxlint/binding-linux-ppc64-gnu": ["@oxlint/binding-linux-ppc64-gnu@1.71.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-cwl7VKGERIy9p+G+AvZdfy/06q0aHXaTt/mMRReC751iuNYJgqKjB7NydXSS30nBT9vtr2tunciOtrR4fD6FUA=="], - "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.67.0", "", { "os": "linux", "cpu": "none" }, "sha512-tOYhkk/iaG9aD3FvGpBFd1Lrw0x0RaVoJBxjUkfNzS50rC5NS5BteNCwgr8A2zCdADrIIoze6D7u6U5Ic++/iQ=="], + "@oxlint/binding-linux-riscv64-gnu": ["@oxlint/binding-linux-riscv64-gnu@1.71.0", "", { "os": "linux", "cpu": "none" }, "sha512-eZ8ieVXvzGi8jr7+ybQGPK2STw3mldfxZlgA2738iflfB/rzA69sE6m5rDRpQaxC7dpm745Enlh1Tod0QAk9Gg=="], - "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.67.0", "", { "os": "linux", "cpu": "none" }, "sha512-sEtywrPb+0b+tHYl1SDCrw903fiC4eyKoNqzP3v+f2JT3Xcv4NEYG+P8rj+eEnX7IWhqV/xj8/JmcmVj21CXaA=="], + "@oxlint/binding-linux-riscv64-musl": ["@oxlint/binding-linux-riscv64-musl@1.71.0", "", { "os": "linux", "cpu": "none" }, "sha512-puMDbQYe6+NXwfMusojoA7CXGn2b3utukmd23PQqc1E3XhVCwyZ+FueSMzDYeNgDV2dUfIVXAAKZBcFDeCL6sA=="], - "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.67.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-BvR8Moa0zCLxroOx4vZaZN9nUfwAUpSTwjZdxZyKy4bv3PrzrXrxKR/ZQ0L9wNSvlPhnMJeZfa3q5w6ZCTuN6Q=="], + "@oxlint/binding-linux-s390x-gnu": ["@oxlint/binding-linux-s390x-gnu@1.71.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-4NJLxBs1ujISCt3L/1FcywLs73PWtJuw+piD6feK2V6h6OS6P7xu9/sWt1DTRLibe6QCzmfZzmM/2HPORoV/Lg=="], - "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.67.0", "", { "os": "linux", "cpu": "x64" }, "sha512-mm2cxM6fksOpq6l0uFws8BUGKAR4dNa/cZCn37Npq7PFbhD5HDJqWfnoIvTaeRKMy5XdS2tO0MA0qbHDrnXAAA=="], + "@oxlint/binding-linux-x64-gnu": ["@oxlint/binding-linux-x64-gnu@1.71.0", "", { "os": "linux", "cpu": "x64" }, "sha512-cFDaiR8L3430qp88tfZnvFlt3KotFhR/DlbIL0nHOMMYiG/9Wy4l+6f7t8G8pTa9bd8Lt8+M0y/qjRQ/xcB74g=="], - "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.67.0", "", { "os": "linux", "cpu": "x64" }, "sha512-WmbMuLapKyDlobMkXAaAL0Y+Uczh4LETfIfQsUpbId4Ip8Ai82/jqeYTOoUCkuuhBFapgqP253+d83tLKOksJg=="], + "@oxlint/binding-linux-x64-musl": ["@oxlint/binding-linux-x64-musl@1.71.0", "", { "os": "linux", "cpu": "x64" }, "sha512-orfixdt76KlpNly9z0PkWBBNfwjKz+JFVLP/7wnVchlKNU9Dpt9InU/ZggeSej6fC7qwHmHNOGlhLnQXcYoGuA=="], - "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.67.0", "", { "os": "none", "cpu": "arm64" }, "sha512-9g/PqxYJelzzTAOR5Y+RiRqdeydhEuXv2KxNeFcAKQ7UsvnWSY1OP4MsuPMbTO2Pf70tz7mFhl1j13H3fyh+8g=="], + "@oxlint/binding-openharmony-arm64": ["@oxlint/binding-openharmony-arm64@1.71.0", "", { "os": "none", "cpu": "arm64" }, "sha512-9emQu2lAp6yhPB3XuI+++vR+l/o6JR1X+EpxwcumPdQXBWXEPAsquPGL7l158EqU8SebQMXTUa/S5zN98juyHw=="], - "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.67.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-2VhwE6Gatb0vJGnN0TBuQMbKCOiZlSQ/zJvVWYLK4a9d4iDiJOen/yVQkGpmsJ90MuH66fzi0kEKI0jRQMDxGA=="], + "@oxlint/binding-win32-arm64-msvc": ["@oxlint/binding-win32-arm64-msvc@1.71.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-bd5kI8spYwTm3BILDtGhi73zoup5dw8MlPQNT8YB3BD5UIsjNe3K9/4ctrzQMX4SZMoK5HgzVLkLJzacEXB7fA=="], - "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.67.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-EQ3VExXfeM1InbE5+JjufhZZTWy+kHUwgt3yZR7gQ47Je/mE0WspQPan0OJznh493L5anM210YNJtH1PXjTSFg=="], + "@oxlint/binding-win32-ia32-msvc": ["@oxlint/binding-win32-ia32-msvc@1.71.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-W4HvOHGzVLHcrmFu+bMrJlho+/yrlX5ZNdJZqGe8MEldkQG+RHYhxxad9P4jvWAYFmIqUA5i9DQ8QsJqSU9GIw=="], - "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.67.0", "", { "os": "win32", "cpu": "x64" }, "sha512-bw24y+/1MHS4QDkons3YyHkPT9uCMoLHHgQhb+mb8NOjTYwub1CZ+K9Ngr8aO5DMrDrkqHwTzlTwFP2vS8Y/ZQ=="], + "@oxlint/binding-win32-x64-msvc": ["@oxlint/binding-win32-x64-msvc@1.71.0", "", { "os": "win32", "cpu": "x64" }, "sha512-D2kyEIPHk/G/wiZLnwTVC/sVst+T/lKldVOjAFpgTIBUAOlry72e5OiapDbDBF4LfJLkN5ypJb/8Eu6yJzkveQ=="], - "@oxlint/plugins": ["@oxlint/plugins@1.61.0", "", {}, "sha512-nkOyZEF1vH527CkdQtOp1HMrVFEM4ResURvI2JFeGoup+h+43J/k/FgdOR9b9Isxg+Yae7qVDa7y3nssE8b3TQ=="], + "@oxlint/plugins": ["@oxlint/plugins@1.68.0", "", {}, "sha512-titLmukUt/h8ho7Svlf0xSBjoy2ccZKrXjpXpZCj+v6V4CJccC2KyP45BLSCMx8YIpifMyiDyUptM4+5sruKbQ=="], "@peculiar/asn1-android": ["@peculiar/asn1-android@2.8.0", "", { "dependencies": { "@peculiar/asn1-schema": "^2.8.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "sha512-skLbS+IOGv1lUgDqtChr8xvtvEr3HMse/JGBaL2r1J1o/n7a8wqOrovMtlRq/UXLhxvmLaONP67hwtshgzwfzA=="], @@ -1217,39 +1226,41 @@ "@vitejs/plugin-react": ["@vitejs/plugin-react@6.0.2", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.0" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler"] }, "sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg=="], - "@vitest/expect": ["@vitest/expect@4.1.8", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.8", "@vitest/utils": "4.1.8", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ=="], + "@vitest/browser": ["@vitest/browser@4.1.9", "", { "dependencies": { "@blazediff/core": "1.9.1", "@vitest/mocker": "4.1.9", "@vitest/utils": "4.1.9", "magic-string": "^0.30.21", "pngjs": "^7.0.0", "sirv": "^3.0.2", "tinyrainbow": "^3.1.0", "ws": "^8.19.0" }, "peerDependencies": { "vitest": "4.1.9" } }, "sha512-j1BKtWmPcqpMhmx/L9EPLgAJpCb0zKfwoWLmqBbxaogCXHjOwHFSEoHCBfnGtx93xKQwilZ26m+UOsHqHMkRNg=="], - "@vitest/mocker": ["@vitest/mocker@4.1.8", "", { "dependencies": { "@vitest/spy": "4.1.8", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw=="], + "@vitest/browser-preview": ["@vitest/browser-preview@4.1.9", "", { "dependencies": { "@testing-library/dom": "^10.4.1", "@testing-library/user-event": "^14.6.1", "@vitest/browser": "4.1.9" }, "peerDependencies": { "vitest": "4.1.9" } }, "sha512-a4/OrkMDb/WUnE4OOB/4FJbK3rYVO7YykqtUgcTKG4p2a0R3XcjPVu7SLRHFBs2+NIYhv5yxp1Lz3dbdGBjIow=="], - "@vitest/pretty-format": ["@vitest/pretty-format@4.1.8", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA=="], + "@vitest/expect": ["@vitest/expect@4.1.9", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA=="], - "@vitest/runner": ["@vitest/runner@4.1.8", "", { "dependencies": { "@vitest/utils": "4.1.8", "pathe": "^2.0.3" } }, "sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg=="], + "@vitest/mocker": ["@vitest/mocker@4.1.9", "", { "dependencies": { "@vitest/spy": "4.1.9", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw=="], - "@vitest/snapshot": ["@vitest/snapshot@4.1.8", "", { "dependencies": { "@vitest/pretty-format": "4.1.8", "@vitest/utils": "4.1.8", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ=="], + "@vitest/pretty-format": ["@vitest/pretty-format@4.1.9", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A=="], - "@vitest/spy": ["@vitest/spy@4.1.8", "", {}, "sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA=="], + "@vitest/runner": ["@vitest/runner@4.1.9", "", { "dependencies": { "@vitest/utils": "4.1.9", "pathe": "^2.0.3" } }, "sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg=="], - "@vitest/utils": ["@vitest/utils@4.1.8", "", { "dependencies": { "@vitest/pretty-format": "4.1.8", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg=="], + "@vitest/snapshot": ["@vitest/snapshot@4.1.9", "", { "dependencies": { "@vitest/pretty-format": "4.1.9", "@vitest/utils": "4.1.9", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA=="], - "@voidzero-dev/vite-plus-core": ["@voidzero-dev/vite-plus-core@0.1.24", "", { "dependencies": { "@oxc-project/runtime": "=0.133.0", "@oxc-project/types": "=0.133.0", "lightningcss": "^1.30.2", "postcss": "^8.5.6" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@tsdown/css": "0.22.1", "@tsdown/exe": "0.22.1", "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.18", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "publint": "^0.3.8", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "typescript": "^5.0.0 || ^6.0.0", "unplugin-unused": "^0.5.0", "unrun": "*", "yaml": "^2.4.2" }, "optionalPeers": ["@arethetypeswrong/core", "@tsdown/css", "@tsdown/exe", "@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "publint", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "typescript", "unplugin-unused", "unrun", "yaml"] }, "sha512-iXPGBABnQnrDMx89H6MOCGcTZp+QW+3rY4YMVKdE6ydchSvPk2O3MI2vgaRVfOtWJ2IjnxSnf1n2yjP67ZBRFQ=="], + "@vitest/spy": ["@vitest/spy@4.1.9", "", {}, "sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA=="], - "@voidzero-dev/vite-plus-darwin-arm64": ["@voidzero-dev/vite-plus-darwin-arm64@0.1.24", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Hpo9W9piSFlEsJzGkwzfDXhJGrnYByxHXF7NVQZ7g+SLOprddtlfTeM8t+gq9dxcuq0RzM8ddMAhDQP/K3fZQA=="], + "@vitest/utils": ["@vitest/utils@4.1.9", "", { "dependencies": { "@vitest/pretty-format": "4.1.9", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA=="], - "@voidzero-dev/vite-plus-darwin-x64": ["@voidzero-dev/vite-plus-darwin-x64@0.1.24", "", { "os": "darwin", "cpu": "x64" }, "sha512-SwnnnZrEFBiU5iKlh/CZAVwn0RFt/Udrvt3kFLtdRxMtN5bKaqTFVA2H8Y/FPCWp1QX9bs4V9ZIAeXAk06zLkw=="], + "@voidzero-dev/vite-plus-core": ["@voidzero-dev/vite-plus-core@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-core@eadfb3dec203530d065ae4390288b029108d5baf", { "dependencies": { "@oxc-project/runtime": "=0.137.0", "@oxc-project/types": "=0.137.0", "lightningcss": "^1.32.0", "postcss": "^8.5.6" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "publint": "^0.3.8", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "typescript": "^5.0.0 || ^6.0.0", "unplugin-unused": "^0.5.0", "unrun": "*", "yaml": "^2.4.2" }, "optionalPeers": ["@arethetypeswrong/core", "@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "publint", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "typescript", "unplugin-unused", "unrun", "yaml"] }, "sha512-/2Dgv2L8iGu2osrEQbNgvKEmKAATFVSAL9nWjJQG2uXraj2Fl7LNK8vu2zaJr2d1jH6mZpfrRZTK/lhqdVy6HQ=="], - "@voidzero-dev/vite-plus-linux-arm64-gnu": ["@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.24", "", { "os": "linux", "cpu": "arm64" }, "sha512-ImM3eqDki4DpRuHjW6dEh4St8zvbcfOMR7KQZJX42ArriCLQ/QdaYhDRRbcDi27XsOBqRxm2eqUUEymPrYIHpA=="], + "@voidzero-dev/vite-plus-darwin-arm64": ["@voidzero-dev/vite-plus-darwin-arm64@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-darwin-arm64@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-uD1X+5qziDgu2yMli+PFZbYPFDzcuFR3TCeEePWMzghUE0e+sa+WRnn+MdbtJookljcD+QYCEc0cldZbOGUfyg=="], - "@voidzero-dev/vite-plus-linux-arm64-musl": ["@voidzero-dev/vite-plus-linux-arm64-musl@0.1.24", "", { "os": "linux", "cpu": "arm64" }, "sha512-gj4mzbob/ls8Zs7iTuF9Gr0EFFF7tdpDiPxDPBkH8tJP5OkHABlzWUwJhU+9xxcUbTaXqpHDw68Mil7jm5dpMg=="], + "@voidzero-dev/vite-plus-darwin-x64": ["@voidzero-dev/vite-plus-darwin-x64@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-darwin-x64@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-v/Wcw/KLc9SBBVRDDqzs2wii0/l2hDTvduQsemgfBM3sFXuo/JXdVAY+vGjgX7c1MIvTsE4zl++UAAcuLsCIpw=="], - "@voidzero-dev/vite-plus-linux-x64-gnu": ["@voidzero-dev/vite-plus-linux-x64-gnu@0.1.24", "", { "os": "linux", "cpu": "x64" }, "sha512-x7IYK7lI+WuF1n3jSzEYU6FgJxPX/R0rDmTTsOutooGGCU7uShZvfZqIoiTXK0eFnJU5ij5BfBgenenUfsaT/A=="], + "@voidzero-dev/vite-plus-linux-arm64-gnu": ["@voidzero-dev/vite-plus-linux-arm64-gnu@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-arm64-gnu@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-DrqW/HQaY/CFZlrLYnlapbKFqJGedc2P0N/WIsKI7yPKziEZijeI5VgGo9K7T281oghiUu1qkxIg459LQwVJHQ=="], - "@voidzero-dev/vite-plus-linux-x64-musl": ["@voidzero-dev/vite-plus-linux-x64-musl@0.1.24", "", { "os": "linux", "cpu": "x64" }, "sha512-JCy2w0eSVUlWQlggK5T47MnL+j0o4EY7hLskINVI8gi+aixQF4xnYBDobz0lbxkqz3/IfiLyXUx6TcU3thcsGQ=="], + "@voidzero-dev/vite-plus-linux-arm64-musl": ["@voidzero-dev/vite-plus-linux-arm64-musl@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-arm64-musl@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-wDU3bDz4fWalqUN9p3A3cF5sfE9RsQ67UA98tiIuoWbJNVQUBS6X7EqXcpChZBDzE46PQn+61jWQaXOL6FiIJw=="], - "@voidzero-dev/vite-plus-test": ["@voidzero-dev/vite-plus-test@0.1.24", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@voidzero-dev/vite-plus-core": "0.1.24", "es-module-lexer": "^1.7.0", "obug": "^2.1.1", "pixelmatch": "^7.1.0", "pngjs": "^7.0.0", "sirv": "^3.0.2", "std-env": "^4.0.0", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "ws": "^8.18.3" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/coverage-istanbul": "4.1.8", "@vitest/coverage-v8": "4.1.8", "@vitest/ui": "4.1.8", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"] }, "sha512-9NiG6UadG0iOaPL1AMsO5sDKkx6MADHw4/mMOmHWZUhhUwqzfVtnnptMK37vD71e6KyR7yAscx19FrtOWWtjvA=="], + "@voidzero-dev/vite-plus-linux-x64-gnu": ["@voidzero-dev/vite-plus-linux-x64-gnu@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-x64-gnu@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-7l8UroSyvR7/ZiTNZorsfCCZw+STKY/fhwHWfT31H8ch00IuoTH0Ro44008CK45CJbpc0J4g9je7w12O9gcT5A=="], - "@voidzero-dev/vite-plus-win32-arm64-msvc": ["@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.24", "", { "os": "win32", "cpu": "arm64" }, "sha512-G+/lhLKVjyn3FmgXX8jeWgq7RcE5O1kdR7QyFayQOdlMX/ZRkvUwQD7bFaqhKzgJM6Oj3a1FH3HQPYk5QOYuCQ=="], + "@voidzero-dev/vite-plus-linux-x64-musl": ["@voidzero-dev/vite-plus-linux-x64-musl@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-x64-musl@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-mCehQL8ZxiiQ6XeOLekIY4/x2qZjN8xMW1LhBvwH38wQYq+0G76DFiis+huTuBut1ZZUeQDDAOFtEdo4rcYAtg=="], - "@voidzero-dev/vite-plus-win32-x64-msvc": ["@voidzero-dev/vite-plus-win32-x64-msvc@0.1.24", "", { "os": "win32", "cpu": "x64" }, "sha512-b0e5XohEV1w/RdzAtv8/Hm6tvHPXouPtBNsljjW/lDJZq3NCLND5s6lqe8H4IenrgmKSoqakHWtlqJqM36cFbw=="], + "@voidzero-dev/vite-plus-win32-arm64-msvc": ["@voidzero-dev/vite-plus-win32-arm64-msvc@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-win32-arm64-msvc@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-lITarWO99VxNXv7qncS/VwEQSRHW9E+dOhxdfBeRjY15ZSOOJw3i7WH517EmxlTDw36dCvSYCmP+W5H1Qe3cAA=="], + + "@voidzero-dev/vite-plus-win32-x64-msvc": ["@voidzero-dev/vite-plus-win32-x64-msvc@https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-win32-x64-msvc@eadfb3dec203530d065ae4390288b029108d5baf", {}, "sha512-GFnF8SQYA5oQ5xzlTt+Wu9576WpuJJF/9bnyuGYdDb7yLWrOUcOtK9hTCZvsYTxDZFAJPu5b7u+YwHcgA0u4og=="], "@webassemblyjs/ast": ["@webassemblyjs/ast@1.14.1", "", { "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ=="], @@ -2301,9 +2312,9 @@ "oxc-parser": ["oxc-parser@0.120.0", "", { "dependencies": { "@oxc-project/types": "^0.120.0" }, "optionalDependencies": { "@oxc-parser/binding-android-arm-eabi": "0.120.0", "@oxc-parser/binding-android-arm64": "0.120.0", "@oxc-parser/binding-darwin-arm64": "0.120.0", "@oxc-parser/binding-darwin-x64": "0.120.0", "@oxc-parser/binding-freebsd-x64": "0.120.0", "@oxc-parser/binding-linux-arm-gnueabihf": "0.120.0", "@oxc-parser/binding-linux-arm-musleabihf": "0.120.0", "@oxc-parser/binding-linux-arm64-gnu": "0.120.0", "@oxc-parser/binding-linux-arm64-musl": "0.120.0", "@oxc-parser/binding-linux-ppc64-gnu": "0.120.0", "@oxc-parser/binding-linux-riscv64-gnu": "0.120.0", "@oxc-parser/binding-linux-riscv64-musl": "0.120.0", "@oxc-parser/binding-linux-s390x-gnu": "0.120.0", "@oxc-parser/binding-linux-x64-gnu": "0.120.0", "@oxc-parser/binding-linux-x64-musl": "0.120.0", "@oxc-parser/binding-openharmony-arm64": "0.120.0", "@oxc-parser/binding-wasm32-wasi": "0.120.0", "@oxc-parser/binding-win32-arm64-msvc": "0.120.0", "@oxc-parser/binding-win32-ia32-msvc": "0.120.0", "@oxc-parser/binding-win32-x64-msvc": "0.120.0" } }, "sha512-WyPWZlcIm+Fkte63FGfgFB8mAAk33aH9h5N9lphXVOHSXEBFFsmYdOBedVKly363aWABjZdaj/m9lBfEY4wt+w=="], - "oxfmt": ["oxfmt@0.54.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.54.0", "@oxfmt/binding-android-arm64": "0.54.0", "@oxfmt/binding-darwin-arm64": "0.54.0", "@oxfmt/binding-darwin-x64": "0.54.0", "@oxfmt/binding-freebsd-x64": "0.54.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.54.0", "@oxfmt/binding-linux-arm-musleabihf": "0.54.0", "@oxfmt/binding-linux-arm64-gnu": "0.54.0", "@oxfmt/binding-linux-arm64-musl": "0.54.0", "@oxfmt/binding-linux-ppc64-gnu": "0.54.0", "@oxfmt/binding-linux-riscv64-gnu": "0.54.0", "@oxfmt/binding-linux-riscv64-musl": "0.54.0", "@oxfmt/binding-linux-s390x-gnu": "0.54.0", "@oxfmt/binding-linux-x64-gnu": "0.54.0", "@oxfmt/binding-linux-x64-musl": "0.54.0", "@oxfmt/binding-openharmony-arm64": "0.54.0", "@oxfmt/binding-win32-arm64-msvc": "0.54.0", "@oxfmt/binding-win32-ia32-msvc": "0.54.0", "@oxfmt/binding-win32-x64-msvc": "0.54.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-DjnMwn7smSLF+Mc2+pRItnuPftm/dkUFpY/d4+33y9TfKrsHZo8GLhmUg9BrOIUEy94Rlom1Q11N6vuhE+e0oQ=="], + "oxfmt": ["oxfmt@0.56.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.56.0", "@oxfmt/binding-android-arm64": "0.56.0", "@oxfmt/binding-darwin-arm64": "0.56.0", "@oxfmt/binding-darwin-x64": "0.56.0", "@oxfmt/binding-freebsd-x64": "0.56.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.56.0", "@oxfmt/binding-linux-arm-musleabihf": "0.56.0", "@oxfmt/binding-linux-arm64-gnu": "0.56.0", "@oxfmt/binding-linux-arm64-musl": "0.56.0", "@oxfmt/binding-linux-ppc64-gnu": "0.56.0", "@oxfmt/binding-linux-riscv64-gnu": "0.56.0", "@oxfmt/binding-linux-riscv64-musl": "0.56.0", "@oxfmt/binding-linux-s390x-gnu": "0.56.0", "@oxfmt/binding-linux-x64-gnu": "0.56.0", "@oxfmt/binding-linux-x64-musl": "0.56.0", "@oxfmt/binding-openharmony-arm64": "0.56.0", "@oxfmt/binding-win32-arm64-msvc": "0.56.0", "@oxfmt/binding-win32-ia32-msvc": "0.56.0", "@oxfmt/binding-win32-x64-msvc": "0.56.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-9Dv0wV3zKiyvhjD7bRKaInKmHQ1sPx3RGOjQkGFJbbdQ16576yf8qhMSO9Q9cvHcs+1NpBsRTkuDDYFFPTJ6gw=="], - "oxlint": ["oxlint@1.67.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.67.0", "@oxlint/binding-android-arm64": "1.67.0", "@oxlint/binding-darwin-arm64": "1.67.0", "@oxlint/binding-darwin-x64": "1.67.0", "@oxlint/binding-freebsd-x64": "1.67.0", "@oxlint/binding-linux-arm-gnueabihf": "1.67.0", "@oxlint/binding-linux-arm-musleabihf": "1.67.0", "@oxlint/binding-linux-arm64-gnu": "1.67.0", "@oxlint/binding-linux-arm64-musl": "1.67.0", "@oxlint/binding-linux-ppc64-gnu": "1.67.0", "@oxlint/binding-linux-riscv64-gnu": "1.67.0", "@oxlint/binding-linux-riscv64-musl": "1.67.0", "@oxlint/binding-linux-s390x-gnu": "1.67.0", "@oxlint/binding-linux-x64-gnu": "1.67.0", "@oxlint/binding-linux-x64-musl": "1.67.0", "@oxlint/binding-openharmony-arm64": "1.67.0", "@oxlint/binding-win32-arm64-msvc": "1.67.0", "@oxlint/binding-win32-ia32-msvc": "1.67.0", "@oxlint/binding-win32-x64-msvc": "1.67.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.22.1", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-blwwaHPdoH8piQ5/z0KHeoHFR7FZgl12WluKJfu4qFLPkZl6mK04PkLE45Fw1NxfBRSlh40Gu7MkxHUw++ociQ=="], + "oxlint": ["oxlint@1.71.0", "", { "optionalDependencies": { "@oxlint/binding-android-arm-eabi": "1.71.0", "@oxlint/binding-android-arm64": "1.71.0", "@oxlint/binding-darwin-arm64": "1.71.0", "@oxlint/binding-darwin-x64": "1.71.0", "@oxlint/binding-freebsd-x64": "1.71.0", "@oxlint/binding-linux-arm-gnueabihf": "1.71.0", "@oxlint/binding-linux-arm-musleabihf": "1.71.0", "@oxlint/binding-linux-arm64-gnu": "1.71.0", "@oxlint/binding-linux-arm64-musl": "1.71.0", "@oxlint/binding-linux-ppc64-gnu": "1.71.0", "@oxlint/binding-linux-riscv64-gnu": "1.71.0", "@oxlint/binding-linux-riscv64-musl": "1.71.0", "@oxlint/binding-linux-s390x-gnu": "1.71.0", "@oxlint/binding-linux-x64-gnu": "1.71.0", "@oxlint/binding-linux-x64-musl": "1.71.0", "@oxlint/binding-openharmony-arm64": "1.71.0", "@oxlint/binding-win32-arm64-msvc": "1.71.0", "@oxlint/binding-win32-ia32-msvc": "1.71.0", "@oxlint/binding-win32-x64-msvc": "1.71.0" }, "peerDependencies": { "oxlint-tsgolint": ">=0.22.1", "vite-plus": "*" }, "optionalPeers": ["oxlint-tsgolint", "vite-plus"], "bin": { "oxlint": "bin/oxlint" } }, "sha512-U1m1X+C0vDj7DC1e13IoZULzEcPczE7UOMTs8VlZGHUEIUaSTZKo5qkPsQEfzpgnQ29Pea/w3Xntk62UCecxZw=="], "oxlint-tsgolint": ["oxlint-tsgolint@0.23.0", "", { "optionalDependencies": { "@oxlint-tsgolint/darwin-arm64": "0.23.0", "@oxlint-tsgolint/darwin-x64": "0.23.0", "@oxlint-tsgolint/linux-arm64": "0.23.0", "@oxlint-tsgolint/linux-x64": "0.23.0", "@oxlint-tsgolint/win32-arm64": "0.23.0", "@oxlint-tsgolint/win32-x64": "0.23.0" }, "bin": { "tsgolint": "bin/tsgolint.js" } }, "sha512-3mBv3CoPbh8dFbzfDGIWa2ytZjn2v+3EX4aKRXjIhsoGFzG8GCjfRirz3rwZf1wYbZzsNLTSgpw8VjQuWdp/jA=="], @@ -2345,8 +2356,6 @@ "picomatch": ["picomatch@4.0.4", "", {}, "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A=="], - "pixelmatch": ["pixelmatch@7.2.0", "", { "dependencies": { "pngjs": "^7.0.0" }, "bin": { "pixelmatch": "bin/pixelmatch" } }, "sha512-xhcb4yHu9sM/G7foGzoLtXYcC0zHEaOXXjRKhGup0fw78Nf2Tkiapv4EQyMzrbcmQPsllAI7DbFY2UT7PlI9Pg=="], - "pkce-challenge": ["pkce-challenge@5.0.1", "", {}, "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="], "pkg-types": ["pkg-types@2.3.1", "", { "dependencies": { "confbox": "^0.2.4", "exsolve": "^1.0.8", "pathe": "^2.0.3" } }, "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg=="], @@ -2777,15 +2786,15 @@ "victory-vendor": ["victory-vendor@37.3.6", "", { "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", "@types/d3-interpolate": "^3.0.1", "@types/d3-scale": "^4.0.2", "@types/d3-shape": "^3.1.0", "@types/d3-time": "^3.0.0", "@types/d3-timer": "^3.0.0", "d3-array": "^3.1.6", "d3-ease": "^3.0.1", "d3-interpolate": "^3.0.1", "d3-scale": "^4.0.2", "d3-shape": "^3.1.0", "d3-time": "^3.0.0", "d3-timer": "^3.0.1" } }, "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ=="], - "vite": ["vite@8.0.16", "", { "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.15", "rolldown": "1.0.3", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.18", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw=="], + "vite": ["vite@./vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", { "dependencies": { "@oxc-project/runtime": "=0.137.0", "@oxc-project/types": "=0.137.0", "@voidzero-dev/vite-plus-core": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-core@eadfb3dec203530d065ae4390288b029108d5baf", "lightningcss": "^1.32.0", "postcss": "^8.5.6", "vite-plus": "https://pkg.pr.new/voidzero-dev/vite-plus/vite-plus@eadfb3dec203530d065ae4390288b029108d5baf" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@arethetypeswrong/core": "^0.18.1", "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "publint": "^0.3.8", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "typescript": "^5.0.0 || ^6.0.0", "unplugin-unused": "^0.5.0", "unrun": "*", "yaml": "^2.4.2" }, "optionalPeers": ["@arethetypeswrong/core", "@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "publint", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "typescript", "unplugin-unused", "unrun", "yaml"] }, "sha512-xMUH8S3L91k2UV809Tuchx/Psj6NV9b42EnlKyIOGknH8T/nVV9wkezRmgcXZC6S/BEOTj6shFZgj5y1DNyBUw=="], "vite-plugin-killer-instincts": ["vite-plugin-killer-instincts@1.1.0", "", { "peerDependencies": { "vite": ">=5.0.0" } }, "sha512-QUVaWT6ktzZtcnS/O4Ov/LiwzqxF4EwOQdoTgBR48hF3hDB+6YcfqfVVna5Oe96xF7u1/NDYKGecmZdxio2GSA=="], - "vite-plus": ["vite-plus@0.1.24", "", { "dependencies": { "@oxc-project/types": "=0.133.0", "@oxlint/plugins": "=1.61.0", "@voidzero-dev/vite-plus-core": "0.1.24", "@voidzero-dev/vite-plus-test": "0.1.24", "oxfmt": "=0.52.0", "oxlint": "=1.67.0", "oxlint-tsgolint": "=0.23.0" }, "optionalDependencies": { "@voidzero-dev/vite-plus-darwin-arm64": "0.1.24", "@voidzero-dev/vite-plus-darwin-x64": "0.1.24", "@voidzero-dev/vite-plus-linux-arm64-gnu": "0.1.24", "@voidzero-dev/vite-plus-linux-arm64-musl": "0.1.24", "@voidzero-dev/vite-plus-linux-x64-gnu": "0.1.24", "@voidzero-dev/vite-plus-linux-x64-musl": "0.1.24", "@voidzero-dev/vite-plus-win32-arm64-msvc": "0.1.24", "@voidzero-dev/vite-plus-win32-x64-msvc": "0.1.24" }, "bin": { "oxfmt": "bin/oxfmt", "oxlint": "bin/oxlint", "vp": "bin/vp" } }, "sha512-b3fr6WtCiEhetjuzW/4KcEMOAMuZxoxZATWaXKmPzOLf1upG+pzKJOFZTb94D6wiPBlwcjxoaUtF7C3uAN+VjQ=="], + "vite-plus": ["vite-plus@https://pkg.pr.new/voidzero-dev/vite-plus@eadfb3dec203530d065ae4390288b029108d5baf", { "dependencies": { "@oxc-project/types": "=0.137.0", "@oxlint/plugins": "=1.68.0", "@vitest/browser": "4.1.9", "@vitest/browser-preview": "4.1.9", "@vitest/expect": "4.1.9", "@vitest/mocker": "4.1.9", "@vitest/pretty-format": "4.1.9", "@vitest/runner": "4.1.9", "@vitest/snapshot": "4.1.9", "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", "@voidzero-dev/vite-plus-core": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-core@eadfb3dec203530d065ae4390288b029108d5baf", "oxfmt": "=0.56.0", "oxlint": "=1.71.0", "oxlint-tsgolint": "=0.23.0", "vitest": "4.1.9" }, "optionalDependencies": { "@voidzero-dev/vite-plus-darwin-arm64": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-darwin-arm64@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-darwin-x64": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-darwin-x64@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-arm64-gnu": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-arm64-gnu@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-arm64-musl": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-arm64-musl@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-x64-gnu": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-x64-gnu@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-x64-musl": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-x64-musl@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-win32-arm64-msvc": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-win32-arm64-msvc@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-win32-x64-msvc": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-win32-x64-msvc@eadfb3dec203530d065ae4390288b029108d5baf" }, "peerDependencies": { "@vitest/browser-playwright": "4.1.9", "@vitest/browser-webdriverio": "4.1.9" }, "optionalPeers": ["@vitest/browser-playwright", "@vitest/browser-webdriverio"], "bin": { "oxfmt": "./bin/oxfmt", "oxlint": "./bin/oxlint", "vp": "./bin/vp" } }, "sha512-s8zjjwLvW2R1dF/3/qq5IunDKiy5Ns/i5oXNVRyWv/VjI991lQcowX1r/XiXnarYy/lkj0X7Av1luMKu2Wfeog=="], "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], - "vitest": ["vitest@4.1.8", "", { "dependencies": { "@vitest/expect": "4.1.8", "@vitest/mocker": "4.1.8", "@vitest/pretty-format": "4.1.8", "@vitest/runner": "4.1.8", "@vitest/snapshot": "4.1.8", "@vitest/spy": "4.1.8", "@vitest/utils": "4.1.8", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.8", "@vitest/browser-preview": "4.1.8", "@vitest/browser-webdriverio": "4.1.8", "@vitest/coverage-istanbul": "4.1.8", "@vitest/coverage-v8": "4.1.8", "@vitest/ui": "4.1.8", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig=="], + "vitest": ["vitest@4.1.9", "", { "dependencies": { "@vitest/expect": "4.1.9", "@vitest/mocker": "4.1.9", "@vitest/pretty-format": "4.1.9", "@vitest/runner": "4.1.9", "@vitest/snapshot": "4.1.9", "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.9", "@vitest/browser-preview": "4.1.9", "@vitest/browser-webdriverio": "4.1.9", "@vitest/coverage-istanbul": "4.1.9", "@vitest/coverage-v8": "4.1.9", "@vitest/ui": "4.1.9", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "./vitest.mjs" } }, "sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ=="], "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], @@ -2951,8 +2960,6 @@ "@tanstack/start-plugin-core/@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], - "@voidzero-dev/vite-plus-test/es-module-lexer": ["es-module-lexer@1.7.0", "", {}, "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA=="], - "app-builder-lib/@electron/get": ["@electron/get@3.1.0", "", { "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", "fs-extra": "^8.1.0", "got": "^11.8.5", "progress": "^2.0.3", "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "optionalDependencies": { "global-agent": "^3.0.0" } }, "sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ=="], "app-builder-lib/ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], @@ -3059,6 +3066,8 @@ "restore-cursor/onetime": ["onetime@7.0.0", "", { "dependencies": { "mimic-function": "^5.0.0" } }, "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ=="], + "rolldown/@oxc-project/types": ["@oxc-project/types@0.133.0", "", {}, "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA=="], + "router/path-to-regexp": ["path-to-regexp@8.4.2", "", {}, "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="], "schema-utils/ajv-formats": ["ajv-formats@2.1.1", "", { "dependencies": { "ajv": "^8.0.0" } }, "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA=="], @@ -3093,7 +3102,7 @@ "unzipper/fs-extra": ["fs-extra@11.3.5", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg=="], - "vite-plus/oxfmt": ["oxfmt@0.52.0", "", { "dependencies": { "tinypool": "2.1.0" }, "optionalDependencies": { "@oxfmt/binding-android-arm-eabi": "0.52.0", "@oxfmt/binding-android-arm64": "0.52.0", "@oxfmt/binding-darwin-arm64": "0.52.0", "@oxfmt/binding-darwin-x64": "0.52.0", "@oxfmt/binding-freebsd-x64": "0.52.0", "@oxfmt/binding-linux-arm-gnueabihf": "0.52.0", "@oxfmt/binding-linux-arm-musleabihf": "0.52.0", "@oxfmt/binding-linux-arm64-gnu": "0.52.0", "@oxfmt/binding-linux-arm64-musl": "0.52.0", "@oxfmt/binding-linux-ppc64-gnu": "0.52.0", "@oxfmt/binding-linux-riscv64-gnu": "0.52.0", "@oxfmt/binding-linux-riscv64-musl": "0.52.0", "@oxfmt/binding-linux-s390x-gnu": "0.52.0", "@oxfmt/binding-linux-x64-gnu": "0.52.0", "@oxfmt/binding-linux-x64-musl": "0.52.0", "@oxfmt/binding-openharmony-arm64": "0.52.0", "@oxfmt/binding-win32-arm64-msvc": "0.52.0", "@oxfmt/binding-win32-ia32-msvc": "0.52.0", "@oxfmt/binding-win32-x64-msvc": "0.52.0" }, "peerDependencies": { "svelte": "^5.0.0", "vite-plus": "*" }, "optionalPeers": ["svelte", "vite-plus"], "bin": { "oxfmt": "bin/oxfmt" } }, "sha512-nJlYM35F64zTDMecCNhoHNkf+D/eHv7xcjj9XDSj+bFAVtN93m7v8DQMdHd6nDG6Akf/kEYYHmDUBs2Dz27Sug=="], + "vite/vite-plus": ["vite-plus@https://pkg.pr.new/voidzero-dev/vite-plus/vite-plus@eadfb3dec203530d065ae4390288b029108d5baf", { "dependencies": { "@oxc-project/types": "=0.137.0", "@oxlint/plugins": "=1.68.0", "@vitest/browser": "4.1.9", "@vitest/browser-preview": "4.1.9", "@vitest/expect": "4.1.9", "@vitest/mocker": "4.1.9", "@vitest/pretty-format": "4.1.9", "@vitest/runner": "4.1.9", "@vitest/snapshot": "4.1.9", "@vitest/spy": "4.1.9", "@vitest/utils": "4.1.9", "@voidzero-dev/vite-plus-core": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-core@eadfb3dec203530d065ae4390288b029108d5baf", "oxfmt": "=0.56.0", "oxlint": "=1.71.0", "oxlint-tsgolint": "=0.23.0", "vitest": "4.1.9" }, "optionalDependencies": { "@voidzero-dev/vite-plus-darwin-arm64": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-darwin-arm64@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-darwin-x64": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-darwin-x64@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-arm64-gnu": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-arm64-gnu@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-arm64-musl": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-arm64-musl@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-x64-gnu": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-x64-gnu@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-linux-x64-musl": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-linux-x64-musl@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-win32-arm64-msvc": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-win32-arm64-msvc@eadfb3dec203530d065ae4390288b029108d5baf", "@voidzero-dev/vite-plus-win32-x64-msvc": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-win32-x64-msvc@eadfb3dec203530d065ae4390288b029108d5baf" }, "peerDependencies": { "@vitest/browser-playwright": "4.1.9", "@vitest/browser-webdriverio": "4.1.9" }, "optionalPeers": ["@vitest/browser-playwright", "@vitest/browser-webdriverio"], "bin": { "oxfmt": "./bin/oxfmt", "oxlint": "./bin/oxlint", "vp": "./bin/vp" } }, "sha512-s8zjjwLvW2R1dF/3/qq5IunDKiy5Ns/i5oXNVRyWv/VjI991lQcowX1r/XiXnarYy/lkj0X7Av1luMKu2Wfeog=="], "webpack/enhanced-resolve": ["enhanced-resolve@5.24.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ=="], @@ -3161,44 +3170,6 @@ "tough-cookie/tldts/tldts-core": ["tldts-core@7.4.2", "", {}, "sha512-nwEyF4vl4RSJjwSjBUmOSxc3BFPoIFdlRthJ6e+5v9P3bHNsoD06UjuqMUspqp7vsEZ1beaHi1km+optiE17yA=="], - "vite-plus/oxfmt/@oxfmt/binding-android-arm-eabi": ["@oxfmt/binding-android-arm-eabi@0.52.0", "", { "os": "android", "cpu": "arm" }, "sha512-17EMSJnQ9g+upVHrAUYDMfH5lvRKQ9Nvg8WtEoH72oDr1VpWz+7/o3tD97U1EToen2YAQ/68JmtDYkQUi20dfQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-android-arm64": ["@oxfmt/binding-android-arm64@0.52.0", "", { "os": "android", "cpu": "arm64" }, "sha512-A2G1IdwGEW2lLJkIxcvuirRH1CzSl/e0NX11zTlW1gvxJThfwbI/BEoaKrTNpm7M2FchvIf6guvIQU7d5iz+OQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-darwin-arm64": ["@oxfmt/binding-darwin-arm64@0.52.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-f9+bLvOYxy7NttCLFTvQ7afmqDOWY4wIP9xdvfj5trQ1qj6f2UFAGwZESlfsMjvJNTyRpXfIlOanCI9FOvoeQA=="], - - "vite-plus/oxfmt/@oxfmt/binding-darwin-x64": ["@oxfmt/binding-darwin-x64@0.52.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-YSTB9sJ5nnQd/Q0ddHkgof0ZCHPAnWZT1IW2SJ8omz7CP7KluJhO1fNHrpqdxCtpztJwSs4hY1uAee35wKxxaw=="], - - "vite-plus/oxfmt/@oxfmt/binding-freebsd-x64": ["@oxfmt/binding-freebsd-x64@0.52.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-NIrRNTTPCs4UbmVs0bxLSCDlLCtIRMJIXklNKaXa5Oj2/K1UIMBvgE8+uPVo01Io3N9HF0+GAX+aAHjUgZS7vA=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-arm-gnueabihf": ["@oxfmt/binding-linux-arm-gnueabihf@0.52.0", "", { "os": "linux", "cpu": "arm" }, "sha512-JXUCde8mn3GpgQouz2PXUokgy/uT1QrRJBL2s983VWcSQp62wTFYiNXgTKdeo1Jgbr0IgUnKKvzIk/YBlj/nVQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-arm-musleabihf": ["@oxfmt/binding-linux-arm-musleabihf@0.52.0", "", { "os": "linux", "cpu": "arm" }, "sha512-psbUXaRZ+V8DaXz10Qf7LSHtdtdKAmC8fxXgeU608jjzrmWK4quamZMOpl6sf+dikoFHA85uE93Q0BqxrCdQrQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-arm64-gnu": ["@oxfmt/binding-linux-arm64-gnu@0.52.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Jw7MgWUU9lcLCcy82updISP3EthTlfvAwR6gWNxPzqly7+fLvOi2gHQE9xXQjpqaVLm/8P+gOzlv9ODuoVlaaw=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-arm64-musl": ["@oxfmt/binding-linux-arm64-musl@0.52.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-wZg6bLjDvh2KibyI3QFUYo8GTXneIFsd0JvehtvJiUmQ8WRPERgxd/VM4ctWb86U5FT1FkqgS8/wZKVB+AZScg=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-ppc64-gnu": ["@oxfmt/binding-linux-ppc64-gnu@0.52.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-IngE8uxhNvxcMrLjZNDo9xNLY7rEK33AKnaMd2B46he1e/mz2CfcW6If/U1wUjdRZddm1QzQaciqZkuMkdh1FA=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-riscv64-gnu": ["@oxfmt/binding-linux-riscv64-gnu@0.52.0", "", { "os": "linux", "cpu": "none" }, "sha512-H3+DdFMv/efN3Efmhsv18jDrpiWWqKG7wsfAlQBqAt6z/E2Bx+TwEj2Nowe51CPOWB8/mFBC2dAMSgVFLvvowA=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-riscv64-musl": ["@oxfmt/binding-linux-riscv64-musl@0.52.0", "", { "os": "linux", "cpu": "none" }, "sha512-zji+1kb7lJKohSDjzC1IsS+K/cKRs1hdVf0ZH0VbdbiakmtLvN9twBoXo/k8VdjFax7kfo+DyPxS7vv52br1aw=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-s390x-gnu": ["@oxfmt/binding-linux-s390x-gnu@0.52.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-hcLBYedpCy7ToUvvBidWk7+11Yhg1oAZ4+6hKPic/mQI6NaqXJSXMps5nFlwUuX2ewhtLZZDPg63TI042qGKBg=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-x64-gnu": ["@oxfmt/binding-linux-x64-gnu@0.52.0", "", { "os": "linux", "cpu": "x64" }, "sha512-IDO2loXK2OtTOhSPchU9MW25mWL2QCDGdJbjN8MXKZVS80qXe5gMTwQWu/gMJ3juoBHbkuUZNB2N1LHzNT7DoA=="], - - "vite-plus/oxfmt/@oxfmt/binding-linux-x64-musl": ["@oxfmt/binding-linux-x64-musl@0.52.0", "", { "os": "linux", "cpu": "x64" }, "sha512-mAV2Hjn0SatJ+KoAzKUC3eJhdJ8wv+3m1KyuS0dTsbF0c5weq+QrCt/DRZZM+uj/XiKzCDEUKYsBF30e2qkcyw=="], - - "vite-plus/oxfmt/@oxfmt/binding-openharmony-arm64": ["@oxfmt/binding-openharmony-arm64@0.52.0", "", { "os": "none", "cpu": "arm64" }, "sha512-vd4npaUIwChxp7XzkqmepBWTT9YMcSe/NBApVGPC30/lLyOVaV3dvma1SKo03t8O73BPRAG7EyJzGlN5cJM5hQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-win32-arm64-msvc": ["@oxfmt/binding-win32-arm64-msvc@0.52.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-k2sz6gWQdMfh5HPpIS+Bw/0UEV/kaK2xuqJRrWL233sEHx9WLlsmvlPFM4HUNThkYbSN0U0vPW7LVKZWDS8hPQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-win32-ia32-msvc": ["@oxfmt/binding-win32-ia32-msvc@0.52.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-rhke69GTcArodLHpjMTfNnvjTEBryDeZcUCKK/VjXDMtfTULl6QRh0ymX5/hbCUv2WjYm9h/QbW++q2vE15gWQ=="], - - "vite-plus/oxfmt/@oxfmt/binding-win32-x64-msvc": ["@oxfmt/binding-win32-x64-msvc@0.52.0", "", { "os": "win32", "cpu": "x64" }, "sha512-q5xL7oeXkZdEtNZWBdvehJcmt+GRu9l2bK40yJs1jJXlqq+r0Hygb1rTjq+FM2o/2xyt4cufH6KRplHp3Jjsvw=="], - "@electron/asar/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], "@electron/universal/minimatch/brace-expansion/balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], diff --git a/e2e/helpers/browser-errors.ts b/e2e/helpers/browser-errors.ts index ecf1dc620..fbae12e1c 100644 --- a/e2e/helpers/browser-errors.ts +++ b/e2e/helpers/browser-errors.ts @@ -222,7 +222,9 @@ export const trackBrowserErrors = (context: BrowserContext, options: TrackBrowse ); } - const firstPageErrorSnapshot = firstPageErrorSnapshotPromise ? await firstPageErrorSnapshotPromise : undefined; + const firstPageErrorSnapshot = firstPageErrorSnapshotPromise + ? await firstPageErrorSnapshotPromise + : undefined; if (options.attach && firstPageErrorSnapshot) { await options.attach( diff --git a/examples/tailscale-sidecar/README.md b/examples/tailscale-sidecar/README.md index 47f9f24e7..e7375afca 100644 --- a/examples/tailscale-sidecar/README.md +++ b/examples/tailscale-sidecar/README.md @@ -58,7 +58,7 @@ If you want Zerobyte to be reachable only via Tailscale, remove the `ports:` sec ## Notes -- `network_mode: service:tailscale` makes Zerobyte share the Tailscale container’s *entire* network namespace (interfaces + routing table). +- `network_mode: service:tailscale` makes Zerobyte share the Tailscale container’s _entire_ network namespace (interfaces + routing table). - Traffic to tailnet IPs (typically `100.x.y.z`) goes over `tailscale0` and is governed by Tailscale ACLs; traffic to your LAN/Internet may still go over the normal network interface depending on routes and host firewall. - If `--accept-routes` is used, the Tailscale container may add routes to your routing table that Zerobyte will also use and be able to access remote networks. - If `--accept-dns` is used, Zerobyte will also use Tailscale’s DNS servers. @@ -87,7 +87,8 @@ docker exec zerobyte-tailscale tailscale ip -4 To confirm received routes when `--accept-routes` is used in kernel mode: (Missing routes could be due to ACLs or because `--accept-routes` is not set or not supported in userspace mode) + ```bash docker exec zerobyte-tailscale ip route docker exec zerobyte-tailscale ip route show table 52 -``` \ No newline at end of file +``` diff --git a/package.json b/package.json index 5ac11e38c..8ac0ebee9 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "check": "vp check", "dev": "NODE_ENV=development portless --tailscale run bunx --bun vite", "dev:desktop": "bun run --cwd apps/desktop start", - "build": "bunx --bun vite build", + "build": "bunx --bun vp build", "build:desktop": "bun run --cwd apps/desktop make", "start": "bun run .output/server/index.mjs", "test:integration": "bash app/test/integration/run.sh", @@ -34,7 +34,8 @@ "test": "dotenv -e .env.test -- bunx --bun vitest run && vp run -F './apps/*' -F './packages/*' test", "test:e2e": "NODE_ENV=test dotenv -e .env.local -- playwright test", "test:e2e:ui": "NODE_ENV=test dotenv -e .env.local -- playwright test --ui", - "test:codegen": "playwright codegen localhost:4096" + "test:codegen": "playwright codegen localhost:4096", + "prepare": "vp config" }, "dependencies": { "@better-auth/api-key": "1.6.18", @@ -126,6 +127,7 @@ "@types/react-dom": "^19.2.3", "@types/semver": "^7.7.1", "@vitejs/plugin-react": "^6.0.2", + "@voidzero-dev/vite-plus-core": "https://pkg.pr.new/voidzero-dev/vite-plus/@voidzero-dev/vite-plus-core@eadfb3dec203530d065ae4390288b029108d5baf", "babel-plugin-react-compiler": "^1.0.0", "dotenv-cli": "^11.0.0", "drizzle-kit": "^1.0.0-rc.4-ca0f029", @@ -133,18 +135,23 @@ "happy-dom": "^20.10.3", "msw": "^2.14.6", "nitro": "^3.0.260522-beta", - "oxfmt": "0.54.0", "tailwindcss": "^4.3.1", "tw-animate-css": "^1.4.0", "typescript": "^6.0.3", - "vite": "^8.0.16", - "vite-plus": "^0.1.24", - "vitest": "^4.1.8", + "vite": "file:./vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", + "vite-plus": "catalog:", + "vitest": "catalog:", "wait-for-expect": "^4.0.0" }, "overrides": { "esbuild": "^0.28.1", + "vite": "file:./vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz", + "vitest": "catalog:", "yauzl": "^3.4.0" }, - "packageManager": "bun@1.3.14" + "packageManager": "bun@1.3.14", + "catalog": { + "vitest": "4.1.9", + "vite-plus": "https://pkg.pr.new/voidzero-dev/vite-plus@eadfb3dec203530d065ae4390288b029108d5baf" + } } diff --git a/packages/core/src/backup-hooks/__tests__/hooks.test.ts b/packages/core/src/backup-hooks/__tests__/hooks.test.ts index 706a2b0a0..66d48a535 100644 --- a/packages/core/src/backup-hooks/__tests__/hooks.test.ts +++ b/packages/core/src/backup-hooks/__tests__/hooks.test.ts @@ -1,6 +1,6 @@ import nodeHttp, { type IncomingMessage, type Server, type ServerResponse } from "node:http"; import { Effect } from "effect"; -import { afterEach, beforeEach, expect, test } from "vitest"; +import { afterEach, beforeEach, expect, test } from "vite-plus/test"; import { backupWebhookConfigSchema, runBackupLifecycle } from "../index.js"; type WebhookHandler = (context: { diff --git a/packages/core/src/node/__tests__/fs.test.ts b/packages/core/src/node/__tests__/fs.test.ts index 1aaed3d40..271d70502 100644 --- a/packages/core/src/node/__tests__/fs.test.ts +++ b/packages/core/src/node/__tests__/fs.test.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import { afterEach, describe, expect, test } from "vitest"; +import { afterEach, describe, expect, test } from "vite-plus/test"; import { FILE_MODES, writeFileWithMode } from "../fs"; const tempDirectories = new Set(); diff --git a/packages/core/src/node/__tests__/spawn-background-priority.test.ts b/packages/core/src/node/__tests__/spawn-background-priority.test.ts index 7cd95afd7..75dfffa75 100644 --- a/packages/core/src/node/__tests__/spawn-background-priority.test.ts +++ b/packages/core/src/node/__tests__/spawn-background-priority.test.ts @@ -1,6 +1,6 @@ import { EventEmitter } from "node:events"; import { PassThrough } from "node:stream"; -import { beforeEach, describe, expect, test, vi } from "vitest"; +import { beforeEach, describe, expect, test, vi } from "vite-plus/test"; const mocks = vi.hoisted(() => ({ existsSync: vi.fn(), diff --git a/packages/core/src/node/__tests__/spawn.test.ts b/packages/core/src/node/__tests__/spawn.test.ts index a65325c23..9fb487cf7 100644 --- a/packages/core/src/node/__tests__/spawn.test.ts +++ b/packages/core/src/node/__tests__/spawn.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { safeExec, safeSpawn } from "../spawn"; describe("safeExec", () => { diff --git a/packages/core/src/node/logger.ts b/packages/core/src/node/logger.ts index f1f163d2d..9418f1b16 100644 --- a/packages/core/src/node/logger.ts +++ b/packages/core/src/node/logger.ts @@ -64,7 +64,8 @@ const reporter: ConsolaReporter = { ...logObj.args, ); const line = [timestamp, prefix, tag, message].filter(Boolean).join(" "); - const stream = logObj.level < 2 ? (ctx.options.stderr ?? process.stderr) : (ctx.options.stdout ?? process.stdout); + const stream = + logObj.level < 2 ? (ctx.options.stderr ?? process.stderr) : (ctx.options.stdout ?? process.stdout); stream.write(line + "\n"); }, }; @@ -88,7 +89,9 @@ const safeStringify = (value: unknown) => { const formatMessages = (messages: unknown[]) => messages.flatMap((m) => { if (m instanceof Error) { - return [sanitizeSensitiveData(m.message), m.stack ? sanitizeSensitiveData(m.stack) : undefined].filter(Boolean); + return [sanitizeSensitiveData(m.message), m.stack ? sanitizeSensitiveData(m.stack) : undefined].filter( + Boolean, + ); } if (typeof m === "object") { diff --git a/packages/core/src/restic/__tests__/server-lock-recovery.test.ts b/packages/core/src/restic/__tests__/server-lock-recovery.test.ts index d21d5cfe7..bf030c353 100644 --- a/packages/core/src/restic/__tests__/server-lock-recovery.test.ts +++ b/packages/core/src/restic/__tests__/server-lock-recovery.test.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as nodeModule from "../../node"; import * as cleanupModule from "../helpers/cleanup-temporary-keys"; import { createRestic } from "../server"; diff --git a/packages/core/src/restic/commands/__tests__/backup.test.ts b/packages/core/src/restic/commands/__tests__/backup.test.ts index 4cf76ded9..a85faa778 100644 --- a/packages/core/src/restic/commands/__tests__/backup.test.ts +++ b/packages/core/src/restic/commands/__tests__/backup.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { Effect } from "effect"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as spawnModule from "../../../node/spawn"; diff --git a/packages/core/src/restic/commands/__tests__/copy.test.ts b/packages/core/src/restic/commands/__tests__/copy.test.ts index 3ff19dcbb..06b98e9d9 100644 --- a/packages/core/src/restic/commands/__tests__/copy.test.ts +++ b/packages/core/src/restic/commands/__tests__/copy.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as nodeModule from "../../../node"; import { copy } from "../copy"; diff --git a/packages/core/src/restic/commands/__tests__/delete-snapshots.test.ts b/packages/core/src/restic/commands/__tests__/delete-snapshots.test.ts index 1b35680a5..be49bd155 100644 --- a/packages/core/src/restic/commands/__tests__/delete-snapshots.test.ts +++ b/packages/core/src/restic/commands/__tests__/delete-snapshots.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as nodeModule from "../../../node"; import { deleteSnapshots } from "../delete-snapshots"; diff --git a/packages/core/src/restic/commands/__tests__/dump.test.ts b/packages/core/src/restic/commands/__tests__/dump.test.ts index b0ba140ee..368bae620 100644 --- a/packages/core/src/restic/commands/__tests__/dump.test.ts +++ b/packages/core/src/restic/commands/__tests__/dump.test.ts @@ -1,5 +1,5 @@ import { spawn } from "node:child_process"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as nodeModule from "../../../node"; import { dump } from "../dump"; diff --git a/packages/core/src/restic/commands/__tests__/ls.test.ts b/packages/core/src/restic/commands/__tests__/ls.test.ts index 150ce7c89..ec10dbf5a 100644 --- a/packages/core/src/restic/commands/__tests__/ls.test.ts +++ b/packages/core/src/restic/commands/__tests__/ls.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as spawnModule from "../../../node/spawn"; import { ls } from "../ls"; diff --git a/packages/core/src/restic/commands/__tests__/restore.test.ts b/packages/core/src/restic/commands/__tests__/restore.test.ts index 3fc8dea86..c458166d8 100644 --- a/packages/core/src/restic/commands/__tests__/restore.test.ts +++ b/packages/core/src/restic/commands/__tests__/restore.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import { Effect } from "effect"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as spawnModule from "../../../node/spawn"; diff --git a/packages/core/src/restic/commands/__tests__/snapshots.test.ts b/packages/core/src/restic/commands/__tests__/snapshots.test.ts index 6475cba56..ecdaa32e1 100644 --- a/packages/core/src/restic/commands/__tests__/snapshots.test.ts +++ b/packages/core/src/restic/commands/__tests__/snapshots.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as nodeModule from "../../../node"; import { snapshots } from "../snapshots"; diff --git a/packages/core/src/restic/commands/__tests__/stats.test.ts b/packages/core/src/restic/commands/__tests__/stats.test.ts index 5c1a33f9d..648b0f4a5 100644 --- a/packages/core/src/restic/commands/__tests__/stats.test.ts +++ b/packages/core/src/restic/commands/__tests__/stats.test.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as nodeModule from "../../../node"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import type { ResticDeps } from "../../types"; diff --git a/packages/core/src/restic/commands/__tests__/tag-snapshots.test.ts b/packages/core/src/restic/commands/__tests__/tag-snapshots.test.ts index 64a682be3..180fafc3e 100644 --- a/packages/core/src/restic/commands/__tests__/tag-snapshots.test.ts +++ b/packages/core/src/restic/commands/__tests__/tag-snapshots.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; import * as nodeModule from "../../../node"; import { tagSnapshots } from "../tag-snapshots"; diff --git a/packages/core/src/restic/commands/__tests__/unlock.test.ts b/packages/core/src/restic/commands/__tests__/unlock.test.ts index 29a361caa..527090f3f 100644 --- a/packages/core/src/restic/commands/__tests__/unlock.test.ts +++ b/packages/core/src/restic/commands/__tests__/unlock.test.ts @@ -1,5 +1,5 @@ import { Effect } from "effect"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { afterEach, describe, expect, test, vi } from "vite-plus/test"; import * as nodeModule from "../../../node"; import { ResticLockError } from "../../error"; import * as cleanupModule from "../../helpers/cleanup-temporary-keys"; diff --git a/packages/core/src/restic/helpers/__tests__/build-env.test.ts b/packages/core/src/restic/helpers/__tests__/build-env.test.ts index ecf1a9a5d..f849cf707 100644 --- a/packages/core/src/restic/helpers/__tests__/build-env.test.ts +++ b/packages/core/src/restic/helpers/__tests__/build-env.test.ts @@ -1,6 +1,6 @@ import fs from "node:fs/promises"; import os from "node:os"; -import { afterEach, describe, expect, test } from "vitest"; +import { afterEach, describe, expect, test } from "vite-plus/test"; import { buildEnv } from "../build-env"; import type { ResticDeps } from "../../types"; diff --git a/packages/core/src/restic/helpers/__tests__/build-repo-url.test.ts b/packages/core/src/restic/helpers/__tests__/build-repo-url.test.ts index 9551ea92a..742017b60 100644 --- a/packages/core/src/restic/helpers/__tests__/build-repo-url.test.ts +++ b/packages/core/src/restic/helpers/__tests__/build-repo-url.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { buildRepoUrl } from "../build-repo-url"; describe("buildRepoUrl", () => { diff --git a/packages/core/src/restic/helpers/__tests__/validate-custom-params.test.ts b/packages/core/src/restic/helpers/__tests__/validate-custom-params.test.ts index 444226206..99a37e3ed 100644 --- a/packages/core/src/restic/helpers/__tests__/validate-custom-params.test.ts +++ b/packages/core/src/restic/helpers/__tests__/validate-custom-params.test.ts @@ -1,5 +1,5 @@ import fc from "fast-check"; -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { getCopyCompatibleCustomResticParams, validateCustomResticParams } from "../validate-custom-params"; const supportedFlagsWithoutValues = [ diff --git a/packages/core/src/utils/__tests__/datetime.test.ts b/packages/core/src/utils/__tests__/datetime.test.ts index cbdfe2bf5..2f025d4a7 100644 --- a/packages/core/src/utils/__tests__/datetime.test.ts +++ b/packages/core/src/utils/__tests__/datetime.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { inferDateTimePreferences } from "../datetime"; describe("inferDateTimePreferences", () => { diff --git a/packages/core/src/utils/__tests__/path.test.ts b/packages/core/src/utils/__tests__/path.test.ts index ae1c1adbb..4fbcb701c 100644 --- a/packages/core/src/utils/__tests__/path.test.ts +++ b/packages/core/src/utils/__tests__/path.test.ts @@ -1,6 +1,6 @@ import path from "node:path"; import fc from "fast-check"; -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { hasPathListSeparator, isPathWithin, normalizeAbsolutePath } from "../path"; const safePathSegmentArb = fc diff --git a/packages/core/src/utils/__tests__/sanitize.test.ts b/packages/core/src/utils/__tests__/sanitize.test.ts index ed9eafc3d..483da7bb0 100644 --- a/packages/core/src/utils/__tests__/sanitize.test.ts +++ b/packages/core/src/utils/__tests__/sanitize.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, test } from "vitest"; +import { describe, expect, test } from "vite-plus/test"; import { sanitizeSensitiveData } from "../sanitize"; const withNodeEnv = (nodeEnv: string, fn: () => void) => { diff --git a/packages/core/test/setup.ts b/packages/core/test/setup.ts index 5ccc1b2d8..32f0fdc9a 100644 --- a/packages/core/test/setup.ts +++ b/packages/core/test/setup.ts @@ -1,4 +1,4 @@ -import { vi } from "vitest"; +import { vi } from "vite-plus/test"; import { Effect } from "effect"; vi.mock(import("../src/node/logger.ts"), () => ({ diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts index 74d7d98d3..8fca91e93 100644 --- a/packages/core/vitest.config.ts +++ b/packages/core/vitest.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from "vitest/config"; +import { defineConfig } from "vite-plus"; export default defineConfig({ test: { diff --git a/public/images/favicon/site.webmanifest b/public/images/favicon/site.webmanifest index acc5ceada..5279706a5 100644 --- a/public/images/favicon/site.webmanifest +++ b/public/images/favicon/site.webmanifest @@ -1,21 +1,21 @@ { - "name": "Zerobyte", - "short_name": "Zerobyte", - "icons": [ - { - "src": "/images/favicon/web-app-manifest-192x192.png", - "sizes": "192x192", - "type": "image/png", - "purpose": "maskable" - }, - { - "src": "/images/favicon/web-app-manifest-512x512.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "maskable" - } - ], - "theme_color": "#1b1b1b", - "background_color": "#1b1b1b", - "display": "standalone" -} \ No newline at end of file + "name": "Zerobyte", + "short_name": "Zerobyte", + "icons": [ + { + "src": "/images/favicon/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/images/favicon/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#1b1b1b", + "background_color": "#1b1b1b", + "display": "standalone" +} diff --git a/scripts/README.md b/scripts/README.md index 32bce7837..a6ffa5b5d 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -14,14 +14,14 @@ bun scripts/create-test-files.ts [options] ### Options -| Option | Description | Default | -|--------|-------------|---------| -| `-c, --count ` | Number of files to create | 10 | -| `--min-size ` | Minimum file size | 1K | -| `--max-size ` | Maximum file size | 1M | -| `-o, --out ` | Output directory | ./tmp/test-files | -| `-n, --nested` | Create files in nested subdirectories | false | -| `-h, --help` | Show help message | - | +| Option | Description | Default | +| ------------------- | ------------------------------------- | ---------------- | +| `-c, --count ` | Number of files to create | 10 | +| `--min-size ` | Minimum file size | 1K | +| `--max-size ` | Maximum file size | 1M | +| `-o, --out ` | Output directory | ./tmp/test-files | +| `-n, --nested` | Create files in nested subdirectories | false | +| `-h, --help` | Show help message | - | ### Size Format diff --git a/tsconfig.json b/tsconfig.json index df83637ad..2f76f2670 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "plugins": [{ "name": "@effect/language-service" }], "lib": ["DOM", "DOM.Iterable", "ES2023"], - "types": ["bun", "node", "vite/client"], + "types": ["bun", "node", "vite-plus/client"], "target": "ES2022", "module": "ES2022", "moduleResolution": "bundler", diff --git a/vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz b/vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz new file mode 100644 index 000000000..a16c57b5f Binary files /dev/null and b/vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz differ diff --git a/vite.config.ts b/vite.config.ts index c8a331878..4b64f271e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,5 @@ import tailwindcss from "@tailwindcss/vite"; -import { defineConfig } from "vite-plus"; +import { defineConfig, lazyPlugins } from "vite-plus"; import { tanstackStart } from "@tanstack/react-start/plugin/vite"; import { nitro } from "nitro/vite"; import viteReact, { reactCompilerPreset } from "@vitejs/plugin-react"; @@ -7,7 +7,7 @@ import babel from "@rolldown/plugin-babel"; export default defineConfig({ clearScreen: false, - plugins: [ + plugins: lazyPlugins(() => [ tanstackStart({ srcDirectory: "app", router: { routesDirectory: "routes" }, @@ -17,7 +17,7 @@ export default defineConfig({ viteReact(), babel({ presets: [reactCompilerPreset()] }), tailwindcss(), - ], + ]), resolve: { tsconfigPaths: true, }, diff --git a/vitest.config.ts b/vitest.config.ts index 13665528f..7a212918c 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { defineConfig } from "vitest/config"; +import { defineConfig } from "vite-plus"; export default defineConfig({ resolve: {