From 258bf1d0172c737952b1280e2f87ccf1e24b7cc2 Mon Sep 17 00:00:00 2001 From: MK Date: Fri, 26 Jun 2026 14:08:43 +0800 Subject: [PATCH 1/2] Update --- .../actions/install-dependencies/action.yml | 2 +- .github/workflows/docs-deploy.yml | 6 - .github/workflows/scorecard.yml | 2 +- CONTRIBUTING.md | 11 +- .../components/__test__/file-tree.test.tsx | 7 +- .../components/__test__/restore-form.test.tsx | 2 +- app/client/components/backup-summary-card.tsx | 4 +- app/client/components/cron-input.tsx | 4 +- .../components/data-table-sort-header.tsx | 4 +- .../__tests__/snapshot-tree-browser.test.tsx | 2 +- app/client/components/file-tree.tsx | 10 +- .../components/organization-switcher.tsx | 18 +- .../components/release-notes-dialog.tsx | 4 +- app/client/components/ui/alert.tsx | 4 +- app/client/components/ui/breadcrumb.tsx | 6 +- app/client/components/ui/chart.tsx | 36 +- app/client/components/ui/hover-card.tsx | 58 +- app/client/components/ui/select.tsx | 5 +- app/client/components/ui/tabs.tsx | 4 +- .../components/webhook-request-preview.tsx | 4 +- .../__tests__/is-secure-context.test.ts | 2 +- .../__tests__/use-server-events.test.tsx | 2 +- app/client/lib/__tests__/datetime.test.ts | 2 +- app/client/lib/volume-path.test.ts | 2 +- .../auth/components/reset-password-dialog.tsx | 7 +- .../auth/routes/__tests__/login.test.tsx | 2 +- app/client/modules/auth/routes/onboarding.tsx | 21 +- .../__tests__/snapshot-file-browser.test.tsx | 2 +- .../backups/components/backup-card.tsx | 5 +- .../create-schedule-form/exclude-section.tsx | 10 +- .../frequency-section.tsx | 10 +- .../create-schedule-form/paths-section.tsx | 10 +- .../create-schedule-form/summary-section.tsx | 4 +- .../components/schedule-mirrors-config.tsx | 72 +- .../schedule-notifications-config.tsx | 23 +- .../backups/components/schedule-summary.tsx | 25 +- .../backups/components/snapshot-timeline.tsx | 9 +- .../routes/__tests__/backup-details.test.tsx | 2 +- .../routes/__tests__/edit-backup.test.tsx | 2 +- .../notification-forms/custom-form.tsx | 4 +- .../notification-forms/pushover-form.tsx | 4 +- .../notification-forms/telegram-form.tsx | 4 +- .../routes/edit-notification.tsx | 6 +- .../routes/notification-details.tsx | 130 +- .../notifications/routes/notifications.tsx | 17 +- .../components/compression-stats-chart.tsx | 13 +- .../repositories/components/doctor-report.tsx | 13 +- .../repository-forms/r2-repository-form.tsx | 8 +- .../repository-forms/rest-repository-form.tsx | 4 +- .../repositories/routes/edit-repository.tsx | 4 +- .../repositories/routes/repositories.tsx | 16 +- .../routes/repository-details.tsx | 36 +- .../repositories/routes/snapshot-details.tsx | 15 +- app/client/modules/repositories/tabs/info.tsx | 19 +- .../components/backup-codes-dialog.tsx | 4 +- .../components/create-user-dialog.tsx | 23 +- .../components/org-members-section.tsx | 12 +- .../components/two-factor-disable-dialog.tsx | 3 +- .../components/two-factor-section.tsx | 10 +- .../settings/components/user-management.tsx | 50 +- .../sso/components/sso-settings-section.tsx | 29 +- .../sso/routes/create-sso-provider.tsx | 28 +- .../modules/volumes/routes/create-volume.tsx | 7 +- .../modules/volumes/routes/edit-volume.tsx | 10 +- .../modules/volumes/routes/volume-details.tsx | 24 +- app/client/modules/volumes/routes/volumes.tsx | 12 +- .../snapshot.json | 130 +- .../snapshot.json | 210 +- .../snapshot.json | 270 +- .../snapshot.json | 290 +- .../snapshot.json | 290 +- .../20251002145138_simple_alice/snapshot.json | 572 ++- .../snapshot.json | 804 ++- .../20251023130831_watery_sersi/snapshot.json | 806 ++- .../snapshot.json | 1188 +++-- .../snapshot.json | 1160 +++-- .../snapshot.json | 1180 +++-- .../snapshot.json | 1569 +++--- .../snapshot.json | 1665 ++++--- .../20251126183559_elite_sprite/snapshot.json | 1769 ++++--- .../20251126184005_wild_echo/snapshot.json | 1769 ++++--- .../20251126184105_jazzy_sersi/snapshot.json | 1769 ++++--- .../snapshot.json | 1769 ++++--- .../snapshot.json | 1769 ++++--- .../snapshot.json | 2041 ++++---- .../20251204091837_secret_nomad/snapshot.json | 2089 ++++---- .../snapshot.json | 2109 ++++---- .../20251209191801_steady_viper/snapshot.json | 2129 ++++---- .../20251215102912_woozy_shen/snapshot.json | 2149 ++++---- .../20251221123610_special_thor/snapshot.json | 2169 ++++----- .../snapshot.json | 2169 ++++----- .../snapshot.json | 2141 ++++---- .../snapshot.json | 2141 ++++---- .../snapshot.json | 2189 ++++----- .../snapshot.json | 2189 ++++----- .../snapshot.json | 2935 ++++++----- .../snapshot.json | 2935 ++++++----- .../snapshot.json | 3169 ++++++------ .../snapshot.json | 3169 ++++++------ .../snapshot.json | 3289 ++++++------- .../snapshot.json | 4133 ++++++++-------- .../snapshot.json | 4133 ++++++++-------- .../snapshot.json | 4133 ++++++++-------- .../snapshot.json | 4133 ++++++++-------- .../snapshot.json | 4289 ++++++++-------- .../snapshot.json | 4289 ++++++++-------- .../snapshot.json | 4289 ++++++++-------- .../snapshot.json | 4269 ++++++++-------- .../snapshot.json | 4305 ++++++++-------- .../snapshot.json | 4325 ++++++++--------- .../snapshot.json | 4187 ++++++++-------- app/lib/__tests__/permission-policy.test.ts | 2 +- app/middleware/api-client.ts | 5 +- .../(dashboard)/backups/$backupId/index.tsx | 21 +- .../$repositoryId/$snapshotId/index.tsx | 4 +- .../$repositoryId/$snapshotId/restore.tsx | 14 +- app/server/__tests__/isolation.test.ts | 2 +- app/server/cli/commands/change-email.test.ts | 2 +- app/server/cli/commands/change-email.ts | 4 +- app/server/core/__tests__/config.test.ts | 2 +- .../core/__tests__/repository-mutex.test.ts | 2 +- app/server/core/__tests__/scheduler.test.ts | 2 +- .../jobs/__tests__/cleanup-dangling.test.ts | 2 +- app/server/jobs/cleanup-dangling.ts | 4 +- .../lib/__tests__/accept-language.test.ts | 2 +- app/server/lib/__tests__/username.test.ts | 2 +- .../__tests__/create-default-org.test.ts | 2 +- .../__tests__/convert-legacy-user.test.ts | 2 +- .../__tests__/password-login-policy.test.ts | 2 +- .../lib/auth/middlewares/only-one-user.ts | 4 +- .../__tests__/agents-manager.backups.test.ts | 2 +- .../__tests__/agents-manager.events.test.ts | 2 +- .../agents/__tests__/agents-manager.test.ts | 2 +- .../agents/__tests__/agents.service.test.ts | 2 +- .../__tests__/controller-runtime.test.ts | 2 +- .../modules/agents/__tests__/session.test.ts | 2 +- .../auth.account-and-membership.test.ts | 2 +- .../auth/__tests__/auth.api-keys.test.ts | 2 +- .../auth.cleanup-user-organizations.test.ts | 6 +- .../auth.controller.security.test.ts | 2 +- .../auth/__tests__/auth.helpers.test.ts | 2 +- .../modules/auth/__tests__/helpers.test.ts | 2 +- .../__tests__/backups.controller.test.ts | 2 +- .../__tests__/backups.mirror-sync.test.ts | 2 +- .../__tests__/backups.patterns.test.ts | 2 +- .../backups/__tests__/backups.queries.test.ts | 2 +- .../backups.service.execution.test.ts | 2 +- .../backups/__tests__/backups.service.test.ts | 2 +- app/server/modules/backups/backups.dto.ts | 3 +- app/server/modules/backups/backups.queries.ts | 4 +- .../__tests__/desktop.controller.test.ts | 2 +- .../__tests__/events.controller.test.ts | 2 +- .../lifecycle/__tests__/shutdown.test.ts | 2 +- .../lifecycle/__tests__/startup.test.ts | 2 +- ...0006-map-smb-files-to-container-uid-gid.ts | 6 +- .../__tests__/notification-builders.test.ts | 2 +- .../notification-config-secrets.test.ts | 2 +- .../notification-target-policy.test.ts | 2 +- .../notifications.controller.test.ts | 2 +- .../__tests__/notifications.service.test.ts | 6 +- .../notifications/notifications.service.ts | 14 +- .../modules/provisioning/provisioning.test.ts | 2 +- .../__tests__/repositories.controller.test.ts | 2 +- .../__tests__/repositories.service.test.ts | 2 +- .../modules/sso/__tests__/sso.errors.test.ts | 2 +- .../sso/__tests__/sso.integration.test.ts | 2 +- .../sso/__tests__/sso.registration.test.ts | 2 +- .../sso/__tests__/sso.security.test.ts | 2 +- .../modules/sso/__tests__/sso.service.test.ts | 6 +- .../__tests__/require-invitation.test.ts | 2 +- .../trust-provider-for-linking.test.ts | 2 +- .../__tests__/validate-callback-urls.test.ts | 2 +- .../__tests__/validate-provider-id.test.ts | 2 +- .../__tests__/system.controller.test.ts | 2 +- .../tasks/__tests__/progress-buffer.test.ts | 2 +- .../tasks/__tests__/tasks.store.test.ts | 2 +- .../__tests__/volumes.controller.test.ts | 2 +- .../volumes/__tests__/volumes.service.test.ts | 2 +- app/server/utils/__tests__/crypto.test.ts | 2 +- app/server/utils/__tests__/rclone.test.ts | 2 +- app/server/utils/common-ancestor.test.ts | 2 +- app/test/helpers/agent-mock.ts | 2 +- app/test/helpers/backup-mirror.ts | 2 +- app/test/helpers/db.ts | 2 +- .../integration/src/helpers/assertions.ts | 2 +- app/test/integration/src/repositories.test.ts | 2 +- .../integration/src/volume-backends.test.ts | 2 +- app/test/integration/vitest.config.ts | 2 +- app/test/setup-client.ts | 2 +- app/test/setup-shared.ts | 2 +- .../src/__tests__/controller-session.test.ts | 2 +- .../src/commands/__tests__/backup-run.test.ts | 2 +- .../src/commands/__tests__/restore.test.ts | 2 +- .../src/commands/__tests__/volume.test.ts | 2 +- .../helpers/__tests__/backup.helpers.test.ts | 2 +- .../src/restic/__tests__/hostname.test.ts | 2 +- .../src/volume-host/__tests__/cleanup.test.ts | 2 +- .../volume-host/__tests__/operations.test.ts | 2 +- .../src/volume-host/backends/utils.test.ts | 2 +- apps/agent/src/volume-host/backends/webdav.ts | 5 +- apps/agent/vitest.config.ts | 2 +- apps/desktop/package.json | 5 +- apps/desktop/vite.main.config.ts | 2 +- apps/docs/content/docs/cli.mdx | 16 +- apps/docs/content/docs/concepts/backups.mdx | 66 +- .../content/docs/concepts/organizations.mdx | 16 +- .../content/docs/concepts/repositories.mdx | 53 +- apps/docs/content/docs/concepts/volumes.mdx | 27 +- apps/docs/content/docs/configuration.mdx | 103 +- .../docs/guides/3-2-1-backup-strategy.mdx | 36 +- .../content/docs/guides/backup-webhooks.mdx | 106 +- .../docs/guides/mounted-shares-and-acls.mdx | 22 +- .../content/docs/guides/notifications.mdx | 64 +- apps/docs/content/docs/guides/oidc-sso.mdx | 55 +- .../docs/guides/performance-tuning.mdx | 23 +- apps/docs/content/docs/guides/rclone.mdx | 13 +- .../recovery-key-and-repository-passwords.mdx | 23 +- .../docs/guides/repository-maintenance.mdx | 30 +- apps/docs/content/docs/guides/restoring.mdx | 7 +- .../content/docs/guides/reverse-proxy.mdx | 16 +- apps/docs/content/docs/guides/tailscale.mdx | 9 +- apps/docs/content/docs/index.mdx | 45 +- apps/docs/content/docs/installation.mdx | 89 +- apps/docs/content/docs/introduction.mdx | 30 +- apps/docs/content/docs/quickstart.mdx | 145 +- apps/docs/content/docs/troubleshooting.mdx | 15 +- apps/docs/package.json | 6 +- .../public/images/favicon/site.webmanifest | 40 +- apps/docs/src/components/Footer.tsx | 4 +- apps/docs/src/components/LandingPage.tsx | 77 +- apps/docs/src/components/ui/accordion.tsx | 4 +- apps/docs/src/components/ui/button.tsx | 7 +- apps/docs/src/styles.css | 267 +- apps/docs/tsconfig.json | 2 +- apps/docs/vite.config.ts | 6 +- bun.lock | 199 +- e2e/helpers/browser-errors.ts | 4 +- examples/tailscale-sidecar/README.md | 5 +- package.json | 19 +- .../src/backup-hooks/__tests__/hooks.test.ts | 2 +- packages/core/src/node/__tests__/fs.test.ts | 2 +- .../spawn-background-priority.test.ts | 2 +- .../core/src/node/__tests__/spawn.test.ts | 2 +- packages/core/src/node/logger.ts | 7 +- .../__tests__/server-lock-recovery.test.ts | 2 +- .../restic/commands/__tests__/backup.test.ts | 2 +- .../restic/commands/__tests__/copy.test.ts | 2 +- .../__tests__/delete-snapshots.test.ts | 2 +- .../restic/commands/__tests__/dump.test.ts | 2 +- .../src/restic/commands/__tests__/ls.test.ts | 2 +- .../restic/commands/__tests__/restore.test.ts | 2 +- .../commands/__tests__/snapshots.test.ts | 2 +- .../restic/commands/__tests__/stats.test.ts | 2 +- .../commands/__tests__/tag-snapshots.test.ts | 2 +- .../restic/commands/__tests__/unlock.test.ts | 2 +- .../helpers/__tests__/build-env.test.ts | 2 +- .../helpers/__tests__/build-repo-url.test.ts | 2 +- .../__tests__/validate-custom-params.test.ts | 2 +- .../core/src/utils/__tests__/datetime.test.ts | 2 +- .../core/src/utils/__tests__/path.test.ts | 2 +- .../core/src/utils/__tests__/sanitize.test.ts | 2 +- packages/core/test/setup.ts | 2 +- packages/core/vitest.config.ts | 2 +- public/images/favicon/site.webmanifest | 40 +- scripts/README.md | 16 +- tsconfig.json | 2 +- ...dfb3dec203530d065ae4390288b029108d5baf.tgz | Bin 0 -> 1171483 bytes vite.config.ts | 6 +- vitest.config.ts | 2 +- 269 files changed, 52805 insertions(+), 54612 deletions(-) create mode 100644 vendor/vite-plus-core-as-vite-eadfb3dec203530d065ae4390288b029108d5baf.tgz 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..a72882840 100644 --- a/package.json +++ b/package.json @@ -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 0000000000000000000000000000000000000000..a16c57b5f4b3387a3dc8bd20b8997fceda63f958 GIT binary patch literal 1171483 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�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

    (TY4LcsoP`SUs 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℘V}zFV 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%0AdV41%cz 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 z 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%0A~! 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

    +rEdyo{Dlc1# z(P!b9O;)cpqlo;9^5vyj(#2d0)!%y53k>Uh5#kN$BH~6=+#L%2g)_!<1;e%u8~KvrW(d@ zsACObNhl;?*H|b;o@Z4c%N-JX>#vpzU)jqGQ265_CRWa@8 z4_$C5)K&EaH7lEP2rf&pXQg+F@S82Yx5!F?mX^>L5kga=GcMn^crfdxUf-722vi48 zok{}Fo(;*~MUjyyQ#f8Dbvb%g#1e`;ITnEBh@3FSOYrAC6p@TWvHHA3K&w}?_~D)R_zbuJa6`O8e|&Y`3uZc11uNgsk;V%aPi#GR1^^0L z-JJFZ8}NZ<4K?^Sop}p=zFvg;Z0mQm6$iyg+ti4j!9SMPZq-V#aBhRHTKB-PjaBp* zacd_OI}YBBhqw3wMq)=1NuqI(J1}MVtiE*th*aJnu${g(BwqStQ?JRekrNx76!Bn!7 z=$u79)c4j0t{{J0AWa``IR7q0y*;ifC~|rWch>XP4&C^7JWp+V@m8&+)ZYn|jDgaw z7#Qkc9~lp^fHQk)P^&OMJw)XLl%8m}c{>_Rd2*d}?GLC%TOU2Zy*#gpI_71v9Et~2 zD{d;Ya0)K}B@1vv)d?Ntl%aUq3qL#(uNIK>lpl<9n`h1w1DsQ9n?;uZqj$8!eo?&HHbW>20 zhR~57@TxMAj_v^SYeM2_7#cg1M0`G*#igkZInNCS=rCuWYZ7-zf1jB(vT1aD@N^9p z9y$O$GY;JjtiEu=V1;(8`&{+>UZXiW%6TI1<9N$g~FdL!y?dNKu zJV0hQ)SyZ}TcK>Sh$Y@)Yqn7KOHvPPIy%ZKVjO{^nGwo3)bb7h*km+l8Dn5~0MXQU->zT5S95=uhg&Jn4~gY$v)TP>SUY1E$rvUsJwO1>no1tpi11_K24!o-bHQ|f&!Zp_D#_v6hJETB_i?20mO zup{lEUTu!fRrd3;)x#KH)_5$$`GjBNAwtP~z;vsH*Jw8p@uJ1?kKIEAxu_O15-!^e z%uHXV>$QTUBk8`_^9$AxBG{uhwt7xLr4V$XV2wdm?CxnS?MNIFhFkXIEjSqen+vyr zl$2GBof}p>URjeaW<$jszA4pZiC?F=&-I1F?<&8vv2E4|qM?x_aKWi)o)%#vQ9 zX{XxQ+tsryVVR!OYl=x87}>x$Ej2&pSCtFtVhk!o8*IT}Oz3-;|A1G~nY+iU>Li{_ z%dRG1+m7B{gO;UOK?x#MS=4zns853Kh}@P82Av>M-r6v}H@(#;Q}Tru_5 z`W1kr@Eyaw?;cCGuF;X3n2v?W{c1sG1@#;l?bMLZdd8+>KNW*oU020_h4@yhn$C%W zsi2Clp2;Ujm7-AfOfN_fnCuCp?~?kn2JmMg!8Mq2Gi?i^JV3 zdi~d+yqpy2ftxM*o#_#?*6#QKLPQ= zcQmTD zdn>3_E^IkKnXGQi)W=!hE(5Ah;IxAt6c)(Tkz~=em3Z4R>jWg6YM6osWCJy)dILt< z%8s!gP-^xTW4>j*Y?SxSn+Hy)Io&|Z#X^@*8)!Q4XEG=`><3Sn>jUdRFJ}9O#Z@sM z-f9drz^=G^FU3{rR#@|Ka2yzun5PXj)w|zU%2A7tLtw5W`f6^yTjh5YP=MB)X!-CEk7H-V2jLy*mF9wMSbWYi(65>S zvjt|A{L!?2Qql=o;4busHQBoR4fwBRaT)-l!ssl8gowq$M)|6lZmIg+BD_nA-E6Z=Y02gNs z5&~_3KD0s6;?60%QyhHh%=;q0UGyI*kpMuhzJz4jKY0D}!_n!*!M~m!yak7-6P|bw zM#)XxkC(B z7kT>Fg9_Hjr}hJSYrFT@mb>Ims*ji}NS*oyHEFmcW0Ke!QC@wM3%24^jdnHy#vy`C z84+12po(ip6_GE!o*1gRlbsZh7Z!%jzWlb$J%RgFc4;p9D9`$18ywXISikLLf0`_8 zT3Ae+F&t*ayweCs5Q2;%T3op>+`@y7`oB=H#1gL*Rp)R3DpL(woeuoZPQ~Bp5vpmrE?$qsUbmb{RQyd>h^Ojt>ukDU!=axdHs`9jkf92H{- z#q1A4B8b4koi>aV3}#8MK6f)r7=HEH=48ZZCrjbH2scuA!VhKs+AKx$LeK0Xn3@K1 zb5pd7PP722$w;_I%oh2q_}@F@`KOD*oP#+A`Pl`nG`b0;I_pf$OPbH-1rUZozm+vp zBeW7jP!h>qj8H>C*Q3-fK?}-6Q`^E?DVfXXjE9%>IGC5homrM*0)qL9B|DX&SL9l6 z+%xJ*D(nhf20B$1G&gsB2IyNtk^mNO zbv~IFAG>kRFq%Q3`$@xhW{YtG8?ffuP{{pR@%)(=fG9*&Tr4?FxoK35&#T0Ym&f^{ zKQ{Z3DAO>SKmP9)y++RESr>- zs}fDqO+ut?TL7?@gln2ihoHJix1xDKN}wuj)9&MkW{#p zInyJY10~(8{t6k%y(mMQ1bk7FcZ3TDqz5FuFR$$b>>^f^3Y#`;3iERs0|Or$hp(f#D@4O{@dsVNh5gRCpl*1CW@q zUNSpxo@@ixr%4=ziY*&lL+M_{lEKZCa`&)5vf*Abmk=5=H$&ENiXqo*7Ua;@A>V?| zfZQ6sWWMwj{Qbn<>uT9jQ3esMcQH~_gXx7&opau+t3 zR-Y_jy3QEJeM>O|2upuaVhjAkm78ayOQ5(i194X!IiOBVk^7!}?CjU2tB9{wxAM_4 zowlkEs0w~#W$4zxPW)(|?eL%fl=*eJ{OQwZlkPGzVw!rc5r~QcQ#Q1s`oJu` zTts|CH%zDqiEhbO;h!PPpBkm*gl69(I$8cYw5-SnVGG8kN_xZvdpK*(&JNd&vk+d- z^87DmO*6Niyb99OXwXneb+{BZf-|sh{~MQW7j66NN`75UrnhEMwu_B(Euy3rnx?Lx zhPh@VMXe^uRBk}bST(h38BwggBXWbFwKLC9n1huj+NnQ{?+oYZG5y@RO(yhLqH^hc z`hF|kP($FUv^R(yZZ+lEQy+3kp zG!z{$Ip$qPqGt9!13U6(9rJ&UwrmDIqB>fi*Zwma6i7Cw-&;2}3GbrMOo__+3P8j( zTrj*Qk+{zd4-c!3*|5Ch1c#<0d(UUZ$Udsk73IY~awS?d*NVq_jZYDcH_tInQIu-g z)pVJbeK@=o5%-0i0I7Sx0@H$`RKZJ_f4U42sdU^*Tq}~@Yv_+5yvw3XHF`XB9k zW}bp1+VtrjjW4{hb?jc!dCIj)J!I-7OZFzxrugxxdVTygZBwQTer^Im)K0J+qyFqO zq&Rmc4B5%k$s7IycFi8|%PJY3BgeVOIth)uM*=sDFG>JX zogfoBSL;`y45zbvYTjIP4Nd=^l+*hX%Q;E;vXZN-AmF(3t;u4(Wfl@|`B#@&plRio zG)QNVn_HAOL$XZ=(}$Xv?U4EY$!q}T9ER>3dX1layrEk;Eg&d|`X$bdqtmTdoY^LZ@G?j)o^8Po>SC3qRA;^Ml1f}1x`!70Y0D;8Nq`hl$Ohi zPZyWw?tm)Gaz10Mi4>N~q}EN6J)+ey{YMT^Vi+Go2rfAzmeYux5b@ zP*kEIyMZD1y!cq$sznoXQ*CQt$RPqfmVmkoQW09afD4>U2uL3Q~7!_GCm}lD(^iw?Cwp}|@_a%(xm)O0&!Jyjmyr0n2^qu$D_%iYRQX7f( z@m7veUA;N(*T*>+UvdEN@#Tt&{nocV>TEbvZhYy_=*_qgr_A`3zTj^!heIIF(X>!$ z6T56(6qcK(6m=#dyhKGhRSnBcRereW`z0s6ybQYJ$42-muX=Sg>B!muB-=+{O*71~ zbc7mhs%Z=0Bc}O%MQv>bU1%$vPRP{@ru^af=oN%`6SK?X#TXJd`5mm$z;vFE4W)9G zADgFmF-2Rpu1&!lelgW4ypCF@)5#B$$!EI^Ro_k1$(Xu2n%qcjRn*>)z&YU=;3btd z^|gX-h~Z1NcY8uU^i+Y1y-lvGB4yVAokz;jfLin%jWetB|oaC&la`1a`V z?ZL&-;hV!#)4*CAIeTQ!rinAVp)8j1hORpc&mq;Gj7F33&!sB`dTA_~#PFTCU|WXm z$gcVf-IajY0u!b44dkr`x8?#AR|LY3{h8`pin)gzN=37PUQ1lfk`3BC1{+1)C9vl&exmS%yj$t7x;Bj&Q9@${FGmkfz&~g z*Kv2_ed=0(d3FD5CwXOd6u*@Ejt0&k%BPfl{jWeg^}mwE_I$_26RRCxn~!M%yOA6c zd>37hoy=g>%)8KbCTPN)n*y8XW93R{9t;*`6n(a?+VNMlNPG@ekV3PAH{@Lme*l`4 zbAcjLvy7|G51Pi6C0Hh$fKPMRux17bb3@RI7tLI|_PD6TmNU+5=}u3^u1O%GoBVQx za+4X-13s3Ck&knoF!!!vG{iRQO8S+qFr5xoB5KJeMoDEOR`qQ59$pl`7MhHkrGQ;F zBQB=LYAS#M`tv3&zrlF8$ao;AC=`XTnr3RKH8AC@fSwk#_5wnz4{>0JbtWGh+UoSs z&Y_OK)BDHKtSXm3kLHI`@H%V7oiE14pBH&h&4-&!uE`1=&Y6QzKG`Tz&M7`>3&=WdhzEAZ;WoS+ zAwttP5$%ZGMO5xBcX~JYdYv-O!Nb}Tu*mb~%=O>!y>s=c1TFZ|m(d)IVR7?m4lmCY zgvbI5WpA1-7wFYeDN>;VVYwS!SrHdvH@#$C8v{4>SrX5ty0&t;%Dd+rI@Rr~%L0|4 z{bN5H@prWDG+stu8psz+PiK;36&>ANZZK>4&mK3s*;!I5PX2DV7{0YHSKx%SxB^=& z65V16e4{NsI-Wq%+WmMwoB&i^YFd{?$Hroli8jd#0LOZ5keDI*ntgMzK{Z$@OAE!p z40Ed$3Ft^=*pdU0Sh=tHCH;V48@`hit)FR%YY34s;{DhqN{gt_mtdh)7G>aTWp}~f z$CTR#`xDS{0PyIMrGmu1dXSu@JiXGDD~{2IQi#iFr0E<5mgTJfj7`qz1HyZplk=z# z5PVla!5KU<_fj0hq#syzu`@!C*;lNM>}TL5JIuA9lY)dhEWhQDIOG z>nuT032I9Ok)s`<^K1|_7r!?PWSsWIocwO7t~5(>tSgHrj`3Pjj5`&;S%Dr}5pb_s zu~32$Ex%ct-hGU`3*SzHbup`^5t#H&v-6b~F-jxoPbaU^Yk}DtuRh5f@dqP7Z6@V) z7OV?nzP1-=Ec``GQq5o~*aMM=o-5mrE16&-SBmeyPIin5g;$Lx#*n&>O0yx#i%Z3& z5dRQ%WGk5al^mjze5pg40qj(#h_e$Jk*Dr77Guf-r{LYKRJ~DULr*rX$%?eIbj)R`s^x1INVHn6;PJ{C{>0!Z&9!lc`+zHf>27&xm z$#?`kjiEgm_6D&c4HFzE~ON;_= z_lAx%2rId|4ZXZ9?#lK~PH=rojxOdaZk_kIT{@>#V&g=@dI4tOQaat!S{ZviE(F}5 zVh*PHP4;I*bEcExW{jFYu>LQBkZANlqqt>dcnvgCQ`iOf7OdJ-&;!s7r*8{=PN*5!$T^ayt@Mq$phCWU@}P-43-O%B{gEJ%Ik`ynVM1K}~;bputL_ z+?qN#4iEwXm5x8F8eUb#f$0*OamWdENxNqFmIBrlc5YRVy0#@P-=Nc~bsG+)))qT? zbw|eyyc=}o*iB&r>!mRMowjZy4Rfy$-RrNWkJHKY2u>o?RxNmT zc0EDNR~eNEjTMS0cK1LYTYxofZINnYcGvTAMQw$cTrLAZn@D)U>kmqDp7~~5fG9c0hgxg`! z0eeK-?Ue^^Vg6eM1rD#IwR&b`YZpDg7~jJhYL<&Bri-eaCiL>Lu@*339&G@E$yQdu zS6S>?%R2C_{>R&!cjK!%`w2E7x$h+HSkX+`V1-g!k?ieE7MMinw4T^+n3JZfV=1C_ zsw{?8jJ5@~tushYu0U+L*Fnw4gSx8euQ4!ITrqIx%#bMO4;zk}@+5_Zonz1^zBpbf z3WNO{g>T6M+^ZluOZ=%QuJg6j3=qnun$$NPFbV$|TquZS*QW5#TS|1y$}OH21(R{S znoLXwnYkpnAn+97cOjWvgpRJu1i|7tA1%OC!Z;w1EYvF+NeGUg%K_4chT2|7swwrEhcrej=Mr}f^-QS9fL8Ll1JdOu7pEL zKqlmFV{nykO~%7pj|+fEB}mfz*q^CU>?&-yEOwS{0`nZlH)*4tW);oG>_Vnd4IB0* z)l57Jn29EPvQH2(U@=ML0^C=%kK5Q$l>)+Vt;M4t&NTe{%jq=p_&dY5_p#K>b=IHV z8WQkY{+6R*$R;u43b!DFJ;@>~e?B5}Sa1MK)CZCHze->>+@S$m0@MZ`*E*#)q!y6ff zk(xPluWQ-Qg!N-UtGoxSs2Ip2u}Zerk04lvA@v%+hd1>v`E0T^$iJW+FK7hIt*gl_ z-&}1r%b4e4uU& z)1m6hcF+>|7-(<`3?t5~Dlc;9eh-WRbCjj%6Y-w19XfsO8FD0$H8KT1k-X< zx>?k~c5rr-v*qr+KHtQQx;1uO!|U^&mkrBojSep~r8 zu=T!rspy1$+ikHgf$7AshIwaf_+|XUKAY0FGz*c2eh6|G{=|3aK{>{CCK~h#oQdJ5 zNxnm4vai0qY+xV>6dL}4=0L&{HqM*UN#*DmJzRaEhyacx7ts%ir@a@i84IH+R0#~G z&uDLr2mU|*Dt#<8-jhscx^~*Le9&zC=YRaKMr+CB;5Fscy2teKKIpTmlC^B;0C-CfdGv?F zTPxU;U=aF9DJ$zU9DTZX^IQMuJZ-)Dzn9|jM0|5PSz##sfD8k>g2Kva5U0DGmN z(7G|Xz*W)}GD@;3V1QcQh&t4s3O|A)mXpW0ZMXzyHroK;6-EhM*Qf;v9kNBaz;n#@ zAz(5B_TPZ8z)nOUF)Z?&n$G6(4f_FWlSB2Js+2BqihYK@LaL+D1X9(_QC$1;0_Wi{{$ z8sbMLi+r0{oM2sR!-c<`CCe{UgTwQ|`&kYdj9mN?IDBp|dU^}ByP4m<<&VNan*2Hv zvCQ$r43TUwTT4+iJ3Lb*~oKfVcq_eYn5Z<({HL1#@YHK@+u zb+b&{|MqeG@1}Sg%xcUVfU6$c#Z=3%DJoCa5NC~si^Oi@^^n@G;Vk-s__3it2}Opx z{LM71!z+!w zpOLmYq)?^4z;?wqHU%pf<>--|>BuS@9m9;jr;OdYgAT>4>-sZ7lt5o%>oWkO7<;KT z0X1=!#{oQ5L}XeOj{(ij;A2BFwuvx`)KhlRJGZgfyt0> zBoo_5vAF$r+4CJe=4+g085}+?gtM213$k$J=)Hx`TVVOgzX3Nm&-u+Nfh$tMyc!IH zO1cM~v{*17e?_%KONZ7-0+~3Zy!?VieQ6j}1Nxxc?N33CA}RuHN<~Tb=R7 z^V9)fi9ipX3=eUYj|vQneb(DMJl^|o^z!&(|KR<>+x>&Ldw=S+v)<_shbI^2|38?b z*N1Np_Iu~zg6KJD{*>(W!`NLUL*;?4$xIjeEkOl$g><>ZJ?-hBjEZpe>7OX(hq7GSJLDwTer4C)GhCza^I}#`W~USS>T$B`7=>xy#>>Uc5gGlyV1w~} zC^H4@kKueys0kU!1Gn2W9iwW@EF^l6K}Y8AAX&XWBvb-&!BfGlF!!#Xrj|kj@^>lPk;}GO3@CErKpAT83Te6} z=6Weh*WMYd+0*lGCW;Xegs9}=goGfYxD35)WMD>YlZ<~Hi$&3Bf-m6b+?>XRImUAc zmE`abnEv-6r)l2*OeRSX1s_ae;eeRyI3xFR)1%=NO$EbNm|HfU13Ws1G^V>G3R~y9 zG%Ny)F`s-Kf9$34gY@#T*Yi=aJ27kyX6|7_zp1?bEGWS`>=8soTYQZ<3+mRF{;U8$ zz7k1^`a8~sw}ykK*ke2vA2at%Lj^yo6@V7uA=f~kMXw>u8^uFbd=Ly8o@Sb4OEu`7 z@mf5-^D8aS6-$fZ-b%ybgOpFLvfKc$WNLtd>#p*#w@K`TtTQvltJsv`#z}-&u{JHywt)7@%deT+GJqw6rFeZe$u7lZb z2Q7kwKH#|DvlG}b=0z+Vt<3#|E?W*n??JIrfe*H-YSor^qGb&Y(%nckEj-kNuRDx3 zkCwjpoBwH<5NuTR&3pa>Ma0wM4tvGga-lt&Qu*rPIM=fiHzIW0K^xm)KmNc?>Y;5J zs>w~5qG}fko4^|ndC6%7f{tRSci5+mnRx{lKkyW$BpBFn>gth(uS zdJkZYXXczjR_;R5XAeR#$f6X#qFC+$-~>6%AoRFUM8Po&%D4)FtU^l-py!7DvV`$2it!l9 zo4QEb7c-~OT@kMG;wFcf!a8ifM5cp`9>u5__njqX!={IU2=W*+J5ehO(@YRo07G#I zhaW*ekQg(asYa~E{8T61>Up(wZHy&UU-d%5xODy8HydPd_E#HREY3C_nWfRop~G%t zEJ%NwtYCw_;gP_Ao{-+VmFZFgY!ee=+intDp!Jfv@eMV$TwVDfDCv_rk_uG!u*S6@ zTBzhJf6$bc{7!r34G4KW7*-T*qC$EPc64IuPbo$ie*$Ksh%werhN7=y3rh)H4JYH= zx$v6nU)+qv1CiJ}`2{l8*P)TTOSRBl3hmf66hxZt% zEDJhOT3G!IDnVHDue1JCEzq&l^_NJ^p1|t3BqPY*?AXy@b=DXNe7pTIXjxZvZQ+_@1)R9`4qO|z*9XK2WN;8A zj+tRbDCnJDnG~Y>$#lZ+ioF!j5L(d@!YP=66>Y^dNd6USx%eVjal-~Cc41yNeNYfV z@WMdT;42^i8k3WM@lhscv-gx|^p>kMC~iZ8Q$7Mp6QQjb=lH$faPKO;6p1v+Bf@k1y`!7r&jifdjhiuDzEp!l(W~v{*73UwtdTLHBlz)ak34D8tE`S@%k$n5S?6Hw+k_D z{abB-K@?gDW{t|o4?}fhh6`luoL%vXzjKr(n=_~ zGpS(XtK56r6mw~+ZKfILPl!;fx7gcK=uzNek*v!p-B{Of5;yPpxr;rM=(oSXJZ;$3 z5B>7f{W^bkUeT?e{0bFheg!lv<*%O7z!}35^!S*iY)QkQIcR%$f1A?fH{T%HxxdLx zxX1L6n9u#XnGU-_k@LeUt>`j!G)rkm|t z*f&)V#<12NRkNE4bN~@o(3FzG5x|`?^L#nGSwIue3Z@T-1F}s)6{6Dtvfl`-Z-u9w z^*)qjiOt%j#^XD;^vg!4=eZ&n$m|i+906_37twL}M7#0{lpVkHa zZl8S|f1Ew}`0?Z7`)A+(cl_V~alS1&`#&!x^ZYH@N!lh&ZlhbYwr^~x;r`WU%oJc7 zeEhhrMbbG!V0eYX$(lDq*sOe2$z$E@ih(tA^oKL+Zszi_(X!v8DPWby&l@ebFwXhx z17@AYRDSL3!|@T=Kbn6UD3k61YyJ4n{9ZQAc9}ZMR_D_!zwYhmjwn*T>FM=sGTNV9 zEjW^gO)l~tdtZzO4*#0oJs_IBCy(#!LQVU#dC?ypjDbA+aC`_Ic)hh+%O`CE8uYoF z^_ct^*s;z1d}5wNJo|$usIH)cjNoToHh^DB3$Snif&R(WteB#ccKSDyLN7Y-U`aV{R>Ghumq1n5*;7pG&=(e|4rseX9o5aTP^{S3M2CM-Yi)?TYgm)Nb`46nYY_Z$GERUeI&5 zm<=%y0hlCJjCcN|86vO{E!$}xo@p0G3IRou_cwuDXc`_!rx@~1>MU|pr@mJOe7UN!j>7Y=^R z%-2qCV-3e86s|hN4my4*YOwp6 z4W$biy`tbK;7_TpI|RMJI_GYdY6V0j!xp%1KYfUrDj1ASlIA5QwjHT;YGnZzQ=b>5 zxf%mpNu1j>CP>^!zRUF&Qw(bS`x%w~jjt&LK=(|2ewC{mnK7zOH{60>ec3RJSd@V= zItWTA3K02x$_$nia1x#=nXdSH{ug6{a2eM{3tCVT;s)-s8b!#}PUI{CC3)>#*r{v{ zxr^3l4z?p#b7Zl_e zZ`j20>2eEIuxSb%B}aMFYFMK4sR3-TJB;< zDnIpS5JC+=dqr_>Y!V>+WK)Py;G`gVPil;c(JNB*xPTa1OXhE?oju>B73p45dFv?H z`^)LHD=7oWHgAcEPTZD=f94*(%iw1FV`0OkgDLc6cJ(PY2N=>V+Tc7R=ZE8tD7f7I zUcVfP`0drv*g1CjqRfx-oBq|UfS`q=;aI+b8w7UywNU3gz*UdAd z@jqe$5K2r$rQU7y>vlN6F2)1x+5|7>+>;*~>q;Q!$P%l9x_cqk;Swcg_QJ>6sJqsq zxyAIW!J?!O=iSmNzx2#;o9q`CZ2xY^ZiZSb=p9wyaOu_ih0^0Rf=oN#w*B=h^fx_aRzGDiy z4(`q{gD3dTOOla>Ow+lz`6{lCRKRZOxYhyT7-Q-|dyANFP$+f=@Cj04cwt;>X2+-$ z{=?Z4bae};q(9J6TDU<<{YDxaZ(rM)*Tr&UjfqRpigjRuzShXt(8&!`dfSZBr+A4{ z_z7=$;Zn4?KcVPKjOAi(R3~>}VY0d&Q4BXZJvJhp>a{BN8!ky=N_xjVN3#GDL(cB! zUrr5?DOP_vPx&DKGKWuQx~LW~Ljd zJf@f-KLLq8{F1IZ%ys5>1#nO+Z|{-R+6nM8(UVaiz@_zr@SYes%h6OqP9gCMYVeRj zNKTlZw`2q*RSR|1p#f%0EDPcV^d60&qZy`Am7h@U#{~3S}a=yQJcBc45`c2P1pR*6J z9q&;*w=B_Y$JU3X{+vA}-+cOywPk(eo=p4iQg3eRgg%5ejMDGOK=CyrBg63Qwd2cj zZtXD$B2L@Xfd@X(EjXz&yRla1aAGSk%j)JWu~hf7D1B2_bc4ILuX7?F7sDL#qZ5Dh z8Vbb?6x`fENCsa$P*q!7!@ArA+P=G41L#yjWNF2b@wg0?P+IZUgDpFDx}F$Ta8DhznFy>0W( zI9DJL^1;X)_y9dX!oQunSQn0QJ_o67LzzK4Fd+X9FCP4DTAn>SCljzvBP`i&=ok3T z%;vpKaz&A9sudzir9zOJb2%tjHZsTu3y{G|QkIk3k-4{@tMXIH#<*@(j!6jgVooP3 zotnYGzJnOaAw13>cj@#J@b|JmSiagt#^>PO^>yho{7S4_b8G<*qtxOz4e3~pv-+i?sr_cN^WAnk zYZA5FFeu%8Gh9(qNWhlTPZDAuIDIP`Rs(l|ff!-W;V;ZjHK5-GYMB<0VhDcnvr~)> zr(c*i*0kEB?e|=U-<|$&aC~v{?!)ok!Nr@G?=OxI{&4WG?^&9K22ayw&k!PptE5_{ z()+`=f4BfMrWg2ltMC-tfGf}bt$qF!q+I{__wDA{%dP*}-}=k5t^e_K`^EXw*5h6~ zYut<)EzjSsW;^sYI8o{deV2G~%nv@h@eau8ga!}*q}ljF){$sUi+O2K1vpRvBpNW^ zQoxxS%t5fdz>vH)ok^n=E2S#dvoq|M^Fv6<$E*#CeJbjr=^DqP;0bwWsiGZ*>9ZKZ zf^S-@B{bK{cP<3cH6(TcS8$puWP{mpr&BNgQ>fFCdXRCYo6+L?H=y_U4k0#JcXTiw zG$DGRTT^p#UOc{|GmC*W8TB83c>C5)OpY1-;`Yfi2(~g~dw2j<+PQPo!bia_eFK>d z$YEsOo0DPoJ<5D{1*rEFEXjN#*{ob`2>q)C z+bmtQJVxTxmOX;$>^Qi`ll{UFX&_MrCGc?YVLUH}d$a!6p*gKMpNSa1a{L!-@D4&L zZ*{EUyvGTJb9WbWpc}LP0XoH$cidMS2_4$}HwCT*nVsN=#kk8#FF_lYh9`>T(z+2O+MFE4#A|(%=pmoon%e-_>O;4%;McIFI>r` zAsh@n4W1**9_nFW&oPA}Z3l5pup{P1z%Ix>dIv*&Kb=r03>3|U<@R`8NuVpR^SyO_ zLQN1?c?vq+gS_1L$#!9*iT}U&#Cq3R&g%e#xNuO+7<^0guq~G4&gFCo1xJ*1YVIQ8 z#f#=m@TX5^A5N|eEl*Ltu)1B5{o1pLqIo~vm1FN=JU`#T_6N5+4KZ|a(}ILkktTG8jg0n^pm zAzP}pP3w$nvL2|iA~{2OoEsD+Seq=ihqvDP=$m?7%t|n4i4>Rc5xgf}8XPwVEQlN9 zE=yRmfLvp*Co_x3{R$H`5z8j&>k#WdINCf>#c%@8>KyM1i<@G`s~1pbsonsJb>AupP*hG;gVVylAFCK_L4J zyP!`+>H);l6YcEgrr-CDdh*O?e{s}@03whSKKvDC#fjIY_0>t7A***xA7%HM`I0e) ze?KH%LY|O2l9aew9KzK~ibj-uv_U5b}pkn1Tg5ftiRw-8j zWNiw}^gR-RBCj#wlQkR~mJkSNHNoR?&K`%by4A?7!)TaP7Ob635e{|_L#0Cp_RAax z7I&0~hF$>D^^D)fp;W&+& z2l){izdX->Yk%_dS;}ucaf@;RlklHr9pPwthkpQia(LLQY!K{dh^;ODlRi6^*N=vE z$xRUUNYVf3!4VM~&COQkEB)<4-s0kRvXjpR^5y!=R9Hc{4p{>elu-T!H%k>I5uw(J zSm*#im?YV7dk)+ldFLd&{?3#Ub>5ZOL3*nrB2o8e4vp8LINQ30Esnd=1kQu3WMC)H z%>SID)+PkPNq(S#TN;J#ib1Hohb~*BvE57naaIh@TZrn3e>1beP!|XZeDkl@XTuba z`LQsY2J!IzS&D2vD$1nuHveVr(AO)>l4fhf^aF^)943k%7(24X65biE}pfc9{kee8$;3Kp+-Ago3>-BxgRAg)C z14FDB%3?A#uR0}XqWn8SX`VzKZ5dA?t+4xJl++^|5D(^3sXT+{%MJlq*-_6a{bNCp z{5*j%IcTm>Nq1_cvI?w;QrjQG@ha-5SI-*tk4DAZ+w7R1p#vB1Jhqh$^=Y$WoIP`scFyC#NGqfNxX(U(exwxPEFEOnA?CyFHr zR>4+IthH`s?~HEZT@t^(zWZJq{UOnAx{4CD$CW9AmZuL%@>lU@#N1WIVGu@Y9T6W7 zb3d%^oX=C&Pt4GLjMLPYmW3tuV1)XeByE$Zu;cE#|D{e?lC15sJZY6w)8o`?MC2_` zFjJ$-aXqf7n;99VX*};Yd;j_W{4Y!>VmLq&Z8`ZoxZo+eLzrwRFQ;a^vc=Twj^wPa zRn5SE)>8$j(+GM2;P=C7xLdVIGj)bwuFODpZbB&p|+idV@1fVu1k zy`_lOl#6r3<;l*iAb;*5>_atLKJ4EDb|8BI^Yq3lNK9>cX_}C^ff5BWy#HHWF7LXm zxGig6mUZvS-{h+Faf*Gz`3;BKm?ImY!@)gn(E1lhzZUn_)mB^pKK>mB-+*2ZFP)ZJ z8rV+**Lzd^Vg@}pd4oAv_x^Zd0GMN@SBhS+I*V{>IEV(&g!F=~mcb{me~<6#-~yY# z=U^aO%+Wa1?DnX!jCR<2;wvy>-SWV3pyy8B!i|LN>pm`JSc%o^i>Y~*Luq{%Oto_D zN`{aG5R!sMe9ROBuz%-4C5_(E)F;75Ds;DgO>lgF{ee0HP-_1M-OM7?@Uab`2}VQY6k>`#p#d zKcaiFr=UUQsfsjNdKQq1!AT<=9oz&al;qupfg&Ne7h)J3aHU@MH2dSpySE)mqEcMn zl6XBXwjDi9swn;CO&Cz24Bj_)kC}l4J!`l<5nU;^L|jp&#ECd5u&nBe88+1qC)Lp5 zL*WzJn-y}dD>zT-!!Cz#?erTyyFOwigk1pXCn=&&S(njy2nW;4UNc&yL|cSy-0{6N z#AN%-#?gTZ8iqCUWM0L9j4{gDRo4PXE)?$gcB>DzCwHL}4o3QwAS>Q!o!a_RvzN&| zl-=yy0%yGhj;bqZ+Yek>GD*jvmBLY}GcYGw4N;UOtr?g8Eo8?JB_dZ)kX7SW@^Cc` z6kQsw$&9U|#1JKZ&RV`DRg>NAGhTNu9F0mGDi@bulv;zR`*IGHKb8G43^4~iW|+2; zp9n45b+T60oY$z#0;H(iv;R3Z;MPUmFAul)05T*UPC_iK(sCofdrugHXj4 zf@^*SV4YZ|zv=;3&0vWVt!BPtI+P+~7$k0~snKWX`6G~cUxeqm=V=&E5~M?Rd5fW$ z(9$EHL8f3F6jsJRKGwEml{%wZ;aern|5gG0iY0d2GbXyi8hE+&^=0atc1L_01G{5u z$oZr3Tt1kDOd!^13J5F?ccA(p1uwTLt62{c3Y!;Hv19wv!X3o#x*Ef8xR7-ib5B8`k%hAxH!Vm0GefHBdi6%vS?Po24gI*Z1 zayQg`hT2o+Je9qyvQdg0dhiVTn#mVJJGU@jNHNxK1OwZq>4Lo{v+qW;10%IhrZYd5}cf6z`E%UHn3Yu?=^Mc{Yx3#2lUSbqj zbt)+~%UkvxmNde?k0yAbKKd?uzqmAKI>T-U5MU&uKM`+tr+{T~=uHCT& z`M5@ZtXqRXM%Xlani=MGc1vvvRIV?E&=PCfUm!9y|FGp7+&TEg{{5>m7)xLPn&_(9 z{i~~dYHI&5n(>3ZW^I<4IG|)qG%_r?g8e$q9>cFVTxzgfrf|IP%_J(lr9u1eFiD5l=O6W z?2!!J&ho3gfG8Qz)#)cwGUZG-@D=IM`Gf<=m~kc;RGC^^RhAtDl?aL_StE@m!9QVYVdo9=tT0qJGs zr^#YysQO>bbBrB>A`2iMLx9m<7=5FMxCguCDSa)5!;HfOU_(2F5*8P_e03{X<*@=f z?Ev&Wo2{Y;M1L`V!tcMC%J!%JY!J)`s(^^JgigcxQkrH02e5me!!}Q6`Ilm{NX;Dq z3HuGl)%{-PAeMuz>pl75g!6t+CCcq0_gQOJ0m-GUp)dT%I9zuupaNKB2eQJR< zyv$|MGjCJg!PU0Mmk%wH7KEnJehkmM>CXmQF)L`+5|-NQEwO+E*db5D5V)mV!QaD_ zN3bP_J|@hzaG!d3S9_@Igr5Pv>}5kU>a3F?(7*X_|NXx`qcN{k5ONG36*%}s!x2@d zQhxivDg8%~YAhrKm@T2?aAq&}iy36dJ2}x2Z$Q0!RhFpV{kd!i-4X-CY1xYiL_u5_ z3OxCENywF%P9>Ki9c>uLUWot>Ejd2Sgd zZ+Z%HrQ?%}r?wk2IC4ZOvjl4LF4>#c+&kCUIyv=X&^a59c@TH$2tYHCCl= zCSz#4hZZfW3%jhPtZRBawV0)+%_za_s{RN*g2W95!pZEQfAy(J8)A(LX;mx|=RL%5 zO3-)ghD0;j&kbAs?K7!?41@jn&!4NQKB&2<(vE!~4SR;5Lg#uiyfM{NuUpo(qV!&v zSs1csGA^zlR?S-oRRfuP3^O2TyNxfeB{%a-2l|(Qw}#L;49N}be9%deA@qKD-L}$| zF=l=u<{JdWZ-jIZK20dNO!xJoq6xib`4}|Zw2^=JcU5zGQ86nmaKXO%gMr;QvOzYB z+H&V3!SUFA*$FDG;0HupD=n&c1FwIMdT8FiEV;tF9rz~D!{7Y82T!J)QLF*gQ@dsP zJp7vA2&Ft=3-wK!#dm1tE)c~Q<>F4j0^5!CBSaGea^juCL!lF2WOkHJObPBvmmQ># zKy4KqXBFL4CEsQGsS0k)t_sA67(IRbeTjvzDDKE`f=dTql^SuLu+j z@T8i5L*5O>$e4j+P7FmDz*YOq6-F2?MyDQts(_1r-D1-aT@K!;?W64G!n5Tu@FnYXCo1YC0=u= zit)83N4V=UqLec&sKOReKqd8!Fk?y1Alb{=tbf}KX@;`+3sD`U2XOHeJ%2FSXmdV- z4m@%Tq$(1V5&L@j)GFdQZ;9=SQbVE{BE|dEvmx;^Q~gokR_TM|h6L_*=9j|f`i-;o3ljpio>f1HCw^6rG&PE0)2q6fjV&x z6M9QWkrxt#B|JoA(U4l=kb<P=KabXQ+Z?$mct>VGGL{;~p<}L)c z-`$0(dms(q9t4f=dk<_^-*6A4kMupb_gSxNAVcl^s^>RWBh;KqP=1C;E4a zhXBQgcS$KC!Xm|NC$O@WF(h`1xb>CNHO(?#+^ZX(C*4#5*h$I;hXc(x48rE#8roiHm01%hVYE@q zn)k=Jp26a9j6&>ps^6~Fk|J5!sI_%9OZ8hX{o(0GVOREouT*;-hh2ndJ-;4q=) zh_oj!P=A8%|9DFw=sqs0;rd64-N$so4Tm5@ar8a0j+3vD!iM{oQr=DYXJ=#8;rGs- zeI6C6U5M;`ai2G3k&?P=WM28OEc{nx7jjw1!kvjgjN|+>dbEE6dNqHatBFNVhZD7H zj`Y-*ROw*+LE2kS!vUMidDHwPnTC!(SVN{JVRW!^yI-B!FoTd~!Hv zSt+5jegnQT0)}SsUq}UogTnn6F<>RVQ-1(rN~=m+7N}1u2CKxP7I8ZjR`pOJre8(O z`KPX(^@j!v4{nb=YAwnh6x0F{cY+FX`Bj1*v|bHw51=R3@^U6BG%Hi}!RG{0LAg{A zAD=Z^wpe9|>Y1}YU-XCFo*xm6Qo)-41~}bVMV`olL+X0E=g=cz+0Zq;G7xI- z{Vd;dxq`?oy;Rzw6vT@2J z+Up=+(o&lOr#22dbcftsZnGuB{=E2Ns9wkvX3rUKsm)5%X~fCc8`}^7HY9BcB+oSY zuLcV>n@-B&7YeLkY0q|=>0%5qz{Fh%+D(jeJ|=;Cc+skn{)z*?(UU6DAl%h7lv3k7~d3QvR5zWMSqBy9QP)pDR3lSRw6Q{W>$8OevuWP zRoaq6RXw9GXUKY4y|#f%GUs^T{Qg;62@ylK?4eOg;*RbW21tb|stNLg|Kq~3yw6c= z9aweaItMloBkxAyV!4t!L%nsa^MWkQlz(~C<8VXIs)qIMqexAhe+v+aRWA3x^ot=R zo<|Kcb)|=HI4iZx9y#U6L=ri78WX7&!9gp>kA}!31MXY)m@4qu9P}b1Jnwj0xyKM( z!X!Ekqt4wV*jS2Jwnx*2JqV;ZM;bDO*?Y#JQHw~i15OhREJjxXH`8HDfk>kGq+Qag zr9tnvHCBgTbKVglA7t}chQ^JoD8lY~7VS95H0d2{dS^qMRN4CWnwygFHnjcA!@SvK z{KIHQc1ebejFSi`BBwADgIEWKobfhX)8mX*C)fV84Z=b5tyY%U&g6b3Hk4tb?>4ZW z&SbDu!kjztaB55NJ9@H~TC^z3uPOwt-@1F`tfC_TGHqCE z2z5PrM60t8AHl%>j2=KP1|GZmCTFcS;VyFsfgP)suq6z85YLyl>_xO={(19Gs*Bbb z7{qzBmFlFmtH?js@DoPtF(>dH9!-l4_55WH(o%&-TvF1mF|~f^@vWk^){5Krpa1cH zXRjPS0|AJQ+QCu~q``7=_C{Fj=}jQ1;CwO#T|=lP=irl`zy2jl11@H=epG4Po!88% z^XkacjQuE*5_u5U0$GQ*h5&5)IhS;nT{Es~;4U7dK&7TGv2VelDgz&5F6rLT+D{YNFFoxefOQsV56!X0bfii`Er&hk2AH(#^7s z;>lGF_yA{l_zH5eutUWmzBZJ1`DsmPh$?aLth`fI{G7+o$u2XVOmnXi2tmw+i3g~e z5J`y~LGM~{8u9rD`10H8lF+4msX++b|t$)4x)(4!NS|8t0dvkZd5LyU|%bd)ii#hV4tjN>;r9CY>5}DCAjE+hJ$$||I+C67< zQ8E8k{X&+xBL}KXG0r&1{kl6s1_!j_avg}cz+OZh!!#3^iKWh$8;JXAXQK{A>v1j+ zgIBjL2-R9spT9!;kNmDv-$PzGb;7SiDO z?5$eo>Rpn3^agAxiP2wi_BC4yAp&5IJn^=iXLwgg+-Q)!JJdaE#=|S>O($_Lj{1MO zeZ@&Jnj;TEG<{0N34o9?^AQt>Rdj$Z!HKXqlOY-q;HBm*b%*6ep>5C?a@ z)Z$>ndGjz!Pg0w_mse&Z4IxA}jERZpx$9ik5h0~GV{Kq#M*`j%o2$33UJasM*ds}= z!am3%Nt`xv`A5A;P^{hQV!^VQ-v{HwCd%Pxw8DY(HUDL5hzMxVAELJ{#h$OL27B^` zqAlSafL&MN@H?H3XyMlC1hC%(Lkcz$lH+8XE=N-X=bvE?AG>^JAk6v*EdQw(uS~Qw zfZ|Ul)1&-LKHNi_hGq-nL8oS}gXq>QkgjIVi@5;#9&Vsw8rPQhx3Y+z&l2k?Og%{! zNgt4-3juTSr8N>Qx6eSYbKVgTRIZL^q`Lan8ASb#T49})tr~-?}TJz{$YXha0 z66EgGfa9KQ-$20daODI%nO!3;+Fe0D_rQQFY_)6|!W$^&w5;P^8fSTKb%LBV$a=fN zP?ew(i!po>yV+)PJ6D*I1x&Yh4(>-+#mN!ZqplD^RLbmZ9M?+jn~pndv>;nj3)ls- zrgi3RbBCYK$^c|}^xnBWzp^hIdk;bor86i!hd4@pMPIHK3TItiIP_zb&EBynHtfml zYvbd1C!>rA1}8R{7xNFlMG3FDMx20r*D|~>lMW9?Sq*W zA%IKzed|tzCpBh<{O59u`eUYi0fA~0OQ!^e(s4)rppW8$_};H1#XlB(s+Zzcleb_u z!NNvY3IZu~#t=zi6`G z8Gauw9h{7-zuk#gnTeV-mu6K{yraXJLOTw&nuvYa42NnZpWgl)owQnc26@!uRl%N~ zCW=X#_~__cRkV7PR<`2xJPd1Drqs3@vx<5voK!Gf!NI-X>Cmyxvm^E*Rf0-4Y54C; zEhpo*^0*cdcdxdF+633#PRqEaFM0bgd#t*NW(4Gf179*kmDqa9u=-*PA)VJyZS`1D z+rd1SYH9L{)-B9(pCz@Wh%Rqjok#^{(&=d_UY9&K!mUnfy9x$>Xs&G$gjF_0bs^pt zDbjJx2|LOVoX{{4+lB(#z?@xCyC{;y1e6>|eRKZO2F6V3BC5j0FC1YY^nNfj>~)r<(p_h;9#w9G7RJRwrMN+N3`|pn9f}6S zq-tEOK#GFg58tRHxh;3}^kY@E2i@QrJ-SR*po`UAnPh*JESpgfB`)q0YZgT2>%_!h z!i2UYdc!(8d9YgE3`eBz&=0!CqpUqQ=<5fS;|9a*d?-f_+lQ}QG z{D>~GvbDnf9cs~$+>fjtM11$uk4I8A1()m%lKbHs;Z#of%@;pG##t=2V;-fXPbCfB z^a*IgO(0U3Q0Yp=%Ojj{+3=OxYA#$M{C`XXm0_BMWQ9(A^L|sPXcp#uc)PqI(R= z{qvpZB)DpXt-D~ak*(o~o* zB*$b>{1$C>(rbNtbc@+N$0HQ36yaUKVc3RzJGc%;ty{)~Wsl+!8lQ4{^Ev8TF&tkv z08%(U3p{RpMHYGAyL413lse`Mrg}!-_*zfQHNC@ix}y$;%Seg_Y`9A9!x&wl3~81NTH-tck~ z^>jpS-<)W{bjP%oRm+$(JQtA2h+NW~TGj}Q#Bj|GFS#bzoVR;Z$Y{Whd8oxt@j?zH zJFFj)j_i0q-m*5@vPbHiB9?khXO!1lTeIy%TbYrI#e<1uS?5?Pf2W_xrNd^2@5dNa ztX_0BB!i0d_FgTqgZ5#;;TlhFgMRFS$nh8G>d21p1N5PDi#~eMctQA8VK=Tr)O4VT zSVK6emJ#MOku9Z!iZLEKqf5@ve)&x5V2s`3BCl55C0|x4CByP zgP_&9?yxI=u3XXql+b7Z{u`x*X28%5_rQ6uvwf`rj9&m^8b9X zw|`jMshz>Ewd#HjZwraCmF>L-!V8oy13cToD*g~n)sh_|HSoKrhP7*Hlt&2&Tn|n(KP~7_niYL6XN^-(G_OGJ# z+MDbZJLzCM!*{lOb^Gr_q0V*Z=Dde0_fPKes~t7GNFyLZIe>`uY%klN5D@$zFWbZ} z!e63I=>4Xcx;z;gnQ>Mnp_OBaeOw;Iy?Qz^UlXTlBN&a4YdhD=8NcaDyTz2N`f4&W zb_Uz|srN#Cmt57oQtk=xVy9UH8&Jwqr>*uK7Y?xQ_pfLml|6iYT*WIZk@Y9O4-J&D z12iqaOA@!Lpq^Ff8R}D#wZOHyOmq7|s`IMFTAL2x!X?Yes5m-_?s@J!Dg%0O1?TA@*qokH6VXS2KQ zKBKaFOB3xmn0_UDs$FA0eVqColr$~PT2CDbIhFC}q8i1qJu3hX`I&!iSre9CHYj>A z5{F(CQzGKAju{nJ<)x8&evykEElIT)U+7n!~$V+mF_;utctrBg66^^(1=Jb>2;K zduyXJum?`7PM$bKY9U`)yH=}7c%~k#>=%*A3tk%7t~f1sJ?@}ohuRbAzU)2K8yon< zvU;)%vH-{HHf@fYm}eCmI}2Xo0np^F$eW)|VbQUE@PqX?n-lN;HPU;|+}?>HrULlm zqkCcz^`W>bjJ2pG4E2kWj(* zQ9F`K%DR8yciuvZ7+kp>Vm8T=X_IP$1&xI8aX2iQ7b>P>%ieq6)A@qq=BpEB)Qvk# zk=AUFDV8O3IuL9LpPAEh6VJ`D>~DCGl5Al`|5|V2!`_2QFz?6DeE3UyEi*HtpKa{c z><1gwAE#W(!%nPo;?ISX^Ko$`Cu<*McH)Y@RbK1Pq;(NCw2fGNqp7F%mQGBnWlJXA zp(J0ob$3#4En-)Rb88z3B!}pD?xZxU{L_9U9p7Q4L4VMj`P(4u-ZfvL6~qv!OxXY1 zTxqs6JB_gbO7lx@9WFg%m7XEdM5*^#c?jFx+uKJOwH(cg%i5{!R2#_c-~#{sbMs3x zY7IMs(ceGLe2&8Y-@o>{GacwYaD+N&&9`R%;gRhPtVFiZuJ&6Y-Z4-Cp@q3T-I4dL zKki)x!^bILCG|c9>>+E2209WWfaoosp{TwmNl&`e*5005u%Z($8?!!ELB zbF=e{MX!sd2k)9ZfX2zNf#~&B{QN;%Zf$NoR+kc0P2v!L?{=gb(@H|{H$+vQm zBmDkC7^rW+Eh~x#S-JdHx`o>poWSQfPMr<}m2#g@(KTmihRQ&6mgb??T&qM;$n!HF zudaq4uVyG%7mX*S1g5Jp=bsAavsy6%yCWiLHrK2AYa}jwsoK_L4F|_$f#PwJrujFT zuML_;kAAze_DIn>nd6tF7ywd9`}v$7C5!s@`RUhHtFBz*v151@#UwAnX46+%_|mLSJdJ(sWfCm;7wY#E`YBGdok%*sUMbBk@y|HN7kPao=nVMA|Df zF;%^U@nmjddQ%3987+HzLg z`e~V|T=5xI8nv_P#b#~y5GvtB@k4mgB5wul!-el>se{1%m5+5;NbO@$(>lS67YYWw ztD}h=KBm(VLNw_f-E@>%5+X;e=?KYm#Q|FV=M}uLZ0q7#7qwlBoE_F9 zkai79Mm#T_&`#%4T-C=AH0Lo;W}|D^WTl6+@(u;TI@#UQcN)U^9Y5v1h?8ROy!FsR zoFh$;GiZCjG3H1}@2g)jSt#B8mqND-ikh38mOjO$AG`~A*_n%O4sXVE;dGRaH454l z3>LbT^q^oGCJqVvq^lZNhx8OA%gNl}%b26rf683op8SrPFvXvo2eLEM(|{u@>VwCc zikI3C=8u)3I#ZN5N#OKSPy$PR@RoYIr zYT3!u#%MIKtI@aJ3Vvh35HQCoho4q4{KQg&VfgjIo(lZ7%F#Co%)+7FEPh(W@RNGS z6xQw^r`SE@6orv=Gi*?d3woJ3Mgkk@XFUN#E>Vl*rJ>Usck#iuiDLZrSeaD}y5R%v zX}ki)9J33IytW6w?%bFwoan_>;D`;ZM}(Ft#xexKGtrQ?Apw^`-9>{b)1$-}g|IWw z=}~`gJX-4v(>21y2&KgGf{;q;>dG)x{9-NC#6H46o@)}L~p>ouK8OjTof~AQq zx?;-HBY)Cne96D%ReL;Cd#)i{jG}du=(Pm&^~?F(r&SX|g1V`dYxB9QPM;_Y8fzDl zb?3#4zpPw}@8iouR8$jZ@DHd8Z;$ser}h6m8gI#4>$JUxa4Zhb;1^P{5Si4~OS3Mt zed6AOWqLO;PY^)OmXJlNW}v`%gLh!#Gf#Y|8n=0Fi}H${(jMpJ0btSTn^>H&1rp7O z(myuvl*Cc=Dy;XhxFv!NLl@u*CZE48!b`*a0zOy=0z3Xpj|Q$l|(5s?UPbNJQM zk|xxJhBXm_Ec1;`CuEhv#UzGaNSO|jQR~FK%h04v9_wh^qgkfGFlq1fN0?-HBxU>s zk4iFVDxXqF>+kU~=2@ybj`4R)QN7aavkeb4peFUGz8xtOC!=M`tPCnaD8GpCAD|NL z%65$uY+B<{FeIHj;Zq-BNrWvS#<_Y+a@SgVs6@vj3= zPTcr`9zVA#`i+fjg_=>PwbSW$;G8mg)yP8Q@|H>^j9Kqwpkp6?XJl2@K%$aNy?D%| zzXRysW*FY3g?2#|8ILBLs-k)sxrXOPsa8IhJ`_AiHE6ykFxnzazMo8-1I;blE6EID z<`Po2SsD7Y7Q{Y`n3WVT)P}0%3hH$T8EFuwoNtyhInxrRS`8`Ar+JT7q)Lg?I%S0o zjSoX{qq-n6B|iFtF~IRC$DlRC8#dZ;y8FYN;-Xk%l-=bjFHG&=i}|33$B6GY=bud2 z8at4UmRCe1ax#S56?Sl6$)YY>;=!+uO6WlbhK97VzcN}I?JuC0XN*yf;qLu84VP#rudO%&V@H?5W0h+*sEqgfxgQj@44Hi0%BQcI}+bIB(tt5p$jYeGwe4sR*FaZs@ z@z8_o`CVj-eaOBUuc8WEKADnivlugqL+9Z^L{czpI!vk zUf{sLxE3ro;cu_me_(y|am0$TXv0M#U~!7ABs>*YUQNnN?6xcykG9amdi?H0tp0%# z1;}i75Jt7n7OC2susq)9{wncfu*KqI|3kj zNH1D9JUr#BqZoPsbk<5}p@fK%6sz94Z?h)3Ex199;D(lsb>$eku`Gfj@mNf}!8g%F zX5ASb23Z*#*g;U0l`FClsQhdBdVJAqcKYj`pxf501vSfSfoZZ00oh6u*J~AuS}T;p zNI~bHKB*U`M~}{XE%FjG8Aq812X)&U;vXhTGKIJ&nC6cRk8F+@8%NpTZe>c}zqF;x zxND9syM`$DbX=UZ^@?cnI76l%Me9MoMUeziZ9fHGfJ*ylMxoqllT}TvZR~1{R=={> z=*29%U-l??Exn7YwF7dJL(Yw}^wWkF*Fcf2k`l3t>BpF(io?vY83DJ}V+%DA`n#9X z5MUsxj3$Y|Lje`3(Y6)Aa8A?oqks-7MLEG65y3G-8 zdcXlXa3Lxmm8;u*r*0?%EGXe!y)v+GN29cFV| zvJwhN93AEFEo~bJS&g{lPFb*MiU*g>Hu=qkGa)mKsItbfPF^M-?z}2e!qijx z13a3E))o(=0?S}$8^;E*R3>^zh?ws&Vh?VMdcj*fr8y4YVdg=p5pxI5zj-_ub^-!y z#B|g`S?J@Z=k>!09CwAXzBpMaKziQvS-j2%?8qp8p#$2%z%P`$`c6avjU0y_G|ajR z=o>#9kn^}EmY0Rlij(Z$$YZFRL7XGCfl^;9mQzk& zK<-Gc#FWEV;fLN;*foK?FVvX;C7yXK5Hw&v9$>w^SKJGIP-Lx!O{8fptci@Hl5yXZ zaCe~a$(HW&=97qEF8xrm(+Zt9%p!o{LbjGkN_#7MdR0g`IlVJtGF!UE5}>TF_I4q* z)yaS>QHUE%gk4tpXpd?;#bBXckUQLSH4?m#18(WUMNhZ3J`8&`DTbP1=zf68;+*g6oLGNw;!N?oz^rr>ww|_=EQugHAhVy2jjkj zQ}@j{4Wqr~ZcCLcw3PgdL>2|+1WU`()_w7BZs2;3{-3O{l~Sb;gM8l{;(NLcTP4{# zoU9Sdxv+0xZQL4?7ONtI5{DXzQ@EeTWm|;c+6{|It#F`Px;%=rFF0~eR1QZVh|6<2 z?d8PDg&sY0I8vSZxUADCcpJL;u)b;ejATtstRxhT?5NRc2i5CqI5s0)EHY{FeGu=4 zlF+2kxXH}9k%{0_?OK4&afZUx9hwxI?@o|Gm+ZAu2wwXcq^|uZiChj>GB<$;w*Q03 zpM9=6lrS+-abnkYv!e0!b?57{B8&g2358_0*fu6IM#lePG{cD%k?fxH1Q*XyXn7-nrb*WJ?+0r^d}1KHbqyF3~IA z-gQ2=oKx?ev0}geV#9_iQMUu#h?RQf%@vSRNbYPg)*3}GAZ;)M$?D;skT=VtuBf2% z*Yh>d**7x3{V4r%JFQ4I)AI0VJuk&n(kGPx5S>U^)wbJGJROQ6I`9WxLiq8C3nz1o zqCBd%9AQ)qM?+pxO)P1AW^6APmr1DYF zh99|Z2rLDDJfwazdPwec zlA@pcVE;En`OnczJNPoff-?r`^|_h>O)pLWYe1C0d_45@81oS6_;1Yi<2MZ2`OEcY z2bXjdvbQnPaZpWrYBDXqj^t1hjUHQfkC)`yPq}pzDPY#L;rpnqJvvF_g?GNNc>K6O zrToRJS9!7|cVaz~(YTJxgedSivS0soR*iH8QU6!TTc=3oLb6GTu)0kT&o?{_I4Ye;yR3W+1&;fVU@@B7@3}l1MY`a zeb+kIfbH+NPK~99F^YIGC|Hq|4j9-Z{Rf#CI1`sqX%v1B##g|tklZ21zbRE6L)0Yd z72^E2qQP$1Zv{rI4VkS7iot(k>OoU4&>6?Fe&T3XnH@2NmU&4yZ=mJocogQia~yK8 z)^BykZClWuK3}xBD1?z8$;D;Gl4Vi(O7v2j-+l9#=&QBcuUC(2)su_;z4{>yG`$0M z0*{t==teiZ0>)+pm|0brVXepzH7thYKAw0M^PX_q8}2uU_;$@sN3BZ6E2O1Ljee(K ziwgF#-MvwX=4T-pX4r*oM4BVoW`PNs_S(I(MjrGQ$gSzhXIFGOR1z{E5L|o^W`Qqfc_+o z(7~p1WM;@fMh%P?ZtI+76k|Q{z43@#x+-60&i05R-2Dmt#i_Vz8WA7XT3%*#=2Uyy zRJK14r&`h0B-&Lh8|k-^0%jcj9jA}XHhaIMXk#J*!1?1Ivlz27^APL+HtfQ^P*k(z z(1^Fswy5z`LggGd>ZIggKI{I)Z9W1M*DN$oVyk(>oy1#vQ6Hfh{vR!RddJFWW|#L$}d zxVAm>&8wyJoVI}Lf60Bah1HS)K-Z|S)f28AtE&W@Mx!8B-Fp0XG$v3O@IH7j>^(jv zbpmuK;DR6zs_lIK{4RJXdZYx(iZ<|F8im{8J#b-7G6H2oW&lhw@0TyBZ~?|UYh0N~ zy9H%eiSpOIzJ6Gopg&&nG<>|2d7(>v6HZ;P+4p#$9?G2IQnc0B+bwCXRJZ&{ zuf5JR(pbD2YDJ>0TDNl-kOg(G`QY6)zi6+`sBRAP)EQz&ECARWZW=CXri(@I{}^6%u)Enri_teb$4{J+OqA%pLanp z*w=Vy3cKmDBPWxDRZXo^j}8)H>#zd%4vXf-iDKbhMAw?#Zz{h1Bo2BIh{o=O|%NoH_A+rqUZUG{-N_B)k5DzU#82Z`z_m?-Jc_JmxM7 z5;~eDFDFW?`apZeVI~1B&GCh23&7SLc!aNHZ|8_b(rZF&lK#v+difu|Ww+gWX!dEk z3TW8EXA>TA_#VmFf^o6XAOt4>QKsahGhVJi*Tea@+4*DecDSF~`lTvCmh3L>)LWJiNJ4u+A9|hEp9^ZJdgl@+4 z{<7qq%EjhhBHVGPrqse5!4F$ZZ^Nc{R6<8Ol#DFi#F;;VV+8rqxhM0`iC64l48_ZtOSx}K_(PP@^?LZGL7|FBbqwQRjA3_- z`zW?;jVOFOt?p152Wk-U0#DRPRy=EPESr~A9{v-CM^b=Gw;3fhFr&3(;>2Q0oONrT z(VOeLlDFRt&_4@KLDOTfD%uk@)ij0Yy)@?;oL^A1^7k1G=qE+YbMTgIW}) z(stB@TdcW|{;^xD(%!ORt(Ibs7D^E^y8z;Pvc!0xt(G`U&7?AVyVCyu9tpfN56*jt zx!G9}b*)qXWlVOh-a6tFmqHcnMoUzI4#O~3>znuo8I1>ZYqaP-yE$S~hpK0GHA`%o zm}Z%r`25Rml}y+B11_FO3h#o4D7{c2ajp8kO^rtrP?M(GS15x+_L-eMkR%Qd$V+F| z+%808eZjHr0t~4dZl#4TZi{jr;u4?AQg52DS=zwP9 zRSE8to$H4uI>8g7%1-J z7&h=4bPLFa9!GYZUb9znt#I&=i>F0VJV~fqJXsqBSZSm_H;pioOOx!EwYMg&LxL-P z)=n=)n!$Z~w_An1m(S}3_B%nP@;RfkkSk`OhGLU+$wCG!bA`!-Wr}10(HDG@IA;Pf za)83*U4f4m1nPOT&J=$Jxw8sqbW@j@+(~W8J-Ls%*rdLhLK%Hh1xQx-BAxBf`}~@v}Q)#YW+Pw3UvVLn`aWp5wu$s0IU`+8m|zB%K5iAqDK|Ua5qB?6%sR)>3%XT7H?897z<83Tn(LgKKev7IOyZqZm7@c; zbaCFco~X$48Uw)IJLLXu=1RMpv5pR5IpNTVkBN^9$#>nxh!-CVG`~0ujNb?9LDn$# zojzG$a7z^2TO5UUNWH_!H6R56ENPco>Ocm(1hM2eh27TIOx$eSY@K#8ot#h@;i}u<~4!n2B;>l z%>|Un7o{5VVsVrly-bSRedL?3eoi&Wm34!*OBa>?W5Ix7f%miFaB%>{KWs>`oBi|P zxgwh6HQ(~#8bw3>pef%OZ9dg#yk?QKrAmp$AMJ%e6RtJu+HAWb>oK0#3ss`DzyIAv zr4{XOS*h2QcK6n*7uDTkhutuTP+#NNO@I&o`JAed(>$3fV_!%@TE*xc(l8!|qBGq)# zGN5E}Zcb>m>Z5E}`@fxg4XH6&_2fNp{}Vs8LqLC1WBmdG;h&9KC^=0Tu zp^z5)N2nI*^s`BWQM9tlSvG)a{bAwzq!zfua~e^UN(F`ymlb4=o1i-1rX(9x#G{V)Ym%AsO&PWs!!8f9BCaS$}ncfi>hNO zr2~IdYgg`036ujf>!6cgZ>0>B7P+8qe*K2 zhTizSW=kfW7~VEU2~_VT5dd%9;@e6SKw|`L)E9YrzF1YHPwev}^Nw&?kAV?R%L78& z#3{J6D6!Tt0Dd7Q9)ZP8c&nMg#W1e7;{%)EXX!@f2-!K-mWS0bHkuCIl`A@ZvOU?y zcsWgx*u-FB*fjgxkJT%&P0TNL0B-XP227zXO49c(L&sO+HwOk}xP7}x0GH8EfTWve zBVqG2r5Yneqty~;3$i<9S7o^52c?iXRXAjU0?-`@Hh}aNprZobT%h7Zbl%&N`RH=Rr3`-pYF`3{i4yN@e++SBl9EZKN`Yzo7l+exduF;nfoUV>6ccz%#bT!TQ9_FbAg+#Ptn!Kg z2NL|Y!K9u zWE5lVO{w$kM4Ow{!h`;w?2z{MFtMaEZAddPwag@x#|YO%LhK=)ZiJ#HNuB-L;OX`Fx zoU%!F3Nocw{~3Vk#(~mzvJF&^C|WHv);dhgK5h=ET8bM$b9)ip4g|av z&FY&Yj1jT3=Tuw*tz_H<2CI@9hmrFL9P)Maa(p{zQlf;PwdbmyMI{yu+h zOf5MNpS}5Fk4vz_Sk!G~``@SFiTC46fpTdnXqt-&hLkaSmVq6aDy~?G_fRh2P;Iw| zt^u$V;Q-?}FsW}nR-{10@706=!4Vm_7kj5_pv<~i+JuL)1%ovm9H76%9&R(=r<_tN;uzD$j!RYe zmmj`aO*|@_1Ci|+!#8Y!e4&=Sy?*z>)Ag;E$Yw@Y9EBpTMIn(@hzS;)jdn2fl2@Yy z5B=?6Rg~kU4X#L~Q2vJ{I{F5YE~>LwqWxjm9`k$pFB#Luq2E=pT#`OFIaan1Ui!j1 zc4$tMTAD%5GeszG?u}?aIzwioCHkW%KD*VlBhgytXCkcc-3{*%6hZF>7$tnP&!RYV z{u|p3_H$@qwbZ7~M?xeCGv^W+m0HmGID1cSHeF5O9?46oqe)0)=gFBx?-E6g7p!I( z&6H3yeyO3jugv0sCl1N&P|k+OFVI%|*A({}_y>$imv?~{lq8a%x_Qt~>6*8k+4QC9 zJ-%I=Ruj@sYqofJ?5Ay={Y`6(bG*0llaD_fHXllzi2ml&$`$Omv37=N2;ne!pK^0X z8XE(%Y&+c1J^kisCwJ}(w7Yfob)jFZ3Yya6VBF+f?)#{`dh;~xxGt4VhB|w+*@w=e z!y#w(y@ZL6#jIsNYKmt{MSm3#KE74Ok6w(oGr(*DVb?4B4LCpQ+ZOkVG$Jv}%$8UF z@v+6Tu8>A=h>$Epogt0CWk=e?{+L;^V&t_ISt8WL*WnYo4w#2pnJm5~Xl*$mU$K3W z4x}I=y38i>N{uYNq3<-PVF3CGTTEe^M$e0E0Qq^HP3N%lcv30_H*NO9R-%bFs%EPd z4%>k7-G|c0e$I`-%)^WiG3KqGZ~v9sX2%IdJZ#=`#UtmfJoTYIeKuE1`NG6kdz#OH zeIF=Sl5x59qoeP^T|4Ir`AP|50jr9w zL_k^uFJg0$rc7WLDJDA>*W9rCuhbev%4m90F&ZE-M{O@U(TR9l)X`s2?7}q+M@<

    _f?HZI-FL4rjXbG#%@}HYa~_R4-FTy_i-i)#-zJ9ERA74q7`Q5( zlc=aDzb2A_KRB*KDrqjpR)V!pFk3Y_$ST|a= zJ`~c8-Kbi*d2Mx>7~PZ|>rnKE+%k^pkeV|_IaemG9DT-!GAC28+oT836w0UEci8Jv=;wZPMR zk`7&(j)PB2eg=Fzi^8uh!)U-qOaQ}r<$O;!g}ze^b6E~Yw<<&>>3CqPq2L|Am<4b@ zc2dPK9z)Dg6;(Z6fIYb4P1t+oU3w_-xel>e)Hq30lD3w;kC#7ugH3{t1>%E!{CH{Z zV|sopHG3v>hvDAWmK@tI1e@Q}S3|dm>;1#btSuS(P6q`7*%ospy?b0j8@j}OQzRi) zv680%X(?Dc47eN_L%qipsfKdzA!h7i&`f>ww6!O_kt$bE!X0w#y|#Dt z;K77yc^n&Fe{E$54S3B`?*w)Q>oKX|X1Ff8wIxBC z%-xO?5Mvlp{r;C!$N)vxN=}f572}r1v%?^8Boy;I<@#wd@uFznPEGon6Wu*MommCa ztV32|;vJVt71%kSZT3M2Q8;o%ne<-UWRK1qBZ!U#eA~ni{GG>q0tcKfXWAzSotnmH zed6+7w4^67y>_MQZWu-FUD{?8F$k0KwoW{v@``PX=$zx*ej3F_BO`CGG#arp4RUFG z>>&S1oX27s*YQJeoL)ZER?nnPMx0H|*5~LexsQJtAIb}K$3~PjHy&NT<@j9aPrX|q z&o1aLI@b^T%(vJIv5~kS<#WC8u51 zl~zl(_;z(QWqi^u71zujd3a{FKxq>2PsMjkku9F!QqZ@Q8AKRQu$AzGK6dujs>_~2 zwij#Fp(~ZdABZ<<84*G^&S zl~zohR*FOSC$HBCje+1L1-1N4u@#G$iNUxVh?o>U@CmQzk$IwWK|?$prMLh|=_jj8 z=&{}Ik8auK((?S$6$87R9D6*txbCXNxYnfhI$8_*4;Tez*~3tP)&-!4Vr9ku7u1dO z8m|QX2eA-FLFJH5gypy8M{p)54?ma=y}bPCrmQpqdb+)G7{Fo(URP(W65QS@wl*M)w^2K(u1TbO5B4$ zOhTvSectn|yb7vmBMpwVWb@^gd@xoD3W-J)oSJaCwK|e6)r*5H82vn3B&du1bEJKG zo~ijKv>$a}G8Dy9ln%25s?V3*u_I~I&lNXP&YHMiE5}ZuPPa39uogl0(XRZbfn^v! zYvU;Wz@%QzR!b2u+-e#4{oV4SkWg*Tm|SW&MakN2E~Ws^!DsFKz}CTjw&MtcsLyaS zf`ut)C2XuqcF?BDLQAe*|J&YWF)av-zGubvicm|-q^)4HpNd!4)x^+#$`&PG@)MeT zUrw>glc6{4D1;{ErVzTijPV>g0WSqu%u$)3&7S}Lt zMQyK~glD-0cesM<&M@NT*Tw1CEneS_%aHOopB^%Yp6?+_b_0E^He16miYVX)mx)~6p{ob>cs}Js(y%3k zj?QvSnq-8Af=I2~asRGHL)~c({^(S&!W@s(g{XywC=VNvT3xoV%M^wS))fhVIgDnB zuSTy^?vFTw7F;dVc|54D&!p`nG1q7UIA+wyn%XqP-P>d0AvIwZtBswKw~lUoQC90=oH`N0dQjkYG=h8A%*;(^bUVHRo~kz^ zAxSAbG#X}(BeMIPnOk@}_gdjvY&}-O<;1Gv-TT}Lo z`IHtdAZ$KqolQ>1e)%O{^3SZQ-C?gcCT*<|t`hEy2ss{Yg-L+k( z2d#<5aFVmz=x4?N*&>&ts0&5QLBeq{pE!d3?Lat zeLK%fpF_d~bP1^t3TELpf@B2QGsT=FMk;_%*Yp*A@NCNLa)J|M+kG#<&ZtPvQiqEi z)oXgjRbXW-lrRo7_@IJ!h2BS+u8%qU!40S*5@9?GYa=y-h&di(985zgm+;gT*Wyuk zJ>!<%+)|YfBuO_{R5!!9%6fL_90gl3$>^XiU%&&Y+HBqCW1d_FCGk0~w2K2$+E%?0 z2X)4|N?IKZ=VsWZh}($ z18pmhv^jnw%4y=}hN@vpW3kIVh)}!AFewZuuf!dfdaFiT&IQToq zJo@2VKBc@j&CpQ#x!(C2wDa?Y$6j<9Q>xr&Pe`tJsDhIn*YCE0WuX_B8Zz4`5#DUl7nLV z0-B_3_GJjP;_|xL>GG+J3$J$p5P4XCy9E}2djxdZ3#8w?B!QgEu|p#r5%YguHjxIKeE(;_zjhV>dgg0~{ zi1u{nd4mJaEw?)Q1v$7iKqw~rg@WCIwxfMQ5zo`SiKbGFto8WjvF%Lel-b}C#3gg= z3^c3r=^f7?kXbzkZo07p-E^bz8gEU|R_N+OP%yA{IXj?oVmP9VspAs!42UjEdWVYK zkBO6!=6g}>c2nR<^Q9JZ?-EomQ*+*COjvz?FAbMpU#8QSX}d;08|SV8}bw zu?rds>xTzDTmf$~9 zeI|yVW`l}Qmh62x{lOS8PA@UZ|Jm{TGTX}KTtjNlcGh!F&ir$qJbHy4nMm;8JQcZ> zDCLD(t>xGX7dclg$8vlTDL==fq(PQ&s+Ut&D_K^dNNTH2NsSNB=z&_E<;;~%)}d*F z38g*3iXJj$5_ZITHC8_8tR($>a!%99Qg2k+zMkf;0O zWyxyXef5P9re0@MM?9tv^WhvgQz!6E#kG8UJBZ< z#XH?dZWJ^Z^4BoJRw^%|AW_=xkgO6M)Upvs71i1aG3>N!kzaX@Ar`K>45e>ZhzSp_aI z>T#g?&rD7E&6C>Av5knEjKo~)F~e1|OX3(;>)jE@n(Ln~Oez>`@X-z$gKlSp$E7f= zG9qUPt!@|vmJ}PNX!uY;oe5T-Ldl6Jhp^*p(x+f+d;C?xOS@`=1#V?>YbmrN@gBfpFVMHY|BEj+ZAshUV2OkQsJcH zU3>ucb@{yA-=Z}$R)Yq5LT-S_XVqzmB}7d0gO-gN#wTTOpYPF#U-ld_@NqVW7P^nl z6JS=ii(XnU@rk3^efT|SKVwq#drquQ>9!de5rM@g#mhC@?G#Z$OR$Ukd9Dhmce|H@ zVH&FSh|vql9}(jhOQve=s9+6{+Ju~#`ew&eV+u~rkh5m4GjYnYLCdA3_77;`af+c| z2!E{Q({eq@PraD==_l{67Z>lV)qPsHsTZ;9_!PjI_%3LRt_-$_K&oO%trQ|y3=Ez^ z3Ew`?m*B0cFnP6zyFrO}vaw5~%E`ap?N#w)PpwzpA>M=9Dm~)_9iQWDOy}?Yb zz&?jtW9ao4Q4W`TRN~4wP72&5EM>P(bKv z7jjURpE(pV2t}SGz;~Ks=3dL{dFiiF5ZD!n*HLMVhxc8q3;gISKE6>4(u+C5(vdoq zuoV&#!dA_0G`rU7aqkDD29F$UyAJsXBdsn+Yps%7A=4(Xq>7Z3Ow3R~1XBc^n*pn0 zAju@?cm5Or=ejl0iJe>mnQ-++p`VYP$jbVWnibv5Box#;#6>IY4G;kwD&;&z^EPuj zpKNwTo_$_OY;@govYI{DpK)HR@X1=G=Djs5?pi!K6HfoE2P^2iU)WU$8E>T4>TiU8j{m<;%J?t zVF>QalAaF3`0EV_kc}bbkgZDCnxv)dN3eR_qmM+B6uSn}YQX~5K?0N#eM{JWM3gpe^wZNj@n)UOGNdK3>PK|O@bS|1JZXAp8?UU!qE{xn zJt5TPzh)>C!gMCbC>!4P)5YjI6myA3`xP9s(%+;j3cDR&>8_J>O?Ofpq*GwML(;uH zQNE)ogx|M+5D|(y^NV@7w(g!}#^qRVeK$d|=HYp?C1wJu_&=g4?6@aEWLBnLq}igy z#}&76)r3o+$7mH>k|k}_)YFKzPgM5(FVa?SIcq(U-Wd=7Xn#tw6=%N{QksvUXj=aq zgthL%f5djpHCJ<@46}4Tm$NW4tp&7CvNxi*j%mw%HnmDT_(*0!oIJXR{Qd74jf<<{ zoU{7q?<4Ggj)WK}mj(%oxL7%5UAvNm#K>=rIquLjt-%88bf#q~D=h3k-;SI~?1yU@ zP>W2KEb+EerlUt?-LaIzn`EC0&m6o9?+@BnB#dT$_!h^l$5gDLqZ=QMQTce9xLh=t zXpix<5F-XU#gmpab7D&q_g*xJH0lhC5_fHKXYAP@g^YmMuczv%8H6JbI!=lPZ8E1o zlL79XIL4HiaL=9<(r_a;n!*YaFjVwSMbA~Zk&~H1%Q7#^T<{p%LSC&|m``$id+z0M z7SX=wy*Im2Xc;$^NbH+?gf1$pI8W=0XKrHl4l{9^OMvA+YV-3Sh?8(0kljy*oNKx5 zsxdx_A1!=M5&vBOaFn^!(ZgqE{u=b#!{7#e&cFx%@=B!{_Fp4ZOEjw;jygnLPp+;T0gtrL@f#i%ZqcrPA0n2HuKAW|l*${qgoM z9XOZ38H{ejw!%E%3DGBwsY4JbcU%dS|PmnzAg8-*O-i5-_tTbHa&4)>#=^99Y14653=X_#W!Ai^1^ z3|IGl#p=9Nb9&Ed-`)Mxxzxj8RrsteW*J0MF4MA=KTgc(xflr*J|_IlTr|CDjwCWb zZ)j-Gp>LD;&>)v1%=4qs4|62Zoo6^3dDzE_kpo^J4az*_%v<@HTqDSOh1aOd2QFX-$Jf^J``P{qU z1|v+XBADh7Ff$~V+JL65pe|;y>qQl=1iv=i?r>XmQqaci&0@kc5hmA)#s?)n309Ra z(#YFN#y!F0_eHc>vhc4lqBtLsx2>Em+9TL0iq$pxW^P4MgWjfhngh(-b+1R5v`21b z}n=pFo&!P!wftlyw5x7XPi7RWHU#8zeSlYVr4B_B_#3IW0DnJ0c%R z`t=->js*ZL*YNih~h0TVyO=Sf0GL)IyFAI7GrAtap@9c6k6LI#Q--x*{;HQD+oV{-~&RvaRloM#ahO99@63 zgJt~sQuN}%!7%wAmpU6izG@iud_Sn|gp1>Dr{6s|3;yz-@SmJ+=<8v`Cmfw_^eP|C zlq9N5jBb?LaPU39joI1R*NclD{(bX$iT=*c^Y<+OUhrlYmR`@!&Aom-yXZl}>!qc? zc(eb!VVi$r)DwZO^zI(U&3<+{D0Y240S*tv(|`Ya`S(BkFaP6T{_9`8UF zy6BMwz`4Joa5S2^?F}U-w=!kPNKh2QJ}758{V(BNutOroi11^o(}%0VHC*FaRJShj zK^1J~+my#a65FfG-c=ZOgJypP(nxD}@A^6lMysf0-n&8_pT{XuU?xa)rBF`J!rOM* z-#vAQaZ^#EZl$bPol642o}sHO&-)2OTi`57UNZ_YvJDphg=#H^FbqgtD!APP2+~ zU-Hp}>Q>7$Gt{(KelSrwa2WbUNBJlC(rIFJQ&!OR!~`_QqZE-;cnviWyuMr-|Ar*@ z7FQe8x{hSZv!^G(>i4qv$Xc<7i3kwd>rwKK#LZGWfU0l_r*|SOAXput$VNqNZH2?3 zJdFJ0t&^v+W^X_$#n;>+jLRDFG@@7%9d@Av1oP236Wezwo0Vp3G$!3fzF-DzJ&+Ok zrO$CEbAWz1^?F7hS8N_izx%-mU;T6LipS8^S#8wXW5pr0Pyu@8X^xaiQF3xKm-v1N z2R37KQ+d)>a(siAq>i6l50Xs~-Z_hcC=O@IT}g1$YEFA=MLCJ9Z#|>53%S~f)VM?| zlS?v6gzG)dx3m)J?h!6a_h3fZd5!6%h$3riYRk&jlg{3t4}J{`4fB!%6%ZJjl421F zAQ^$G3xi0jT+^H1njfsrj=^0LU?_z}5{2~DYzj+musvJYx{St>ssqMKYt^5&A2gI+?t8CG|bu4AGFFdKKLQ&BlQj;9^MFI*#hoxyQTPGz=1!_F3 zP(gb62Usok6_~fOA6LZvVh+XSL=&ZG4qy3me1PWoErY3Vmnc`zM*oS1Hl)jO=`>|{ zt9j8`f;pQwzQVFzMeO6RurO*UZ9S0H{DfjSl-1;H zJcr{+fAvaZv-mM0ejM{l!*gaqUIZqS85ZTIGRZ8&e+q+HJ|F90l+i4S;l0Nd#s5Dg z|Hbsu=kL1iCH{TC{C5_vg#W(({Y(D+TmJi>`rmWqzkh}fe82p6erbN;-}2vo#lL^c zfB$p;o4o)35vTtX`~S`2{NkH8@$(;k|NH#^SNw~syy5E0qd%~JgZ`j5LwX)de|uY+ zEzP<4oWr=oGOn3%zeA2nK1ZT{cC@=zU9as@T(7n2#r|Gx_pmX+cf$G9i`Pp_3yVem zy99sd7UpK(%&H%A_~RWQ%4_xG4g8pYJwLZNuYN4RkA?X+uiv~?Ki=VwcMFiGejwz< zrMGXEX4MabyfnW!|Ms=|fsmKpzI!`AuYN43e!W#c5b~S(*|+Z&)enUH=I!gng<16j zA-`S1&Z-{>`Q02eKCgZt0396d9mc^d5|~)d zBq09Iezo54cX{j!Z>hdXoLF^#uW?x4+uxK4;8nL$Csp1&g%Z%e+U`+Pd$Jol0`soGj?qjq>P%hh`y8$(^k3)GB-1vMrW)hD_o_ ze6BVc7l)hv?nR@v!S!DYQoA`5aqZy9-)>kCWcypmld5mjtNvlN9`6QYdNOk|vQ`@| zuD)InT(vVM&Iq9N?nTAluO0f^7d``FtchnmAIupOtl1PWXA{BHYa5$~7Y&$6IOxiC zzw*9%$gp@^sri#9+dr;epwEp=HZSl$%U*7J8a;kh*8D^NqH*Zg44qNV87WJrUQAs zFh4s92%1sbQ1A_KKkW2J0B)`b)#h!WnCMM&*9zWGaK-_z{mOecKld7)z76JM9Yh20 zVc4~S#`=gRw+r*qL;RSVwLccDk9T&4ssdx2GviyBqkwCiJpaaI%q_i(b?r#mVNK{9 zKzY6R?v1qyub1Fffo-I+p5%h7H6WvDgPHh`H@dw1M5IFP80&)a7CQ>q`Jp#|X9PIGuyW9^K+Yv>4iIY>bJO$tx2>rwse2a#EM=z2Ii-c8Y4A)Zsu*N5YIJV;<={FT272*QdrToY zqiGC_Jbgvw&4Riu^g0p7*2a3fWEx{1XnHjpw4)W#a0tPMIQYi-z@ z}nNqYXtZ|UR(7)u>%B}f6mZ1wP((ab>#NLARB zzzN8+b~2WXZC#n-v~H@|&+3ijpWJqU9HGTqIT+msK|fBw6r6iq5V}hx)5uu@s=a#q z#P_@p9`3_oI}^IQaLg-B-$|vXdhfL4_uFxVd3sQ>hMTZg6Ug(-@p9weH(qHgW4s55 zVT?r1NaH&~HA5Jw&?`2wl)aGIO8UN=*h=<}lWNZzz_a`Otd2h2x8~JwJQz*v8W(v+ z&m36k9gD%r?pF(yD{6h@Xv8D3aAlZ|RDsx*mSmZeQ}hnI4|{`vSlM1r*R^t|L&~0R zNxnmX8gzrVlSyuI31kV#uSxn~oto0OctLC8u-OUIN^Y7nrnQ1g=e9#BW?T^- zjeFN?otw@GSi0SDFBo=OS;wuE$MLnP27>H!orz~|-{$&aKwX|MrLtzmvmh95eG-^f zqW0c+g!+j`EYhzx`!@nG1JgT-g_!XK+#W z;bqah6M9HM6RjYBZ-rqmh_Iy^UNbOzoY8a_@&!A9 z&ROIQog%}bgPjmqG-gH3B%2!6OU{X)`3JPv(>m zO_zobZ=0h^le`-?JN>`neGuVfHga zu3U^CMfs(D+8{rH)0WdIgD|2;LY)9jj5eBseNLa(={L;*;6)3aI8t3 z-QXUBSa?=ICk>5U|DOyyBiIOu0xML@$Owatpd4Q91m?3#zwG5df(t^X^6`>GIsE!$n2(!o_Pf+5d~@d{<{*izWvM;b!&hf?qqoYM;yTGN`2oK~?F zT_~+7?nG?iW($@-+>2(r4H%QRsEi^A9Kbz>SA}$X;$q5$(6+?GjG35$jiN}sl*i0z z46O6bcq98t|H+h1VMFaYBwZ zwVOd^e)ZBwG(%~pLeQ(4+K4@9Ij788M&m2C8p_+mDvh{LJ6M)Una{gK!;>GIp zqhLr934c`K6AK2cVjLN+B703{i=MN?kOWhFn^zN;Q18Zx1A!h|@qY$zxe11SI6InA z(7>PqCO(uyHC}mA)J$=F)+cSV^o?n6JU!8mQ!19E(<6Jo@C2lc!ogf~yrGH+RhT0^Ig?JuYq zZJ&wyw9u$X?5I8P1b=F1m>e`|469A69^Da946op#-yB(D+ei&2#>YHeNgo;MdNZnV#X?O~>L}=gngOP3yTn0es&>dl42Fc3 ziNKGK#m}x`Q>O7!H0J0D_qS-kZ|K3#=H4LOcP>k6c2jjHsX}7C? zR`Z6$C`#w%5I@k!)z-Yxi8M(4b#8v;Dw}@YuN+qEmV&cMTgj+}D$o~h)j6#jeerbt zlg-*;m6U^HP*}Y#H9HFy>B(Ij`Wviw%Sxp>Evr^_cTLw}HDQ&KRim=Ev!j#|Sb;*7`Q(GGL5)m>*e}PUOmdW$tWxnmIA6;Cbg$Nr(F|pcRRC3z7!GigDIW z{w}^>lMP=tN1Y&|9X0EgPT3bN7G~vZk@6IfCHh*Duh&KI z&73Ou2D28`7qq>wq#(Ydtatpi2pw5ikbW#e(+h9siT&Uwlhn zsvg0gmwHP)P{~`Gqc7>n5;XT_L4Dvr7vHL{MeMOm-4gX=Nm^TajXjp`FX6~^C1`o! z&FfEO7Q${P>H!JhNi=u^Hx1!vX+_yBPZJQ1%8=1k}w9% zQFuj2@TJ-5q8lV@)ky!-BThs);(@ga`UDT!V94&Gaax(Wl_vmJsGzG(ze&MsuvN)j z(IKe-dAF7Pgi9()`@gfaMdA&ORTQivn54Pa9Bjv`J>$*mm{lBBoMU*yMuoa6qBqiP ziTQ2nssUz)M7^rc+hxrw|(Q+>PK_8r@h_Y+5FehRqx$> ztG_$jK0feIZpwkbapX4-%D?-YE&uwaQub>H{_TCG;ctb0=vN|td&j@>%L9L-Bd0ulPG#es!b%;QMPgyX~9m!iSoFdQhInen7tO@09(wmG$uSZ2j|MWBoJKy*-1u z2-kOh19<&bE%HC#l)v~Ji+*`yy(e%M7q0#8)n<32eX{hqz0v)0byK-HZD79_{j+=M z@6M6`6*}&p?EXIRE1|zx^Zh-4Zhq_c*6YT4AIl$CwxImIf2PKBzqWR;F$?3z`Un2k zs*i1cK07)40&_U`^i2DFE9C(_T7?VvI^pnhZeQTe@Jo%64cZrdA28>c6| zo7v9R?E8)NsJ_wdo%N0%&Q6wQn`Qg@G2jGm`)X&OEZG3-=zr(E~Odp+b`Uh+u@bhzPu?5JpK78MA4_fob zYgfPsT`e3xG+^v!C+&yRlY8thw0rdV0Mf5E@33C==)qDfZge%jJ8aK)e?L3g{c_c>e`$Z%+Je8`vxTkOD}=wc z1Mt^>CwzSvd^Y>-O{?XX*TUVM4($7T#P7q#d%t{Ce}6PL0K7czHBa9C?)y=tdQ&_0 zZ*M9a_qgc~DtiaDcYc4Ta(%!11@Y%yWeeu>_73`4e}A&$!#=8q|R+?RWo6?e=PZaqqNVzk{is z4gD7Mw{mp4Ami|_VH($O&+e*~=6wz6%BX&@)rWeYn;+_f(|MRrf2&-twvUedts}qt zwsLyE^|{tRhIOsXo^Bw1t)KbburhzL)!Ewk+C4bgox^orIN1XHfIWOrzB%2v1AM4= z{oSuPpW`#==hwkZM>=2i-}q})-aqfZaDOWI{%^N8SDoE*s}Hz*kL~W@`Ov+3b61)5w|f5O z0Tf*?A9WAl9NFIRquENUv-NPb&_a57Pz&zv&gO4t4?b{OxO;GWcCglkBdP-J_mS=% zu5X|Ckn9N3+M~fT{}41+BxdhZ{hHm_kR!9U`K!T7s55u|Bb`i(bn;{zjN=;SAD|Y z^3I@DvF3IE=oZR%+i<>APxiaDle5{`o2@nMU*jHV)p~8M**M1Wo}8WR0&S|%y1zd; zx;r~Q>z*#uzYyH@#lccz3(nGa4+pG3m-rhW34Da{4{_DH7$lsgs-`3W?-t6!C?`msr zZ}#8$_tomUe-M-_es$}hzUfy7w+%ekcLCL_E+6x7u(n0#+DUiG-#%R%AMCyIXNVp& zPmy0Cej@ZA?)=di?PLE0)0r-OZX?g)Z=S+9vD}USP+jZRdUIVot3v;#gLI>{d%8A% zuuF8Y+FPIX;T$-+-@au$S{wNDv)$8^uhG%M`rPSkriL{rm1& zqx}#Z?~da0_FLx|_RA4+Z-X*HD38jTUs`AbenwYN&aZ4g)aJXmKOfG3AKU@{)87ZY zJb=l)8yuaUY%$KkdD5=kR6F;Lz4F#hwR_*VE5C15f4gst%GAbk0dpVjMxAz}9$i(BaV{gAud@d@f98*Yk2|LI4m-nc?ZfWxux<;$|J+}Cd+q*R>t88te*L(enH@=JA zYjwr93QtwqD^^D&$tgLgfQZQQZJ7=$NU-f%2YpR?wbL1G$ zGfwDgr!OU{RJyO@IxRxf1GxUAO2$MEMEHNTUKac~S3Bve6XKI(D>tVt>=m%^Im&ZH z0|1$;mWWK@dZk?_Tf`%>En2oW648F)K9Xa!b63LInbLs$?(mH~hH*uTn{g}++^Tom z4v<$_$}(QA#bvDo_3|pNh!WPz4?xVyHC`!Vm?;l?dBFXy_=}49`OzvA{+amBZ+hrq z1C`|aDL;ySt#I6n-^bF-7L!gcq)skMQBHo>J2iQL#Fvho1S|1f3@Qc3y&hUhV#B)9 zQ?hZVH`pU1m+$*H>3E(;#v`#f#S^ zfQ4jI_??~voM$utiHB&CeAJqY>)m_Kr&u^#4?SvW4*DDQ%N@848QQCpxD%9dyqduA zFrUX<+{MrNbQ0D7(l^t=ijbGyw4=d+>_eD0=~H~^cVmTi2xK+MK3e?iWHFgC7uIlH zAa1QysRrhmc&cUxiI@gz$D5WJ|4W(-_-!4m0TToM**Tf2k!=QYP)!SYvwq=Z@)>>a z?}QHg?|pT;g4lYfkEX!kfYXEA5lK*OvX;brsBY?YCiY`s^bwFKLF>m6pC9VmpRrVv zxeW7OOt0G`;Aqrp7~iVXi*nlS!(*x< zUe0&6n2ANGZsKjr{K;+ZYkWMjzP!c#ygp9v;=$GsPl=u)Ir7?FDoe1LfcsBF^+dL+ zSXJtP1d`awT5Yp4>_l;UG-R=?)pfh9)*fR0>1Dk_z9*GB+GE6TYk;%4u@Fz88Xz9! zI3D)B3iwS{T8_mGNd??>*!ZXe5N{C10LM;j^(?}iR`EL3eZb#G9rp4y=eT$l9JjIL zk!=Wrq;F#J2YjT;Kk$(xedD9-1ibd%;UHqLewHHM}+n=)dR~Ee-v*o;t%|Jq8i|d4r`T433zOpY>NnZtVqiXOW*2%TeaxYxG5Uikp(%RQ$mMChq=^@;LZ2 z4+)Mh-V&^Ux142dV*{^IW3&f+9bfo(RO|n0UT>s$;u?7#t@%12FEZZ6aiGC^7GKW* z&sDg8+$S^uTqXu6uTx9w*?X`YjQDXtN|PkqP6~kK4e<>2K<@NU4muX}>szgT#`|}% zwivbJ85Ly~a{rch0=ph^J)k~X@jcTvuG8Btr!}6B&#`Jn&@cHd(sXXOtyX#IV|%b0 z9-`IM-fCbo46;DJ_0rGIw8!z;d%O#SA(6QbM&I1P=>gwoI*Cgvc`UY5g-VrSlaodZ zj?0X-YNZkAIwDVTeUtSnBW4WL8mK1sJ7rNaqRI*6Ezx`z?bHMK)hAVDwzm%n11uXA zuzkFqw~R%Z$~E)tB-efT-tYayCGiIBDz0mP&OE9e}m^Sf|q>}Q61|PY=CeesYCS)rZz!bnrx6qss!x$8u#C2v2XD+3w2o2h=u^`?Gjn80e0^mZ3A{Eha2lh zZR9U+5yu01&9Z62dZe~9!q{c!-C^3+F*9-Wtr#FgrcKEgvf?Z#Jb>ps}Avw3C*LFX$0+o03O zQv7JMAJ?JrC)FQ>(R7=_*+R2ef~e7Dpsz@tP(Rau_=RfFm*3+v#NmrS4AnB7k@+9T zH~GW(1UMe&{Uy&mx*F@_6znN-mh4;44-IyP>*atW9}9H}^C!inTMmJL!~H?usHg{2 z!m{P!P!~(O`kt3d3&*|vLGRB9^6h-HA^O?Q`#Q){*k3BZDX-io%K3zO)cr(QYC7=K z(Gh;5<*iDuaVO8WI`8c041{+POW*S%T@e?DtCd7|z=XjLhsAOcAx-u5x~-2(y0<{L zILZ*T%8X3Ek zKuPJzDez2>P-f_Ld85bg<3O48bhW8oYry&b*L`U0x_Yj!bYbHIZjtqlzfe03YVoP} z)6+oBFz%E+<3bKV1#$!oEDFmP-@1pIj((s1Dn2E&h>b8l_35!RV*BjSQ(&Cy^OasI zqa~Lqz16_0BR7C+L{EJQ*Ikh5lyq^b+6e8_D^BH+sYA5FNnyMRJeU3D-x1B<{X0`e zgp6_=ys@c9%hEX5oxgjbDo51UXW%dFs3S+(2ZJB>>pI9;eBIBOf76R4pMQ@&TTi!z`clxC6?bVy5aE=DFn%qxeq|iEA*d`xnPjGQfQr-w5}}L$R?|=8wz?9bUnxg zkLyr&%!t+-r^JAq-08}5fzB}y)Wtg&$zNqf9Sb4 zRtSXKeaV8^QnFAMOwYc9Jpztq09q-=2lW4L@i{kOH3}XNicpUP{d`CJ%zW{@^Q0|< z8ki$unto|+>+6FKLUU0APJs1-b5i@uo-dw!5yqD)-|-gX0p@f~9iL;Pa^qvX&!5wg zW#;wmL_Y(wPwrbf5zNGH7m{9DW&KDP;8Nt(m-^PyPtWAIDo;9GrK}UCI{i|tlQq|a+@2}R?bv+O zphoo7M6Pa%Hj=DR3>2+r502unu>l!wDht$E5V>t-iuwKc(bi9c$`z;A$SE5uKPYKk>-bZ+vn1#TS=9zqiOYk8HsXuf$$zx0cl5 z&xq}Y*;>wlO*bcu!Im01J>xjZD~{7|WsD<~$GA@z&Kzj#y|Ybi7{9)s?|alVvKu2r*BNu7dhaMMECN=(k5qV!KQ9Jxao-R z08fC-a-9dym%i}PwC)kmHU`r>Ij@8QuRSG)fyZO7A=3}#YPO$YVhO>*LyW)BZi zHYQ#y&d@##Vrgeva^lFaj+9{>hXrG6+QhxiAJ}(5KG(3hlr#$K=>xb?4B^%@B0oXB^-_KUs zXVXnP{o=<%WgOEKq~(bG68-ZT@De3k2Q-;e;3YZSpdMOMV$FW=5tuIz<@7oCJfGyJ z9cDlM1ny*TVgnI$t#d~^(rPn_fkA|q$ZfF@ffe$x@0tyj^BR#K2RaF)7uZaXFDs|pg&8_PGKw^ z$g-Nj^&$yyj#M~24+?Wu0MCqqdQ{@`@p$93B7K1z)+)%qiuV0G9;8ltJnkOF&->ZZ z+MdZtFwoCkK1}{DoyN15KgiChBAvn+k3*K(EUiZ^Q6@id-OZ6s)(qrt|BdUs{}Zl@ zSeFlAmzI^ny7iFn9#Y2r`se!NCKdd5uyHTH)FVPW?8r+m@SQsR9M6RKb1mKEnP|_? z(%qVg^`vE7pGg!HY0?td>sCE`*#kMv{}@+S*q`(u@KbmBM_h3Gjz4=p_st#>sqba$qx0iFLGs7^fxJ~tL~Uasp7MCc$)BGX^2*`|E;FU@C9fM* zxjyroLZFC%vm6<8SJwHm0%F?ZMtXSjX+54u12&K1$)_|V^P!8mWi&pw`b+O!43Hza zSb#pBmRp0KSWM$lT5>#K+Y?EG=c`=<^{=qAMO_kv`KF#c&nG@pi&#m4e{x-;vSN4USs_)Bho=B>$t z=m-C61}f+c7(*AoH85V0^Y{uI&NKUMDUGuEF@EQ9!AQk;LzKh#$(LVOy!?!x%znmC zsw*s9fwAY=S^5~xFZG)sz48pidvrwJ{q6<*>YzFU#To-_5!b? zhW6GG5s`iU+d0&b_0S$CFnf4NBPa5LIWq@7Nka$by@z&?^X!>ShMxF}n@d4J(>d@o z&}}`CV_#M>+i%2JRy`Z;|HclM1akV$Uix#!$S`}&JF+^5SgKR;aq-_l+h<~1s&d@T z`{(aGAGGBVAJSjedy%4s7S~5gWM$(N_G z-A|+tk3Z9llty*}y?8ck)GzqC#?M#$d`a>1_ylqS{B4{Dv6umlPvQ5-0DBW^i<3O7 zZJzf^S=#v0lTV6cR`WcSo;;6jo~J^VUwJAX<~0a$>Yy*hpVVR_>oO2FsgYgTu^sei z8MmkXRL3|U1}hLJi6#SFr1!ZT57!&8|96>4iSnKQ3;ciNQEvBP9~81%I!5z~Go<|i zJ;gl!ullh|&4$claf5yl^(B8684BV{PiJK2@O;mWCp%7~a6P|4Kf~N6A4Iuz_>DM5 zOxU7O(r$0&m#sSL{8qm0Y(#Y>ugA`*Q7>}DoL(YdF-!`1sF5S+~U%4?f2o}VlpOX5A_7#`+gUx?-c@0+Kvo)BS)yQ40qB@edL#K8$Mc&Ctw3_GeJn4v_f7uyDF~`-X zu$E3l6X1Fn@AAk;%>8R6-~m$(Yv+-uZ2)#`iu~1I-eA1dx88q`)-@d8pYk|RbPUO` z(OOX2uAHz$P6O9)(Ecf>$d*p>u5vybt%g0+-W@z?d01yiI5+e zLeAqKrj>_Oue!WrB4fVz2za^l<^e*UB)>{tP#UF z$y6Y+>^hA;m5cFVS1fPqzSrS}m5la?+jY2pD9+j86-NL*C+NOY!Mp^R(^GBfrxZ{P=|q_Ke4y zSe)~G(81VE8oe1x0vWkdkNJ6@%)|uvV9ar-NMMchI?|$H<`_%)RJq4Sf7!>yVCBXq z7uHD?I$U?hd@8^l7UtcpWfy%vg;Q=K^ z)+^3Ck}s8ecZ_!#>jYX4{jV?%(bsMCPr&D#wYm?h@z#+b-X}-5r1yHpGe?5V!`K>(51Wtd6W~& zlbc|niXh*rhu1Cfc$0EIm;cCz-+$-B4}a#v$H>3=ebe#6a;%5^@bJD{K2FO03V2@+ z$4S!HICUxu02h)elZA4z;P)@_{s|u!KCgu1CK-O#DDIzS-%F-T8F2E*mPSP7^&~Cw zpi@lII)MIJp0<6qSSQo7+#fE!@Y4kGQ-=0q&Oly98!};K>~KB_+cqc?0j|41eqrpb zB=Q-`(Q!+ZH+g6;w!rVezIAd5fBC-khG4&ZT^?3&9=#cN72|bdaVJ}62j*rvUH}7= z6mg6W&x0aik`+2ryyst``#TN2VY3)0^9nvwroce*#7F&KhcV!SPkGUE<~(0V?5m_q zvy|s2Y8JUQvv+xHFCNLVClpIffZ-QV#1vNty1 ziy_TYU>Z2j_r5a^{jRx zq^*JeQ>Lawy5_2AuN6bb>t~$D5iupN_zjgJ^kc964AY*^io`s?j~t(GYVlf%))9DB zyFq_VyVrQWzcDv;Z;Af%Yxo#@wgU!C3%$MQ5{26dz(Zj`*M6faa^{6-FO@J|qh8HP zx1K8TzW63lsxS{cKUwhnYn(LA$NU z$?}TC?JIC@-8dZAtTzB@=4!m8#s%~$JvJR=EgL66JYa$(z;h+U)r+kWdS_>GBce6s zbv1r(cuCw=nR!W<|1872NDne);;2?X_ z-?z(Y?@nem>D4lcHvq*3){aD$*X2QmoY!n8r8h{Nw&SZ5_KDTSyMU$h{LfwBeIzeG zRyrJDe#TL{DRbtnH`3gQF@OJ*ms0{bQ*w=)ooqq&%h@=M33BrWFwGiH3zo9zZ53Bu zI^r@{0(*(_1J43>msyHET!OwD8k`^GHA#YH=R(Ss{CTItG~o3RRxLeec~e%_vh#cN<7pHB8s8o;`8K9PuRVfZ|5Uc)WzSi~$}V2MIi8^;p071)Psu}n?Q9k0TKS*N_EU+y6-}ZR^Np_Lfk2H6u3y~1xet)UzNSRd?L>mM!T zbzobtYwwLm;rV^gn>8`TE}zVF4nOo~WAMCKHd7Mj1D`E%9rmEtaKEvr*NqqTR#N$z z6Ttdf3F;A^$L}wX=%+Ho&5axaf0hJqN`d%GlUXr&m`NZg1==C;QCfC7aRGbt{Jk~s z(B3t$r6}lQ9TDd7GvJZhfT;Q1Zq|-caQ;Q&eMn~giJ@ebKM}+m!+63okGN@do@DQd zYwp+f3g-ZNpRSTF4>CyBEy@e$BY=~;yfonu6Tl}L$O70W8cmtHf_@4#aQf}e;RT`2`W1ie}+ zZN(k#hWqE7XVy{!)6lV83Q$bf)k6vT}J{%6#mT=RTX-(**za>O06u$CpYYIB`8-4_C4njfgVIMy=ik z+`k~b>ow6GUK_Ohu6JJXJdvU0ghNFLR(=zFK5n z?A4FD>5|M6vNou1yz2V&_ze7QZ4`M0GDwu6w@RA*jbZ)f5%9t+Jn(!<-;Hzk%TBBe z%sW~E9@DK=p6pVk&;5;y0Pq#yq(=#?;n;+o{db~goQfzIZ?QnIm}H4(XLnI*%&+5o zH|BckldLKyG6Rl30nnoVY(R&~XSM3;mGUn?(DK?x`G@D06lGkk9u3F?;KQD)^Z3}X z&3i;co*_0yf%skRk$%(fIr~82@d(-r-j~P|58+_hABy`@c^5!lVvMWYM`GkF1MU~Z zdbV_9n>VGayQ-Bpfk^fOv>@h&f&QF(t2YM}K!+oI<5f4KduJXe0~|@3SOo+gY!Syw zy*Pa8gH@~diR{Lp-(~!~qnDZ$VE6i%m*$}y%Yl;xnv=ZNd4YDC;{r`SahwYLL~r7= zIull%zjd6zJ{1T5qy~uXOMyezPyl#C~kq<$<Re&Is;(}L6fhqrz*OYmq>ic!0qED$8tcp6uP1T}J7uqz0nbMv(kIWK#yrn?)!DJh zfY;lA{E2UGm=6|`p&F1)r*A8;Nq5y`!8J*qIJDE3D6en8qqtr-l?pM}jU?~wcRlzTskQx(q}%y+6dURU<~ zsLq7|V6m$@9@4i+-7@L3Ikf8B4kpcEg!g@G;?LL=$lc@p5fZTPV`4Tu9|ZFpd{@T2 zj-;w(QAI4?WaziR{B56YZAzPLrgl)?Rspi#WBO)e9tPq+rB0@t$Hd7sme+Wk%Fi$H z{D>{kzaZ{d7mt;h7It=mvcr#f$tP?x=J+rFXLQ;W&5hU3X#sJP+)$V0dX?mb>SyaL zDSUN};k6=GH^RC}j;0!p*F!Nos6~r;wxneBndc#a9`VF{p)TV!&qLZTv3@HdGdHek z>qCM0PSVpWUa${1zR6S7_tu^o)T7%EN(^}3I4$9M?elskZ9#v(arx1K zhd=e4J{=sfKJG#mSLQFV{(iuC9lN+#Gen!Z68I%KHN{EYRBO!JKwfeJxhW0I|HI#x zkE>Yp)vd6u6IdUW*9F!kE6-?mcbK=Co|=-y=kbOz;{x;s{l8cz)9T-GE}%r*p3DH3 zboJ~fp*i~M>RHFak>q2D}?|Rnvr}Ab&JRLEXpecQF%H zo>y_at9u!r|7dhPh z{undygzE(Kwu0*`HkVuA4gJYuhiy`tQ=t~+X6u|KwG20Ta-r(g+Jv#x5)1XQe%h+N z)=f?`H7A>;cxus3jfvPu{eay4&i^qX1nbtswWbG{&c^G)ErbI`AU;-s=kYWdL?l;dOd9 z;2Y2UjeLOqI?(&ku-;_O>D#YNz0(g~QWzZPW6muj$L4%c&*A2loZr-!y_%1c3GH~p ztko}1{8_0NYs2%A)bD(x^Q-RUtKNp5*(*OlIYz^@lLy7+_6qc}#MG+Z2;x_s>!izb z1>B=%o34J7 zm+JPW_Sv>@ZcFu}0`o~*bu4U!8Z>m;(pgD)nX|*+* z>x=JNM%Vx3%5DMJvmy3#IB|Z5^_i~L)t7QVnsUd!8)~oGu96!*-w}?}RiWDY4m>}- zqCDkWjgZh@I%?0`Zk~CwEm?AYFdA47T&YT3h@QnfFqVUb+$IHkQH&c=QqV*~vg{iu%g@wRksnfeiLL9aR(-v&E% z|H?;EE}-}52Jxuz3mO>r<1$40q2p7v22-zgDq9Z_O=!8HsO6E zUhyHR$BvtL0w}kf1JB=xDVx=x%V1CKDzH2-EHEE@-z)2^!)askiD`BHX|csR>0Pk> zOzy4v?rq7@bRp^3EQr2b(ze*^8=3qjHjvbAo!8@##SbO69QnD=W%J`*j@_H$=qYD45TI^bD5 zTsO@L=VKg;cdTz~Y%{@eV1B3p^B96oE6MP*{tyeqZ7KFS==?pY;amCvhCy_6BhaPx zGcAlzQ0X;(UuZ@gUhudn3pqYnoRUu$<5qbe^qpYvzE@c11&lFOvS17L6ZP&cKCaa^ z(F`lZIGF*4C#?g(5#BknVZUJCrJ7zapDZ?JHuLpjqc(L2!1I>0@0!KJMto?RRfdnG zDax6hbbinAsrxIOK5Ecw*fGVRmkz&?kpVnr%l$^yiSu@Yfv!?7Mxo@rH;wH!%_;Al=6Y2u)(H!d(=&N(TL z5NJMs&T+7VYt`G7%)@Zjw=sXH0p6QwZWx)OFw%HEI_VoL5Aj1=igkQW_;q@gC?z{Nj*dwWcp2Ksq{4XjBI)^>??qd& zKh;*xylc&kGwk0r%gCc?e)HF?wdGFpS@hW|1GLk3SKuDS%nWge+H zkL8tCm5w(`#xem!oo+P$Sx*6adliSIJPK#nugCBsh|W&G(Y9g4d9@LDaU}IE-nXZ= zWbzs2O)`pA+(-ZOk;e%aMv3!BA>m5uvY75gFl4meD+L;hE>v<=v4u*=$uHx83Qq3z1(%fCtUJ6?YrONQ9_S55=Z zkE0ah)bcs7wVt*gMm+xy-Uatv!*T&Dp=k^iK-?Vw##UZ5+?BlZW$BCBOyAf6Hkt`;lKOT{)#uc3( zn4e($yk<4QnvOhtSi7k+9BY}p!#FMaVM2rI2KKKS#ISENKx$OOIAqe6f>u2D`7B7e z-Y+m8#To2!wp)p#y;gd=JozZJbG5sQLtYQDOh#*s*Ud|n&f{Uy1pD=X9swpCVqFM; z3P#q+sIMKX-FF?c!Nh*O`&V_$S-l6mDZ<#s*uUlYuZ}C?sQx`(U`(}>ynFdIo22=U z7Z`O{&kMN!D1PjsSgRwa#}{x<7`d?n~7SCBtTtH!&Y^SRZoLbv|9p#HZ0Q$Qf- zzg6A1MZT?qely67!MHcLJ|^}Tnd0?M;c9WwZg4$&|IqHjPE6ik`86Zhr9I?**9WNDYt9(`u;-3%fqWru1)P{Q1LU!&pLBM6+EFbyMXsKQUEKH+ z-kyq&c->>mVjLbLN+ z?ecpue}c_qm|M)tcAm96G-luY?mY0vXy=YyUB7c9mc4JC_brZNi+ORTN3Ncjl&O^p zA{;xl_C1()d>*3#+}`CC*H69<$A{!9h}{1=Jj*Uih6}jYK?B}7L%d7Nb5Lveyn7yJ znO0}e&u@q~KwtLI{!nZR=R5VJdH>YjJm9ckXN)j?;nvkv;CXrkqZ?oHZH8l57mTOO zQ@tv|Xv>r=+1ySyelH1;Cr~}XK0PvyUXCm;UnkEz>SGuC`>q*{9(C-rfbUcx-nqa( z%^2*Gv}2;2D6ZTx&q@}qVzYIf99zw0Hc44)nCv2_clfo-V{{0Ut(eTDHP-J=ZsLVq z8Ccr_4pNc#x8wPsxfT0VY`=K6B_w~WTY9828BSxYtL|fcwUCN?`s{xf zy!u60V;(11YjPa9(o-Jjo$tFo=zU|Df<6K)J;MGvl(8UAT{>k3i?>gHD7GfgA91iw z7376c(*?bdx~{HZ{$=jcfa!I71Wh#5uzq-&;c+gncejY^D^L4OT6#oY26Chhi!G5J z__wGJ53(7FsPuWL6nJT*+tCEFKe0MQzYx z96`3aJQDd?KPayg-uDmmr_(-p*G#-(-FX)mXXm;9wNDl>u0ud|z)DUN4h|f72dU}*`mAYw{ zjosAO4D4@;_=EBO7~*Elupi+P{cjJD3D?CqK>3V2e8)SbVFL32*C8mg#?N_J z*EtXh0pt?%#D-~y_XIsWi#Hxu+(>7ZdHM$P2c#1FPSlZMC8zeQztnyZP+a6s^qpK% z_0GaDxyW#RMiUDAV66q@+NvLH3;S&*jc}iL@m>k!1MB5wu@@g?76up(A0S_xr1}Zt z{1OHHu!;3Yt2yY8e@9$77gFxGgZb)HtzvuZ+XeQ)4Y1w;`~M~*S39vTJ_2^NCT*SY z{s!;vCCB+DypKhlzTyZ9y&TGbq!Y}ppO;C5eKGY)58mh<_rrQa3Fbp**pDMqlFbU( zV_c?6%kZUnxQ^AAoUE%P7=#W>>=d5mf&C81jH16^TDMO5(~nnRpB9zR^Mzf8u#cw) z(6iT2Q+kAs(>c{OcB(;->Nd;El=mknrr4vd&+dXgbM+qL1~D$V-mfQ*I|GiswT+1J zxP%B+6>*jXb1$QRKQCn&_y~NT21bB5%Bon1bpkwpNAy`9rz2bPDDdV1*Teb&ctp&O zR=T4GDFZuo5TmGJ`WfeEjH@=-U!vdn_g?)KFyASqdWri1=1;`=dyfk^-|NoT#;FpY zDL+5`dA{|1zH4BOHeL4tQ=M3vQ)2`3k$w_lQUANo^w^dfdlnKO_BG&Ko_qVmxfwf` zDaX^QAAh7~Lu8QWXTI$k=N+Ew9_QE66eMEE2Lk)`MvXD9>z4EVpvx12S;V>`S5-3p zJixymDd_uakoHq^$8K@@=`zad@!^$6c5%&D9k^^@+;#@`4D8$2?-<4Pm%b{kQUe%DF+tl;Hhaby!S}8yL%HvvkJp276tRG^&{Q>j(W|#~;cgVbOG2b%f{gE~K z5Yg#?4P9G!!<>4x6VvxIgoJ zOw6kr*@rHU8emK-WPK3rzW!YYGY5T_ab|b3f3%4|c!|Fs~oxCl-IyO~nJmzZhei*@sa(zc9{Y=>Yw3UA}$x zJg*jsVU<{i!~0dJ=DGlKK#jj>WlCyq_0Dg&Q@}o~+*7{BJg3&yby8=@SAj?J zJO=y=c;`%v6XKo^VxGvTRqoh7?~3w|an|%yG2kWZE?*SuS++d?qTk#JwKCncFFMRO zrI=@FkqzQ+Y$hsqe(|E~S1($vJ=9-yDszuaJnRo;kzhktjQd$g-zc7a?B@ZQWKzly zyBTD{-e7B|@Bmr~t16Cl-NszeKsU0k`HksivJJPJlV@`$JKrHMVOHMREw8g%s+VnB zTckA=uQB=Ds%5rm-M)?e^lhmE6)bIRz1KA*65)9rmko1p>=q?L-(=ozfH`di=*+r@0eFwR50K2S6!hQVg5*d1>P0u2FXs;>6ca@ z_5A7eS&#iDVqP?_YZ(?31HkFW5XUX(ss%O-YnQQ(LGsvj&Fi?LZJagK;eNWHf1BtQ z%Qk>lFdoNw`#vBW=Y)QR%&5gD@8~_Esg*HjzS5^vHgp#UeHLaP?c$k-OAf{>&PUmq z_r(e-f6&^9pHLoJqZp$6G{jWMD{iZ&rvc(7pHTpyZ^LY1b1ZzwtUo(aIIq3v{Q-7j)_9%Pe=@We@Z0tG3H0y|yQA zujlpkP#WWNZ0LX&@fxECsEXWlJwaatcwUYD%{u=Lpq+Nv<9LpUqb|RLywi6X;Khya z^ROmk-IH_2UDfO;w%l)JX6Miro378q>D1M8NG0OBPg|5}AN#BT&yZNmVz>@qRlos~ zz6|+wh)nVrgTlaU7WH+nujIUomx4WamnYp9^3SI~!AyC5F4h&e?A=SkBEY`dhY0&j z+{VPWf${P9JguL7S|)lR=P!9{q6Z85!!#I7`8;8o4dK0w#YeQ3bECN}^>vvaTR+pk z^3Z?l@0ku(40$ZC(_6OUcO9j*4ZA#}F*&FHhaM8%pAziu>C*arydLnN6Zh|8TujUq z-j5yEA8{1?W)!HLH?G)Je^2!N;ebz z>J_7OJJj>?xS>&_54__s-Cgxh`PkBZs=tLtd`|Rxf4Hkk-wpH5@0D5OSo$EqOE=gr zN32gA--BKoh|5=8B{KpdVcchXR9YCH3Kpl3+aLf2TNv$nqhtTsm1pR&P{6!Q*g=-K z-Bgwd*ogz7Wcnk%@-Y06#D;d#@tTCdo?(Sf1FS#7czTX;l}UZ=;k?2A`XuI+@59rY zB|KlaNUBhS`FIG0P1lN^g@v20Ej=3+p1WS^d0cS2p?RnE8S{L(o{cfj+iG*}U)0j$ zg_zl9jBz5~=SNh&<1F?w&VqTg6!9+h8{g>#D>l!#r<$UF`XipEFdLxn#f(@MoN0*jV|R9Z+1stdqDVIf{fu>M*uRI@4QHG6uqb(cR85wB4W4&w4MBhF8P*!; z2h63pxSLwPc*QMUbAQ9M&9g6mo{IJs^@9;>E5??hxU{sP+`mY#dVv1(rX|y=7_{4iezy|D%B3cpfVbUwUTIu+ zc48v%xcEo9?ddPS<8EAxUCeI=zJc}Ru%26*gZ+@DF~=Rz4W8o-{PaB2m@ntv;kUC42Q)h9{ou&=Ie#AbD_Sz|bES^){WYL()VOlL;uZ~i z6F?7O9YvQX3!F{Z)19ghvt!|gJl+t~ouv19yy5zcH@tQ61`8y~ZDx9onW zD)I=>qldxj+1HE?f7WI8x_T#?>K`%AiBY1m#c#8*dGdLb~_yIr;l4Wa0SfqRqp6 zebBCeBX909$9TnxGza-QJWi<6Zfx`e9xHZSmR%eY^MJ^X`SMhBV}Lb6>9)zzU;*|> zFbxx1nBU3f)38Hkda}1EYH%M`IMvJ^;!!0XqwJeN05>4RAsA zg$qFcVQFrurSZ|AWofo?YshlxqzT*~`v_lZ;#zp$+~EG#6PLrlS2#|H>t2R^a=1QI zCeOY`J&eyN0j$f6#vg_xpx?4@bn)m9<10Rur9akXVQ{-ondB*5p0sMDjcYhvp1Qa& zcs&7#l%T+x0q)Xbkk2GD)NvWMNzc%-GES2h9}K?uV3C!Z_HZFO*=#>(z+gEaBocW2 zU`>zMKX2BT22Z?vGB6Jge6N5MF`!<+*ACl3;TXDC z9^JGuv?t#H{f+nEt+Vn-6COWweTQKl1=zJKIeXoD8ga?}S4uVS;zjs=6|vIc`7SoS zB41qh`wzpcN}m5nXj0eHBD$32Ej`d+NDp(WgPo5m-tXIr%LjaAOs%rl9yZ2wSib5P zHtD4)Wh3ZjbqzYbyz2T}!+-9ZIlg2B{kggD=^n-g zkx!Ijyry}K-NVoTdl6#21LjGhKGeqLhIDlWR{JwQ+D3kvZIyB^y3hUv?KCfq@*IB9 zisv8DF8^R%G&MFvS8294_I45sa%-&`u?aZ5wCq#Yw{U!T#TVAoUed+eS!p<-)aCv7 zaX`QF=3*Ur7~*0nI5}yaV0}!m@;(fYVE*(2`&fYhFL+)j|BU`J>fz^Ce=E1meZT|B zq1E&7F`RnXhk@fUI!C|FycV#3dAeRrnY64b(9{|56L~Z_Qtj4D}&0l#nY|zc~4fGK96$U#Ubogr)kY&y7Uz?`I z40-VAjJQkYbr{{DSr={*qaP@&JO0J-$G~F1d&?7Y zNsnVA7*2J!EP>}`G4I#0Yhp@`>vqD?IbO!g+jp!@d_&>N&m%vLL+78x%>NhbDA`W+h=Za?Dl6sPNkJv3-)k)CkM=d zbNQIl@*O>ej(gIKoSl7o0$v%OH|^zwa)jiU9*B)Q%M7wob-i;&X ze@GTzr}ni@5<&h7x&r1$I3MVF-sLl@5-XOsxIJrd9j5~~nNIm0VUw(56%JpSSVVi04stByKs2EB#TFY3-p}l*@)iPdjKsk zTclW?HvRWcBViYVRyX6FiTD~vz-Jd;kGpV+k64fm%mau4kIbrRfOS2WSdwY?ymERS zA>S5!>?1k7DQT4(ef$mhT~l3{d;Oi?*P|ytCu8(CjfpgoxW2S1qm?gXLRL~&NA?-d zhxm%3iY(&GtgULbZ)4wyBPkHKQ4&X3=ci{xwk{69d1DfxA1m(aS4o5GYtb{;N1%rs zqi0<FsEI)R&6h9!7tdcK&;sUfpE| zJgCj+%`-;j&i>W{Lt(cc)2H%U3^vZjh)j#?!kdLqa zBT{ze`_B?iAFgu6`2VcEt3hA|dk%u2fpgG=jn`NwV4s9k?5 zal4-5d#!aaK1CcH+CwgFtaO{J|4W!tRcR2d?arF@P5+~ zndk6X@l9o1b$Mk?>!(dhIQ=f6)hyuQrcp zomI!QJ(^}*-P(s@{#a+2*E`{LKfkYkpN#%khk7?nt9s?R_-*rDhpGq__q!XxjORUt zp0rUPqG_>8D7yZ6jX(d&|Khv}tFAD{0D9G&$<>H9cXAE8O+OvtI`a2nYHk;2(6H|= zChDS}w$JO$?#QY5{pMNzBM%wWH1C%PIM%8r?c>9I?Y}umd0$FDPrxn|rHOq}sGxJd zjUbtJ(8;A$R-K={ChxNJqi!_>91@9k<~;kfVI36Upg~E1+n>z^xlU<+Yp#WB>Gt2v z(7HD5U|~k_bwCHPxv#tHi=>l#Z4-ZB|F0SBf5fk|n7lvx7tg3LHg_TS#g%#u_nqdO z{)qech@PEX+MAk7`?^YdsTr^M2xun$V!bIUCrx>8t9a#s(3Ek!0sF@YuUFb1n!b@5)VP^E-b`EbRcB*XY1hZ2#C1Pme$gkdL(qjg z?d_z#jB%j-SKmNs9z~e1I?G7z_AnopaNKAKSAhzoiz~w%ck$uxJa}~4!}>CXdstGIJMSU-rG7)O~`I zM?sGHU%C)KM;On6JsaFM?uh%Lhp+?j?}0=-e{7ckp5gVy(kGV}4e;+gc6RQEWX7Ct zPRx?ry7fCoTz}2S4v)`ZK7+{k{nPei_Pqb?dH)T**D4sOOEWINo)=#%Lsp`2bUzZa zs0qIw^;|wKO5CnKqkAuIw3Tmn`YD@Le0$K(xp}p3eRstDywR%Yo0sbLvVZTkG_mDL z#`{Z#-YwCbhhsL z`Mi@k=0h&O-zz({TpzV*H?|Bqk7 zuYdm6U&r#-eUsmIf5Vdozwn=8616w@`>*Few(pKGcgOge{8!<>{Hk_E8kRZC+GTgX zr5Aim7}l@9ro|~wLwK{j3 zirxMH{ds@95nMCc;ZOVYQgy?^umAF&-~V!lU&ZvefVEao82<5>zwU3x@Cs7+*Pq}2 z?brYK%m4H9i~si9hkyIIw*U73{rcyx;iNa}kW>wo;Ozx`j` z+kEfsa4X~TQCLa}pMP7suP^z+eSP|G-~ab-Q_td~9E|uN@#8=K#i6cjF@Ef5!jI*j z|JA{=?Ge-Ehkx|=;m>dW)d_3anRPNV=7;mo|LWi=n|6yc>el9ev-kGfZQRJ>;NSLB zbUeSkmx?7y@>dcmPKFX`i#HUhkd&Q_kB_EBwj_?pZVtO?**D{TvpxGr`wEK!3P9nb zKS)WAGn1SdiwzVCK%r2mDgXukod?|My>9i-8XW#R0WXt^i@Xryzw?Ncc~Mg47vz~8 zQs$SEGJnG|w4T4^mN`8+QQdhaMolIa7ZKh0W``8X?~TY8E&GlZ`J3Q=1Bkuy-b?bkH6G?>^eUFL^$gq}}E0JX+LXc5uF5MA>o?3-R~Eb3Ie)z+%CF z{g=r3p5_2Qv2IeVN709nO}WV|oF2;dRj31p#$OE%0+7%xi9G5riOguVv5}4@lg4y@ z6*3w`i^=H!?A}fj|F(7$c}a6jpwUA6IJ}BROyyv!B4`|!llM_f27i(UA*{-iG1Cyn zBm)!>#y6;gu(g$agc;LR&X-vvRFQ`K6w7)l_%K{V@qaV+ixxAc-DFHjm@g8>eAACI zYaT9`inGZuj)U|nSx(20I*r0H@M0+PnfkL>Bnwao22sS@&X|KK8WA++D$C~S-uCuY zHk;N{rUcioS>4x{^<;6mJzGw*$vnJ_wgD4pP5}0oIGjb}E!D%VMRXCd292VvG-K^# z75$aLhciKDpl>iwm~sb=!gT=Fal#5MPMmhE2+@u?DO>T_&l1m{)4>zMT8v#TSHVES z+9T>}@^&l+&|ta48XNAB&93A|Z-s>V9Qh*nEvlEKEl7%GjDhCUAU@ zC_b67GDaq8#F9+0LE;LSfS*K$SW^WmlFEg+Ta-(4Pcjkfj2WA#_6IZI9GH%rfdi?a z)TL4>0go9Ry47SS+^Ey|kkbNuu#E(Bn1{(bCXj`ESqMs`Y_U$*vYlK6 z*9+DW);=bfvPn2~2j5^LhI%v&(-a0q(Y#uN7#VKb09Cm_$@8$>J9V(;;#ez6>7 z$)cu9Yz9VwO(BYff_pE!nxu6N%jz_$68T1X24Xh=p*UK|mhJf@25`uv{b;#h(m4yb za0Xhy5`c6PgOuW|ai>z9$S&jwrB5KUGleGt1u0#^q`JPEu!RMe3%%}%dK47nHi7N_ zJ<-NRl(Mx(HV(_MOvrDsp^Su?k6@E{9DM-bFo=b~!6KUh`U9W`V$A_4z+wUd?rm67 zI6gMl_Fa03T3~uBdIcF98_^f|)#eap>6q&dQ0=IYPz-PMVHBk}PsDFc7>6;=N{KDkAD4>$x#ohYSH9Wa;$!0G2Tq(zJx9Q{p4w}T^xS2*7lT(zrt|!xJfZEp9uAGL)6Cq^yz(TPZ z!^Gu3aMIr|qYO#;_sxJwaM2I|4$mi3>`R&@b3L{~lLp-WHi23T)SpEGcQXO97?xTl zX?gjSi}fsuDKkytIjbG`9KqNiWZ@)+pQQgaP|JDVBwng+Xn+lh6WvyT6o0~eRCpWl?%l65o+R%tR|~474+`uF=8*DgH*xYCq>j; zdWe&W{fA7dQPRR@uY-rd?uID#>3*elX#GB z=4K=;R4D&<>=ZHMm60n7|6MMON5kVzzzyfmCxhf-ERsHh6e(j&KDR+0U?YEcE=W)p z+XNeWHQ7hNe97@I!(nDi67*4`G^r>{7;o<1&zB>WSz5`EPZe|tbGkvPm1m^p@)Pjn zfQN~4v8&SNaI^3RGMkVU`jev_j&?;C=PqH&NS6NI;%Ko}atANpuaX?^ax~{LzE~>9 zBHu~l?kc~d7V_nSDe4$cE+?Rb^12-FZ}6kY*s}e_djUu0OsXx9Uz9QT&c0q6mEKFg zz7BSuF+koL0xRkN@S#W)J;$$4K{QPxL&$>_i^NAM53Sq`9;?|!1%_uDtULv9j{V90 zF8lk%&*zu|lEn-8ZHMt&&CA^zcff&T&CTvR^NtjI29j zVX+&M)E|9d4Prpz?1FG}uz56F&I-6Zl@^uT0{Ne00Nw8Qa;U^^3f~xE9Zup%$gg}{ z&>e+u-N}eE&1Ez(0-F{kv<_uzDNNS;0IA>a$9j040uS^qn$WSd9b=7ZN$E>AF|lt@ z{bxsVJ~RT^#8kdu4}Bx>Yf*fLspeB3%yX|lO6i2efkJ(owM8_ahNDO)5V^3i8MysW zl~X4x?aWtsoe>4>wHA2UsDm-|4(w;=RV5B0ZE()tF%`2Hl$k)kYT*SSg_e&MatO8hb zGE=6)koihJd@JNjSssF!%M^B%!0U=2Y`?n&!>bTR&6)p38>W+W#M(pwFmbfIp zvG$-m7o(!5DIX01TU93AyLTgrB-&iWtmlg;e7C>486e=C8Cqb;jez)vT0K6T>q|RDnm{8uHD2 zJaj?zZuf8mDNM;{4&nL73{OrOr##RW4$E+bC75x^&f2@iuIp+?I!IUED)!=fyuwDg zR+4YW>1BAmDjj+VEI-+&`=9g?Q`7{7uNUtzA-BsFJ?1hJro)7Rg>YI?93m$`3>P^o z%1`@{W76VA8_cgo_?~gGIL!^0-s<44c%PXn4#4$0s@~x=M?`=W{hYPMh!T6 zdXeE#Jfl}vQ3%JANHw5s(K>Xm?pxE-SXW|sl9u>+;zV6cL%NyA$1ADfs#B#;g znA=YO%U z;A`rq016|f?~#*uqXGJ%#hqhrJ)bwUfQ=?d$97`t@Ue*JSs*@4nmq0CmCPbAUc>437%ozug8~n*YP#u+-qy z%e*3wc6N5Q)AyGW^p{S%`%`gyrjz)c0?%&@%MuMzR3U}BgTe-Vm`&q!Tby_A@=Gl6 zN1km5dNzi`zClu+z^TfAy?HSF^+en-e2{&d^SUvkaX4)Ex*{v&g-K?sd)RBXyGSp2 zubBXx^n1rALy^t&tJypwncc=Q)(M>^8Hc@2uP<`IKv|Hi7mY(KbAdF%j6wTvn2}EY z7Z3mQEKU#c%R25a&qvDx?a62fyRG6z)n8%L^0&Xj@Tn_K<7DRCaQX|A4WnqDZOP(W z{8~da-hzAC@6u1|Zbo*nm^E#q#AOMGr6D?Op;amz93c?tzCB;AlksWM+o+LaheNJXaNf0;dWxscNqVg{n$#QN1 zHIcGoo2bp!;1IK-bmU|X8*RJ?&hoQxGPOCl*=}@tI4(>no+kFtG~0cdYxlU>ekHTs z+gaG%vEADyveDRPpw=;p?U|Et&}z!O^T;N^i*~Ei9LPC!F^Q(*)R|Q;+AobEzL;G4 zN0|Yh_FD>Qxv&RPPXx~-c+u-A9=S*omq%Xo`mOfM?pg2Pe_DqM&mx*!#=Y}@L?ahr z|5!oUgn7|dE7rvVmn=J569yn$!W`}5TE1&%Ji?4ecE)4Ocx-1p!Hg$%##79AYG*vd zjAwR6tAQg9hL|T)5?R=3HUODUSH8(~BuhIbi9Y9uZV`Rq!Ng8J#@REO*;A)|+<4iN znc<~9K<)0yDUJ?zAlcbud?&sE{;Bor%N8>9yXfO(WHWQ8anQp4OvCfY?og*K7h5Mo zs*zG%G%^Q6rDIK*T8%0e0Xc58v032#axyz?1{^o~KS_`&U8%f1n;*)Q3Rdg1`-pP>6;$)ur=5dcm^u#C4vAA9Cq`^plS>WBV zvpbA`HTCDy5CSOza< zxvdM~0NW!=2hBTVgI1$|h`gUh;bLU-{-8xnurwNZ$UbOw)Uc<~)E#!FD)yz}#5Bdl z$R^-`NeN_)lnDr%I|e5W*?@WI)IRLDf0D?v#pIoXeAw?v0mc9lM}7^4zjhRYkB*8x zIK|;jm-hG$PLG+``c-DnnAma#MlyBk@UxD3^nizwva_}Fn|ZX~Ve6Q2uGFBjXvP@V z(Vu~>wTS^-?J+ZkpvNEts4;dn3Wm&<2~rq4qIjqm^vtuO58Ff4?@8wN8>Lxh%d%m= zarl$W3rF?>GL(I=JAliAy(XL@$1NRplP(zawUDe=4Qw2WhAkT!fn42XAeavcX5gWx_J;Wl_3fs37|0$i5BP1i;8 zUO3w4(E`*;exn(@4p>%%KU+-FB-Y^sph@kfZBDnF%9d_7-{7AIr`?~rz1L!fV(=nN z*>_+CCyH1N4PQPn!ZD-*rg&goYg|O}urfR)wOKBLbzp)AQcfNb`-y-0ptPa>3;{)o z2Uc0^B084%cHxB35#hNGeEHIb7xBUPryok$FuOYnl&5*XiCMoZMoA`lfYHF;6$1sI z9w5`y-xVW7Qawea+}p))a`5c|6Z36Xj12qofM`d+t{4|gaY3oQxGP3RCV7Chb6{7D z5TQS7yj)7(~gBl zPY_Zhd4RQx;gJ{{O!0vVB0hSCa6Sr3w*y87gij9;l243A(?>mYMLZJY(DboCIwc-s z+@oVJh}4uHW28Nv-~t+sipLmOQKtF84VT5^$5`NHJ{J<_#p5Ru98x@>QUqY+!JO$& z92$?GAz;tX*B;l#<8QEtk>f3jbpBQr@KIXZ!;i&~iG&MNo>Js2@oCi#HT z%)scI{M!R2y+6;y2=Q+p82W*peS=^_pFT%CLeIqDV2TG+jLtJLI>)}zK`#-;0zK~e zKm@735rcBsmibP4MwZ&d37wq!}QHF z1jRHTxL!fO!FaO0yfxJDI(_pkLSvc>PS&Dt#CYVcL8xwhE5^jDZ5ckPZ^g){G%vVZ zyuW=Uf&B|Nq7-A~!=*h|--;0u2_8VhclE6pD4pmjfC|I6VxUgE+5-Bsz7@mM_gNq4 z+4@$DN#EBA^l^PFMxyU)jr4Y5%v<>M07<{scVZ0qw+kj15F=RoIFGQ>cY^e}j6}R* z--!Xh6d$PekA3$PVGnZ#o_NZ>dxo$bKZ6pV8HQ2D6c4EKo_!~VLnL?rr627(j42J@ z9x&}u+uac(gGpXk>0I00*_E(8?~0=RY%Y`r1i_*4QR5Ur#DMtJ1#}VaqV0a_om8)+7X+uuD@4_tJBXv};5eMu z-rT?UMgkA&jZJh1)*Ej(%^cyI)A{1thBDl78rVp-%W#LBhUK3&44V!bf_*so+y_TM z__qxO{x=N+UlzoH$~~}i8UtMvK0NtgY8x<+V8aO?n+6l#HdOnihG@UEbCpX?1F0k% zmI*2i#Xju(zRvC2dEA4h^ZBO*gFXudgx@w4_nB!R{%OPX$l$<-liwlPHWx|f7zN=8 z7F<)4zG+h(Tw*$xeK`5t5k^4xw++QzU>b;jIxu|#U{j*menoO$*}0kwO`8f$&3{ds z^IFF$uXXI?F|C|rvo8xm`m+>}OmN^{+AN`yTv#TLC>;B=Vd$Ll%qQWsA`m^7vrIP? zfu+fAnPUoRQ;b_Z8UVh05C+9C!Gb&5RS-wJcHSeM_sGtBtn(h*c~5lS6Fcvz&U^!#Y>sfJ_L||J5a+T0x~?Z^IP3hozFg;{9%LS4{Z%Wcy%-c|FmH= zU5{Sx1m=8_S??wk<}YMoO~g22#iQ@;7s|C z-wu>8q6wHtu;45y>y@r#DR)+K>3Go)nBc>Xd>AJH)U z(}6iO1_!?#s1D^6@oB?wSBQq;pEe9QK{N<_*$^iU(irw(=X0lrhTxwrOpgdo@#(<) z+M#HEb!?Eqsb&ZE+sWlV4FbWx9jFrmVe<|5VyJxnWkVQ7!O&wBNSB2M!UP9SxGD&o zNU-5RFVjHqWkYE3GqfcSSs9#lVQ8o&Lyum-csZTIbx;NkpYM~&mYi1KbDV$EH}1xK8Xd#1|Uy;zL{F;u|KG_|?b1!iMI*rC}sKgh?!Z zv-ME^5NjX*YGN(Y?i3&GzWnhDe_-JzwookQ{HL%`vm_!#lO$+FU(T)OICD5I(sD3K*i_3+N5?+-^CBEhx4CI4aUDr z<;7n@x#b^Rhs9q)0~H^jNaC*{@&Kq=;zy4VPpMD%g^MHqLM2E1#`a=Igk~XrDiuO} zN@7z?a;e0RjzWtopZLw!74Z|72>u~tz4)nlZ-^aGQXIcfR*Nq#k;Ts=`Bx2+keT9V zU;YI_$bX(AE(*5a=mEhPA{CY`23pDp$aXCO{MoPRj| zaQ4CEW&^k9g)5zZ?prYZLj{HV zfroy$#%r}PD!l13#fB6U?@Xbkn}cUw+~&6H6L;6ufQH4ZcOs94;HDBL*|4o{^UQ!3 z+Z;x+4?irsB1u!`8pE;ZdV|HejqzPMZ4jbFes#{f^=&Y_kQUnvWY;zU-U< z_Voq#w{jrz5INo1HTb5aLl%(k(PJ+XZS#UOhkKG0psQ5iaN{FK?D}C>L9V#-kvns|utmt5y;G)Fxy<^=okl*;%BY+4NOS>I zb%caJ+==A_T@f|G?@qH^_!TPgaicp2iwjjB+7@1bc1yB1rMLy_r#1 zObZ@7hwsVFK|qh@=k-=%^N1fjv7ZA`4bj;_1CP$(;r=496;KkYd{c(EkVd%$NDbds zs-d_VSb{ai?+lD8ub?o!fIyRr>Ql6Ty6e>EC3v%UsKQj?9R-<`BR(-(i(tIB;LFab zjg);tt1OcJZqcVi(5!&qgo)tx;n`2EUtjn7O?v;K5Uzw82;FWnYPVms@j?pTmMDeI zqmu*aS!(c}Mb#qJt8$kgysS~RNTqSGD27)(%0S)G7`|?`x^{^MWBb9cgJJ8K6dur< zBC8cF?hzKCoQ1bc3gJpP%V`F^kx~kqH{1@ShqIoUle4Ty^{QOX!fP;9i&Pp1n_|96 zUQRHfIZ!c)mu$=oM<{c}njWLaD>r6FVX?CV@I&JbK)j0M2Pj4(*Al#{<7PU=kC={g z2z2VVUbOnHE*{y(i#)z;XGD$<+AmLgj6#j$6E<}kvJE&PJlXuPFE7r|`ifuHQD5nZ z#dpMiyMGTlvnO1!b@;t`|DJHO$wcu5$--Bq(#0psAf}MaBuNZFIYDJM-Rv;PDFKW` zaD0<^!Hsk@negbywb7h=i)HxkIYf4aIuf+uVo3FM`a$UJLeqy1xE&<}NDataZDyJ3v$qbVY zK4gvQ{3^ug)Hx`1bsDD{IRj^w6p`W~GjpvbyuO-bA}FZ~&L6}ebQzp94tcOhPhO|p zZJoVnwVFBk!^XjBhZ`(80I&nf5m*fz@W46{g}<3B&!@Zw0v6;v`n>D?@mg#MvU5TIl#d`KWl<==a-=mo2sk3{U%A zlO~ADS0jP}&0%nPSQaVPnMfZ^!!(8A;}U1n9*8fX!3CUk7Ww)De&0s(T7Qz zu?|nfqby+@MB?32k=14Q~kfs;f%w`06dz#nuO#Nj->N+6=V zcnVH{h!IrW&e=J5jx25h73IN06GExEcMnE(kM$Y`Ry@K4U+~0%=Hf*(UnKD6PXfhY z$NYpO)#O~UtLY>o!3_9%1(T|WW=?Hucf+C$zQ2I=7;iGvV8ELsyg!rv^pTe5KZq_l zjjqo*t$ic#P`@@K-_PS$Y768tDyRq^4T zy`ZLhf^CTwiyBC~iYPYaOL3q0pjLk<1D*?asA;vKI<`$O!M6hc@H{jhn!&c0zO1?z z;Oe28i!T*&(m!8eCFiyBwVap5H*$Etd4i@YjCHVw$L}DGrEs_rf4O3$UxUD>y2Nq6 z&EV`D5Y*1jS(Z5RN7s)HgKflHU;M-$TNt5;KJmvB>Z5QvtpQq>pt9Fii#D*ao{31G zMFkpsMc2H#h&l+fK^ADo7l~SlrHsK(J`O1ic!#MCd!F_&Y0p;@0d<&6eL#%G8Mlar zX<*S4A3VNNXcUR!v1r5AuKeb;=}(DoYZql63?^HBPsAbv>ub$=oLQ{8viC}Usl}MB zM0~ZNZ-U}l!mN?6h-N?^bIz0h_(F|%U~w*a<_y7W`o+MnkYTxYaWpxP7O@!H4av*E zF?>-{A}d#sU^%>rHKGA2Z3a8YpP}H5xLz=Y{E%Tk4@d88CX!vvt`^C)km{T_ADoCM zqTnH@aJq=X@y9^m8$Zyif~!K6je|3K``+dlZ8j#Go1^EQkypd{#1m_yt7ZHS6sZop zH!VIqgfUeM$tx~9=ONwr9XmRS*??t7Y#DAy3BqK$Xyj_WE5uaTLoRGx9yh0`Q5T=( zoOVZ(Y$H!cU|hs_FstQHM)D45@np@>9@TSvNEPySBAIr2W^00as}m0}(pR>O{)FTA zp?nAs(Bk*ON46*|m6>7&iq*dR(VD`Z1 zsx}Y7@e#8nDoj~soKApfMT5x~f%G*qD)I``5hlGxXnedDw7rd01_gK{lC}a@u8jdQ zm2T01k8`&0@T4L8Sy#KseCffH{Yv%D;F5rSieD^y(e&bQn!qI36KxV|-RRvQCx@x` z>0a>WE&rP0ioKVsgzs*UrB8IU6_3~LCLRd-(mMIb?c`xHo5|i73Q*;~;;tue0z6r$ zI$GWytj}pwGZ{fGqEVBWv2-|9_eQF>47Uq5wTVY?@l-aaN72vx#TZK0`SN@^8MViI ze3cMm^D)h$nUQ4m&ocO2N*fky4H_#RVoTj_Io7S}AFr90TBi+Q^wxlDfC4YX8}e@L zu4!x)DX^2Po4v|vm`34y-ZH46My-W?`HR~OLjB8-A`TbGg&!^(!8h+Khu#eA-qmBy zO;Qh#(h`8{d{Wit%<`?-#mLLl98^*tR9au}Hw<$O5X+oYSwF%OGVyJQMpU@)#7rO# z%20^cK+oHOcu<0Zvgi=YyGpBTStm|nra*Qg!H{hFqUJYLSH-1(*+^mK+B z@tEtJpMt)uI@&d|>5g%=UsRG=K;DAP;3_Pq%-THL3)fGu9av_#Kq)q&V)cx_I_sP2 z3{G=FnLCU7$_c!n6-lW^BC9|FW#sdIc9Bw|$bz3%7Zbue_DQ^0jG5N5jCNs`Clyqy z=xA_>lGXWYEPN#5ilRv4s|}$sh+Zx(JgN-kQI9iKBh-wgePj|?HVG%wZ&J{((n27i z%Ju{JQ_QIraXkgJK{eM>EvXm+qF3aX9WKJj6dY^GbTVG18@|R0jYu`sYt)Pv$($Rt zV{UEK+|fgo!<-Vn;jwBb<^1+kdDW;`tXwrIw^G#w6CIv;HKm*_1I+>(nkQ&cd+9L? z*|MQP$?ypcT2Wm&v-VfPB&3Op=n&;>RXj?>xTy3auAC*!=d1mgVKCL=4DTKjbyl9Y z5YH_;Oehf*4VCEGy>qq{zuWg!0-K^|B{g;FKIx5WdwtX%w)nPoS)F=QdA*uH*-K~c zHq9qJKU%#Pt~8%kR3Q0;u(;gA$x}ZUyPP`pa;cXSr#W1xch`6#Ws{4V->U4r zFqD3%OCxZ6E!^QTpF`JJ<-^3^5^0B2lR?G#dYL2>tN@(bG2F>=McfefGPsUiQ9c4* zZBv&lmF{Gi3++2&CD6P5bIR<3Z0@0sA4?`NGXOltIzYG>MNMfF?D?dfb~jdLnR)Pi z@a*Z+$In=01EzSym-UN9G6P`fDDT0Zkwd$0&;|IQHln6zg=TnqK?yDUy3xjjem6r{7M?cL$Cz;RDk2oSN&EBNwk;@M+u$4bAe0dMfqjJ9w*udcEf z$&HLobQz95N}`nG1>#VDszIaYk`#q^ZNPQDLRsUq>566L)fw#GY8%$3#4D%GhU-TV zPsBfbp3CMi;?z90rGRwL&|N9sE<=mqd?@WZSlsooialbYb1*nWCTpf^Gbx8>HtmxA z(YQicJlN?J4zJ;Du#(dB^rwwMpMfhuqECq0C{E<+*vEgS2u-JvZ?SQC8`^_ga1) zQ?Al|&qe(_wABgVxwv19v;qn8ukaVltQ9Dccc;Gqdu4*;UGXo)y&_%c?dc-i;or*4*{fE=nzdBse5`8S3E&+r-3^T88T zplVesP7hCvfr6Thlj$qY74u$w#Y$FTX-|lNsD61?zG=f9Ux`X&CEN6wts-tmZOZcVmx){w66NR`> z`1!A&qL0_fqM{a)8$F?zyeD|l4E(_t6M22Ml+-10C-O$Yu5E=SzhW4Qsx_~o1r$f8 zs4$R~$-7c~3eUi1*HIK3RX5`C08b9eHl!={*9>1#*jZ80T3qY&u9$1>E>+~6l9(2G zykpn42G^E^xTsq5+FV;sUw0s@b1jXH;a3H#Ee>XI1!t842kjsd!FN|cB;#fjB0N}x zqjyoM+GPjRD8yM|Wp+38T#TL_#G-L`V{N!&Jv*OVE|X>2n9Z3y2>tCGM;GC8%5QmD zcZN>mcX4tZ2OQZ0xfzXno_Yhw*hZ4yqOC?ugFGFUBU787((C2zJH?mRZ~ta&DLUA^ zrkLc(wPhTAn6rV7#>PPzM3}$ZR$N=F_hQdNppT~%j8JZEbYS%UTE(HcWl~lgY466; z-H#JL1MuMg`+xtR2fz0)>7C5mokIRitN$R%nmfF=OWgeJu>T+e8~fiC>HF`~d$QM} zj&?Y~g^ZhV-WzTE_x&6uH)C|Zce@^su9XwM^~+(WaV%VJ;DyU&?Hm_fDX}s7PcB}% znN^DH=hN1}*HjO`{Je}(P{6=t*p8Vl8;*MyLvpCzIygtKpzTrsv$=-LlcK5a@+@LS zc_Kc!5Vnr5!Gzzxf8gYlbF!ztNzCIr;LR$WWPWnx)^5^C23yHJ6-4KZxkb6sv@z~S zey&O5#H{ks6k~+wJ<%$}x4a|l(G4mHhpTgJID1D&$<6#2d>esh#5{-XphD~HyHD`vBC`dpd8pIv z$~p@`VJCdjKJRp&bIji>HgD8daj#;)Sa%Xm@dDc!?I{Kd$%(JPGwoY_o8pdzj{cV) zb_N)1w5TM(Z`__D zp%4&OInZ3Xn!r9|Oz;kBi^=PdCJ#Jj-e z^u|1Q@9EAhNO;fr<(zihri{N?hwq-dR&HPZIqZtQno<=r=gfAwB39KGk#_((&-D4q zbqe_moNAUWsoXJA+}k65%HMo8tz1tV2}R@9w}|hAA+B5(w~+2 z?{;|b%jKr(?!_GKi}dV=3O)Oidp{TV-j*3#b`MUOwB;K|)hykTD{A@rM(z!@Vs*P( zOX!&RwS4o^TH)B-vK8XFGFaNqyD>`cf=r*&RJo=0dpWUMMBhQ{=TkU|IKXB}XEQ|l zs`5}!j`P<>tNgw$!JHFwzR<@x_-HU>3mdw@Wn|~or+Y1;LBa+S2udRmy$mtGyTa?tIDD;o(XTETWj*}AI5CDD;E5>u&e%L z`HC#RmaSDqM{&Y05N(Bw!SG zbSJ&Ru-{|aWzKNtM(}Xwl~SHaR8V_L*)MC9#Rk1AozB+|@0ncFUaj2xwGYtxIqVCX zw^f%9?~1$L5pVzWxs^HcnNN@3{(`2w<0Tt%xpTqy<4?mR^U(g!l)AQ-maFvvpN*C*Hnb8WDmdaiEJulnc zkmv8nZYou4JtNV0#kk?{(2B%ZXnM)%kiY7$Joo;95~3&`>3^h<@Z8<1T;mB%Q zJgFGyC*E&u zd_VnugREsPz69yuzQcjFBMsbMIDy;ngUE(uVNnDmu!rCy( zrXPXRnYt>vQqspqxnt_aW1+INBpiz!SN%4Rkhy`_*U*yaTeOOX;rU`Y&u~rcU9@KN z?4v=(Vp&~n?OsWsfAX)CUV=CaUd8b-j!E6hLbuW|%JU>Q_Qc+B^lo*fH5DUID{f&a zHrc{lP`4iB_IQ16`F)wB+D!NErJA()zLYkf={8)s4)g_a*_vut&hrzu$3{6(15Da} zwd#=bM-pz6*{bj6tUo_}uW(eqzP%c4)NCv~?3bfGtlpK?Z=GT(@P5cKe)%57=AJ%tK zH6D!pxJ@Z$4@ddO;-1#Cfb0wP>X@p>fou!}HLaM*2DS6hk`7GRSIrZ-Fmc<{My^EHs-+^Dh zST0&&vsXN4skf+0g@^fMDzA6d4QBE3;RBrX_zbLrD?YOnY`zA35JP zE!lu~_i62y7e5tDROi{*Kh}(`sOmc}xR%bn+`A0qF zH@xTZfA22b-L0IQCwSMLYyb9=JfD*MWN+cK(VtI%<(l5Ur{kuD}9p1Z(MLn0Sf1FkP^K{|P{aCj(&HnUbeQ~m@ut|SB z`L&)i`#*2-|5FJ3DFhscpWT=*%$dEq(s2`~pPG+%==58E^#3!ResoM$bY|P6{(_v@ zfAaO8e7!nfyQamztKRlI_=&z$ekq*uYQ7h-M#0sTo7oXo{^z*{dPl>*o_t*=Ce|%5 zgmH-yZq*G~3*mHV^$T$Q_RFK;+2H5XM!$7-&~F_6)Eee4UPkaE34Nm(#aq3W^i;sb z0U-!g4%m>ri_CW^Js10Z6e$k{C9i@PyeIlL|2a-4suZ1n_Q)3Xk>13e6@!e$1DfK^)H0t0W8H*(iSntaZH$-kGCGMwiJ&lr0xAjtC_T%*q{l zcQLQQf(!!)Ep?KlWbRx{m+6%f4u`VEsb{zi9bSfB_DohhjX&|=AP=O}@D(q9Yo#%r zUxi&(^I|f}d$ntK1FpHCeQd@5+~O&+*264_&wv|BM)-H zD4b4tnlbY~?cd+t{tM&EMRdue0(^*HLA}1s{ui^3p3Rc+avG)E^?5v>ZO@q)ik|-U z+xkv@*UT3=+v7=^iQkLuWFEy^(KLdK>RYUpqj&Xxr1ynR)IL7xv=7@u^>%f?_48@F z-)gdsY=0g6_3Z5Al*!Mt;Op%mj;@0NTe9BVzXy=*X1&?m)W3)Ncc-m?_fCc{`@Pc> zBZWyu{Y|p^2jn+RAJX54_un$=m2`luBRy8{%cIV(#eJ#Q>$ymDt%nV()r?uJehm+L z&0onUDLs7A>ya)DkLd4KgF^O6=LUzp6Nri2>a-yGz~Jm?c-*NpGL4gyPHR}ue88l? zjvM`-Pg^ZAMhE}H7BJGR#zCi*)3+9*9$UF-m&*EZ)@cuhrNiPaO4>+%pLR;CJUAT= zd)=Z+bE^!n7J;ImqT|N!sOkuHyVCdgi!l^r?i`Z=JMNL+1M+*=`ej(u`N6A~)h2Um zaH!G3HY-Gkau}gK?6gRAoH5S&z1L@ly)HDRQeDG-5&rGx1&ESe@15;+r@;2GEa(zvG?MnzO!*cPL%3)gZ4D_=%Z&gwjUbdT7 z8ebQO2~!M$tz8YtDYcB1I%)V07#i3nlOm}5Q@8iJYeO*r*-un}Ch<7>(7UMNlI+r+ zH<_#4Z4-1eFxt8y5t>6~qcfZPTs2s7Bq)f!!3C9vpB^~vx2=%{EZqU;U~I#3J_bGz z0LX(iGK88Mx{Gg&-n`ADFBvnp1gm?_ltDrv03;Pl;D--QmatHk@0SXr|Err9MQ+g_=D`Anqa!rhBfvK z8pcbblGNa6o`^_PPbZ8}6whX`V^GUt-wH+A%?)RW1y^!f8EwuXS^*mGJ#J_|qS zY8gXpAbD(HHdO>sWK#`V{O~+b0A*t6hH@y_dQROzrYtHIMy1lo=+^hVSK4VOc?MA; z&qUSaQ)Exf-0_$gBOxm_IW(1Q)E$&mj0~RoO0L_M?s9g{gw*&b3dhj`TSk^)tIgfh z7a(U`h!i%oW@){pGJq#bXtm$sLvi`jp_7sK1|>N1dnp!SMzKN>?(aLmyEHT zi2}LtioL-|@S^<>;${1-Ep)mf7RHNdjj9=ww;QX@d?*59jurvfa`<6tkQej1O8ZA|`#mAEA;n~&GMa-bxx76-|k(TzXm@X`TFM!}|%0|sXrZVJPXs!+S zgPKk7uuL+WC2@mkY$@2eo$sYQ1ZRc(V;FG*!SH{Gfjg}1Q?seq`6 z7h@ycGy5$E*%)1yeF_-C>r>qzs5=v;60A z)CaVxlkhT%qXpAr+sq`KMB`RGW(H1Lb3Gk7PAX8Ga<`MUX-7+MSgLw%D~8O9N|u*b z(~q~*9Zqv!TNJ%FV)zO@m8y0AtFs z_4$i#uW@wN=>K$f*f?phPQh7)$6_=o*86{VO0}&x7ASZK%ylxIWYBLt+5uNcVK> z>!SMLljzk8MG>q8ls~#pNjC_I=viqukfB{nB5Q~5JW1ZoSX;nI7`rv}U^Q;ZRjdt+ zoY3Hq4Z=xvzMc6SYOdoCd%v?7F2azA z4BiDX6Gplh%2c%b@KElz@EYx0rbv1yZLk#j6?I#whf#-U7Q1#rW>80~M6-<3tI0)H z6N`^@_Ot0D-Gq9NoL_6u81g2Avm;|yB^;>M3MaV`@*?t^*Loi(sOk?w^WEYDT$8*l z6+#y(M`#LxT*L%uJMFHqnL2?mj)k{juG+53VeFap=pk|!2>I?zk_-h(P z!Bv*c)4lC&e%L&nN2B`nRhV60)|18M_KevQlX-X7+F!c0oNr}`0A@|t5=~&$Z{se*FzK*#gXaZN1!Msi=vlytO5lAoRmb;t)aHPX z=8R7?BE4h7BnNUzOAHD(H^B&yE3;vF=4%c03)cLaWFaP=N>m3>LJJiFUffvQWlN|p zowtN(3Awdl?}8r@mO9m~&gbtEtlURgt7@6liU5qrraLrTfUaAiAZ)sg2DG+UFkxt@ z;Gnh3w_=v={tOp1P@ypIAN)n0hkL+93u^^SZT1dN`RjJay=JT4?VW*5_tStwjF|N} zhI5Kc`+4&gq!7?x)2{W!BD`Fo_N@zqe^8|oxuhs(a7+}&%^=jKfxli^jtf)rn-}E2 z41{ircoG{a)`%{r7%-&MOni@yAL`_{*$PQ963~JG0A8(7yD!|bv@N?j@ z3c~rEG4&zzyr#kUnI!lj>e3l?O(UTztS!6 z9@_FZ%Q?iQ+UJKaIF+?x&r;9%T>Msg^GIYE7Jvm*M;K5!4QQ;!cMRCXU`j?mcHL$< zok1d!Bf>(QF)ZL0vq=Lv)Miy))rSxi^K_wt`)4 zDtg#zk}BCQD^gaVOc2H)7=h3YVFzkETDc)gn3j^m18OZaoM0RKHc>rN8z2ir_L}7L z3voqGK8g}EQ{F05HlL<>6F+yksz^keHgeq^C-Y2Q8ckV8N0a%4Pwde4da69jR|3~l zR35q?xX&b%zK2lx8chG=KZFzHAHnycHs$~L2lzku(^F2R+{MqK-~8h(A`R^7xlSN~ zHnb3WFB7Dw#7)#VOVa%nkT=tPZDP9bOI_PG>kDNGZcB+Ibv74;NB z-BTCxJ4HPuseVeAe!*RO>Hk0kv0C#*qF{4EPOYuV@*|yOpdjh|$!2#!8RBBfN#HEk zdTlWl?R+#cFnc9bWMR)iC*z+~LPvA}F7UMM@H3F5!El{hm8B*@rQ*^mP#EmKR6}Fv z9tsz#eSS2(^M6F6tUg~PSpvj>Io`XD#W}$2V;$~K^HQ6^17zd}L^I)ZPL_*N1b4$b z$w<6TCkjmQQ&h+soI0>f4oNsNL-NtOL~wB;B5^#ju!(GO>{M(eUy|$fdJe=UW)qCk z$hte%!HA!F+(t&$K7&_{PP=KmhzgsG;5vJ-Z-A%(WRM@8C(CSa8eN8?k6R4&Jj@ih z@C|TRfmsOLcYE90*Vote$@z@g7PD;-7Te=&y#0Q6cbg@CfQomwvPBrD-02%m>nz)g zTRrb_cG7RXX#diJo0)I!-+SXW?Qp-3H|Rup?W|li>Z%Vs|&#{qDPOc6N7m zx3@v-ez3K@9i{~EaeXHU)9YwF$%2Ogo2^j{``al2AHNUNBqkvh0;j{=MKQA{&^f$lW zGSZdNOXTO*Z;(B|85IYz;vgDeWo^sL*6Fi|0WNX2;0Nf*DO)u{F<%MrWVA?No(S*> z(;*fyQz)Yk^C?r17o5Yq)mJXLVv!7vw52N)dc1ZEAFtlR$DS54fOHhjBd%iA*}sc< z-8V4#aL55Bc=F$iXfmCC48nNKWLBDtCa^u2H?_;bxwIQc<6w8qa*Jphez41@|Fq=M zRgy8T3#U2q6{!2qWym_seq1xf9gE9Sum(J<@9gcdCE&ZAXFI!ldm0VwKJkj47)?Nw z9!yUV(>H7_*{OhO{_zsd(O6xQ6d-`hI1tRjHOeiC2S^bri{zTmM{ zV`=`(4W<3S_TsVUvt7b>mmwB+6?PgiVkl9k(gRUFP4{qs}e&ubcy60f-w~FE2 zzpswtsRqG$ybOb+LJcZ|^-KP)XGtfyjuwYu3J3Y24_*tcta5M#{-y@asaj=xh4jPS zKzDz|Y>@QO`XvJQBg%psWliL5lnh69YxJ1@xRQ+AE3r3a+Y9GHX`@RTTrQRNR+b<) zX}DRJJaFUzRL2BhirlGF1KjPC%XkZSE46duxP9C@gXuL8UKzOSdnWE}JODo&KS=}v z5F)a*4^_Y~mL1MvM~T}s+gyY{`~a)PCn>a>jFR0pFL2uLoHd3+IAHx?%!n6rk-1!G z4@#r?Kc@pAT4^bks!9!Bz2p#sGf`fUwsAsEKfGE00+C-ajqyE=|9)a{6(8)sHU3$08hq<9`SX3P^GzRTp{(7SZ%LWX=CT5&%G)#l^&rJhY@N^Krn2 zDvs3Wkf~|nL+n&E#{XERqRG?AYywBVSU;i$#P;W@;tf z@6absfzo&SD_+ieqbz)nEtxZFk}j}Mu>Kqzm~PSu6A2XWeIxtD`1;lO`kVLy(|qwh z;;}l-6gWSZ^?|`Los;H$q^n_q;1~JhSNt)L!i)!FAm7d90>A#boGhYoOBq5&@(TvK zTp&H5_T@BO7z`y7TOa0Zd{p8h3dhG$c9o1p0;mhUiwmZ`;P<#0y`S)@iV1L?X~;Mm z>sl@@!cjC}EH1`dh}ljUUoOK-k;LupSFiz+;x|M|_=Wry6ac9~#_|0mx;{ugsNX{l z%0E9GUWGAZUUB0q5hVKPOZ?v?nKk0^NfuTWhMl(z!5EIIx`d_^&P)Yrtc%8a8qay9av;1f+u)t%7e&plPR3* zR9F-`YC*n;UQCljw(JG7w;JU40r~xs{O;rLm*Fx^Ct-XrUCJi6XHxQCM90y>{M}Vb z4Wr*;e#HoJ`4JPy!gC=aT+>z#a0Rn^IhZE~*idR+?B{ZE&h*-Ngb6~G6??6&A_aO* zxOj<*lUQEa?{I1)!6L;6RW2u4EEbb2wwIDDCJRaHm-cXQCWFiJ*f`y4;ZzSc_0RT8 z^3mxX{={FKBWXtD*8>u4_K;QAqTkGn&|gM8>-H=1K?3yBK-aBf`ul(ej6T{WzaNp` zkIC;R%h6%DUUqFgfr zPk;1J4+x=2RN}#LqeIFMP8uYXF+58}+r+-xKM|~h(*ycJLu^|yb;(eWUY(MfUo}KP zZRJ22v6&jBtq+r|#?`!GcsW!)6cTa6$gIoYozf!|({MO17#nkch*3nGKoUNw-}uqc z;FCCXDji8&qk=% z-&4p#BvC{iw)Pa@DpGDKo-0r3=ChW%%4CTLiBwvHS-csp~_E$dzx(4V20lJ1V_PXlq39Hu_q*RtIMeaJ3@nN5t9_-Cp&I=`B8}rqHdR;wLRFMt6wHA*%jd-1d6+R&2tQ)3 z{mMt}X0z2jYj;mhhkT6r@wUl$9L3t_+c@i;!joB@Uhm|rJ>&s6z9qTsZr94i*dlFt zyXcr7I@a+;j0`?NM#>xW>j7W18yymCM5gSQlssqw%WKgQOtRFZG+9QNBMLyqGK#X<7Qu!(0_Ra2gFG$gS?Yrx{+g`deb@RYKWAXs>@ zZ+J2OS)n$rhVydY%IZW?)v{-*;_nOuXH{E(@7V~}k({Set03rgPLI21JZ6-@va7Jr ztjax7Be46(>{6wHV9@>EYf)aYBBWI5N~?o&NHHK!s!(*$>M(IH3O|*FF|l&-GlL^` zpP6{hR$>l(l0snmMiEjbSDQ(CD840Asp>eq=z|v5LaHeKRLRxaU|@N)L)x(-BCAV} zb_uE#Iz|haZF}S(BrW{3VJ-=LWi?aGKu`ybL5r<8hhjIBTg0779PI^L;1A*7hsl(F z3U?Q#z=3rQ4!6Y=Fn_jBg6dsTG06tQ{^{Wm+(%3`DLLhn<4aiSxgh#V7v8)&;p=#B zp7HZ}qWh!8WX@w<#jyD^-s6GhpySSo{dRnj?1=z%n-Bn5-QwEw-0WfyOg(}6T8l-p zz-yWqVN0|l$O);Hi1uv;`sSv*2ajPH@fPD|AXvhcA&YW`I)3)K~VGnWgHgRxpV<6t@_(Ijrl#;@yO) zyZEFWr7QdQ>tM(b$h+G5raQmP8}PW1Q12|9@KD)oXyBo65n3g>$m$$LJF4>(Hh8l{ zN74$eC(~&VPOrm{X>b+32lNp8WrvsIB^80-OEnw9^c$lfAGs2t*YYR}mrh|rUOwK) zIV>$L2BCbD`1RE!6ZAXrp{c@=@*rFfnku7O<^iYgCi5=b_KL1S5LUv^Xd5lWEkiA9 zXi34>R5J0~K|aB?iFpW(w}!ld_XyIuFA5(OQ8qlylU^jJ(1uyYFEj~FIkc2(BmjUq zFvjoZ(nJhB`J+zVbHmHnu}w5RfCDD~D}*CkUxxC#M%yi(5YeSXa3CiRVv0z-0TP`c zcp9B0bh$6c7R^5r?@&ST9IMy{yx^AexY=16Nw8yn9oDXrlH8Z4C~s%t0FbxgyuI8Y ze61e6lQgv7!K?XD8gI_YA^OCXl58>xxLIBkuP5V38W+jsDhu^NX}Pk>&>k#TGYG!U zjBhdH`&R1wssJ`$iNjXFU1jXLn5H(Ny^Ui@YtHjEhY_?wS08|8cxI9erK3Ei`fWt% z>e*znd4t3T9IGR*T;7);ejveT4E%wKbia56iDCqGIm(f8dE=mYW}o}O-i91v{{p6h z%h?)+vU?~`oxw3aC25$np!@;Hmn~pG`67H5!9x(ns~i#pPHSaG)n-0~OaYloC9%zpR`5~GwqU0+n15% ztksu45zVJK#L`P}!6HMib1P-8#H$n&2G^3J06h%;3 zj8~Xbisk7-vMt0I%qb?abxHAU=reRAYK&4Fc_U4pniDs*vk5#Zm-1(J^f+$@XXk*t zc6P4E&|bL7yLB7JO#molNYt})ap4^hs|YpXb#!>AMFzR0>mPXrN4=NlEY+$DW&KU& z2%Fnet+o~FXrv`AeIs2q#5VpmD$@`ewGs(8JtUKlni|x_J)Eh2GsZgDdMs%LV?2xMtUnwS<3`nfQ*R>DvY)gvuG>o-louS64E6}~=+U*HyzF!vD>S|J-`1*@Of z;p>HbKl5#YfxIA$CTAT)x`>!DITj0wcqL(&4EgCQv7FPH0a4&S=*6FD4_QQ`+8P07 zt&+~;kGkuiYx3Y#4stCjbDScs%S9C_cEo_AA2nU<^vM*Q38d$wXO(cR=Dy)>(*j~B zLU4GdhPAu8&A!2dpgp)r?|lZDMh0C&Qpg9ta_l9aNXu_)flkNU3UV$cBkYk!_@sl5 zf>Ii+9i#4{ek?Tq7rp+mlz~1s7&4Uo7SBD}IIB84+!B#frK+=v$@Z0();Ymv-6v5T zDQ~=tqIEvwSrpgCMa7Li6azc%drm52%tpV}*wb_@W9a^2voUPgw53P~!(TmB{c?Qb zq_z2mfs@?r@gtF*bg{wU$q*Z+t8}CBTF(C5eyoa96gVrRj}i$hpr&HPKrCOXQM~G1 z9<1P)PONY|D@AUBGLC)lfY`kHuB3He)dC~|DXkl-3ecGePV-EsOKt#9rAS)l4q7c} z{||LwPv0CQk=abk(GL0P6wZrpwV{+dQu~HmK0ojjDYt1GbNhuO9cB>j66GM%2UvAF zM7&9%$|^V^r!X=l9$0aN1g_Ur1G$xTPo8MqQ@~sTYhAG#A!yTO&vnDk(yL@SW$Tf4 zWA|dUT&wq<�fQgz54LwsdL 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¥NS!I%Rd>NU# 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%0DHM|gtg#!xu^qi_NhV#;*xRAjM<@xWitjq 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ðv$lKgL2lLmfoci=u3P+SU;3KJP*}J~ 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

    ms&_^jO7R^N%fQMdC}>pJ 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

    JR@KiE9b2d5_w9;wouN$v!fj?FHc8Xq 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 [ 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: { From f1c7da79bb4d7ab6c41ba87ac2f74a9c697b4dd3 Mon Sep 17 00:00:00 2001 From: MK Date: Fri, 26 Jun 2026 14:37:31 +0800 Subject: [PATCH 2/2] Update --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a72882840..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",