chore: fix linting issues

This commit is contained in:
Nicolas Meienberger 2025-11-13 20:06:46 +01:00
parent b70c7f39e6
commit 25b5d98a3e
36 changed files with 2802 additions and 2890 deletions

View file

@ -141,19 +141,17 @@ export const CreateVolumeForm = ({ onSubmit, mode = "create", initialValues, for
control={form.control} control={form.control}
name="path" name="path"
render={({ field }) => { render={({ field }) => {
const [showBrowser, setShowBrowser] = useState(!field.value || field.value === "/");
return ( return (
<FormItem> <FormItem>
<FormLabel>Directory Path</FormLabel> <FormLabel>Directory Path</FormLabel>
<FormControl> <FormControl>
{!showBrowser && field.value ? ( {field.value ? (
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<div className="flex-1 border rounded-md p-3 bg-muted/50"> <div className="flex-1 border rounded-md p-3 bg-muted/50">
<div className="text-xs font-medium text-muted-foreground mb-1">Selected path:</div> <div className="text-xs font-medium text-muted-foreground mb-1">Selected path:</div>
<div className="text-sm font-mono break-all">{field.value}</div> <div className="text-sm font-mono break-all">{field.value}</div>
</div> </div>
<Button type="button" variant="outline" size="sm" onClick={() => setShowBrowser(true)}> <Button type="button" variant="outline" size="sm" onClick={() => field.onChange("")}>
Change Change
</Button> </Button>
</div> </div>

View file

@ -38,10 +38,7 @@ export const StatusDot = ({ status }: { status: VolumeStatus }) => {
)} )}
/> />
)} )}
<span <span className={cn("relative inline-flex size-3 rounded-full", `${statusMapping.color}`)} />
aria-label={status}
className={cn("relative inline-flex size-3 rounded-full", `${statusMapping.color}`)}
/>
</span> </span>
</TooltipTrigger> </TooltipTrigger>
<TooltipContent> <TooltipContent>

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import { Slot } from "@radix-ui/react-slot"; import { Slot } from "@radix-ui/react-slot";
import { ChevronRight, MoreHorizontal } from "lucide-react"; import { ChevronRight, MoreHorizontal } from "lucide-react";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as CheckboxPrimitive from "@radix-ui/react-checkbox"; import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
import { CheckIcon } from "lucide-react"; import { CheckIcon } from "lucide-react";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as DialogPrimitive from "@radix-ui/react-dialog"; import * as DialogPrimitive from "@radix-ui/react-dialog";
import { XIcon } from "lucide-react"; import { XIcon } from "lucide-react";

View file

@ -1,5 +1,5 @@
import * as React from "react"; import * as React from "react";
import * as LabelPrimitive from "@radix-ui/react-label"; import type * as LabelPrimitive from "@radix-ui/react-label";
import { Slot } from "@radix-ui/react-slot"; import { Slot } from "@radix-ui/react-slot";
import { import {
Controller, Controller,

View file

@ -1,6 +1,6 @@
"use client"; "use client";
import * as React from "react"; import type * as React from "react";
import * as LabelPrimitive from "@radix-ui/react-label"; import * as LabelPrimitive from "@radix-ui/react-label";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as ProgressPrimitive from "@radix-ui/react-progress"; import * as ProgressPrimitive from "@radix-ui/react-progress";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"; import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as SelectPrimitive from "@radix-ui/react-select"; import * as SelectPrimitive from "@radix-ui/react-select";
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"; import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as SeparatorPrimitive from "@radix-ui/react-separator"; import * as SeparatorPrimitive from "@radix-ui/react-separator";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,6 +1,6 @@
"use client"; "use client";
import * as React from "react"; import type * as React from "react";
import * as SheetPrimitive from "@radix-ui/react-dialog"; import * as SheetPrimitive from "@radix-ui/react-dialog";
import { XIcon } from "lucide-react"; import { XIcon } from "lucide-react";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,4 +1,4 @@
import * as React from "react"; import type * as React from "react";
import * as TooltipPrimitive from "@radix-ui/react-tooltip"; import * as TooltipPrimitive from "@radix-ui/react-tooltip";
import { cn } from "~/client/lib/utils"; import { cn } from "~/client/lib/utils";

View file

@ -1,19 +1,19 @@
import * as React from "react" import * as React from "react";
const MOBILE_BREAKPOINT = 768 const MOBILE_BREAKPOINT = 768;
export function useIsMobile() { export function useIsMobile() {
const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined) const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);
React.useEffect(() => { React.useEffect(() => {
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`) const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
const onChange = () => { const onChange = () => {
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
} };
mql.addEventListener("change", onChange) mql.addEventListener("change", onChange);
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
return () => mql.removeEventListener("change", onChange) return () => mql.removeEventListener("change", onChange);
}, []) }, []);
return !!isMobile return !!isMobile;
} }

View file

@ -1,57 +1,55 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "f4a793d2-279b-4688-bbe3-2b69673fa7fa", "id": "f4a793d2-279b-4688-bbe3-2b69673fa7fa",
"prevId": "00000000-0000-0000-0000-000000000000", "prevId": "00000000-0000-0000-0000-000000000000",
"tables": { "tables": {
"volumes_table": { "volumes_table": {
"name": "volumes_table", "name": "volumes_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"type": { "type": {
"name": "type", "name": "type",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
} }
}, },
"indexes": { "indexes": {
"volumes_table_name_unique": { "volumes_table_name_unique": {
"name": "volumes_table_name_unique", "name": "volumes_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, }
"checkConstraints": {} },
} "views": {},
}, "enums": {},
"views": {}, "_meta": {
"enums": {}, "schemas": {},
"_meta": { "tables": {},
"schemas": {}, "columns": {}
"tables": {}, },
"columns": {} "internal": {
}, "indexes": {}
"internal": { }
"indexes": {}
}
} }

View file

@ -1,87 +1,85 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "004e25a0-ecda-4b1a-aeab-46c8f78d5275", "id": "004e25a0-ecda-4b1a-aeab-46c8f78d5275",
"prevId": "f4a793d2-279b-4688-bbe3-2b69673fa7fa", "prevId": "f4a793d2-279b-4688-bbe3-2b69673fa7fa",
"tables": { "tables": {
"volumes_table": { "volumes_table": {
"name": "volumes_table", "name": "volumes_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"path": { "path": {
"name": "path", "name": "path",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"type": { "type": {
"name": "type", "name": "type",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(current_timestamp)" "default": "(current_timestamp)"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(current_timestamp)" "default": "(current_timestamp)"
}, },
"config": { "config": {
"name": "config", "name": "config",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
} }
}, },
"indexes": { "indexes": {
"volumes_table_name_unique": { "volumes_table_name_unique": {
"name": "volumes_table_name_unique", "name": "volumes_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, }
"checkConstraints": {} },
} "views": {},
}, "enums": {},
"views": {}, "_meta": {
"enums": {}, "schemas": {},
"_meta": { "tables": {},
"schemas": {}, "columns": {}
"tables": {}, },
"columns": {} "internal": {
}, "indexes": {}
"internal": { }
"indexes": {}
}
} }

View file

@ -1,110 +1,108 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "00a82d1d-4745-4487-83e4-42bb7aaa3e95", "id": "00a82d1d-4745-4487-83e4-42bb7aaa3e95",
"prevId": "004e25a0-ecda-4b1a-aeab-46c8f78d5275", "prevId": "004e25a0-ecda-4b1a-aeab-46c8f78d5275",
"tables": { "tables": {
"volumes_table": { "volumes_table": {
"name": "volumes_table", "name": "volumes_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"path": { "path": {
"name": "path", "name": "path",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"type": { "type": {
"name": "type", "name": "type",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"status": { "status": {
"name": "status", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "'unmounted'" "default": "'unmounted'"
}, },
"last_error": { "last_error": {
"name": "last_error", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_health_check": { "last_health_check": {
"name": "last_health_check", "name": "last_health_check",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"config": { "config": {
"name": "config", "name": "config",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
} }
}, },
"indexes": { "indexes": {
"volumes_table_name_unique": { "volumes_table_name_unique": {
"name": "volumes_table_name_unique", "name": "volumes_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, }
"checkConstraints": {} },
} "views": {},
}, "enums": {},
"views": {}, "_meta": {
"enums": {}, "schemas": {},
"_meta": { "tables": {},
"schemas": {}, "columns": {}
"tables": {}, },
"columns": {} "internal": {
}, "indexes": {}
"internal": { }
"indexes": {}
}
} }

View file

@ -1,118 +1,116 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "b7f1ccb8-7bb3-486f-a103-b95b331a121f", "id": "b7f1ccb8-7bb3-486f-a103-b95b331a121f",
"prevId": "00a82d1d-4745-4487-83e4-42bb7aaa3e95", "prevId": "00a82d1d-4745-4487-83e4-42bb7aaa3e95",
"tables": { "tables": {
"volumes_table": { "volumes_table": {
"name": "volumes_table", "name": "volumes_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"path": { "path": {
"name": "path", "name": "path",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"type": { "type": {
"name": "type", "name": "type",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"status": { "status": {
"name": "status", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "'unmounted'" "default": "'unmounted'"
}, },
"last_error": { "last_error": {
"name": "last_error", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_health_check": { "last_health_check": {
"name": "last_health_check", "name": "last_health_check",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"config": { "config": {
"name": "config", "name": "config",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"auto_remount": { "auto_remount": {
"name": "auto_remount", "name": "auto_remount",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": 1 "default": 1
} }
}, },
"indexes": { "indexes": {
"volumes_table_name_unique": { "volumes_table_name_unique": {
"name": "volumes_table_name_unique", "name": "volumes_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, }
"checkConstraints": {} },
} "views": {},
}, "enums": {},
"views": {}, "_meta": {
"enums": {}, "schemas": {},
"_meta": { "tables": {},
"schemas": {}, "columns": {}
"tables": {}, },
"columns": {} "internal": {
}, "indexes": {}
"internal": { }
"indexes": {}
}
} }

View file

@ -1,118 +1,116 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3", "id": "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3",
"prevId": "b7f1ccb8-7bb3-486f-a103-b95b331a121f", "prevId": "b7f1ccb8-7bb3-486f-a103-b95b331a121f",
"tables": { "tables": {
"volumes_table": { "volumes_table": {
"name": "volumes_table", "name": "volumes_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"path": { "path": {
"name": "path", "name": "path",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"type": { "type": {
"name": "type", "name": "type",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"status": { "status": {
"name": "status", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "'unmounted'" "default": "'unmounted'"
}, },
"last_error": { "last_error": {
"name": "last_error", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_health_check": { "last_health_check": {
"name": "last_health_check", "name": "last_health_check",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"config": { "config": {
"name": "config", "name": "config",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"auto_remount": { "auto_remount": {
"name": "auto_remount", "name": "auto_remount",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": true "default": true
} }
}, },
"indexes": { "indexes": {
"volumes_table_name_unique": { "volumes_table_name_unique": {
"name": "volumes_table_name_unique", "name": "volumes_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, }
"checkConstraints": {} },
} "views": {},
}, "enums": {},
"views": {}, "_meta": {
"enums": {}, "schemas": {},
"_meta": { "tables": {},
"schemas": {}, "columns": {}
"tables": {}, },
"columns": {} "internal": {
}, "indexes": {}
"internal": { }
"indexes": {}
}
} }

View file

@ -1,226 +1,218 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "75f0aac0-aa63-4577-bfb6-4638a008935f", "id": "75f0aac0-aa63-4577-bfb6-4638a008935f",
"prevId": "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3", "prevId": "0b087a68-fbc6-4647-a6dc-e6322a3d4ee3",
"tables": { "tables": {
"sessions_table": { "sessions_table": {
"name": "sessions_table", "name": "sessions_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "text", "type": "text",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"user_id": { "user_id": {
"name": "user_id", "name": "user_id",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"expires_at": { "expires_at": {
"name": "expires_at", "name": "expires_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
} }
}, },
"indexes": {}, "indexes": {},
"foreignKeys": { "foreignKeys": {
"sessions_table_user_id_users_table_id_fk": { "sessions_table_user_id_users_table_id_fk": {
"name": "sessions_table_user_id_users_table_id_fk", "name": "sessions_table_user_id_users_table_id_fk",
"tableFrom": "sessions_table", "tableFrom": "sessions_table",
"tableTo": "users_table", "tableTo": "users_table",
"columnsFrom": [ "columnsFrom": ["user_id"],
"user_id" "columnsTo": ["id"],
], "onDelete": "cascade",
"columnsTo": [ "onUpdate": "no action"
"id" }
], },
"onDelete": "cascade", "compositePrimaryKeys": {},
"onUpdate": "no action" "uniqueConstraints": {},
} "checkConstraints": {}
}, },
"compositePrimaryKeys": {}, "users_table": {
"uniqueConstraints": {}, "name": "users_table",
"checkConstraints": {} "columns": {
}, "id": {
"users_table": { "name": "id",
"name": "users_table", "type": "integer",
"columns": { "primaryKey": true,
"id": { "notNull": true,
"name": "id", "autoincrement": true
"type": "integer", },
"primaryKey": true, "username": {
"notNull": true, "name": "username",
"autoincrement": true "type": "text",
}, "primaryKey": false,
"username": { "notNull": true,
"name": "username", "autoincrement": false
"type": "text", },
"primaryKey": false, "password_hash": {
"notNull": true, "name": "password_hash",
"autoincrement": false "type": "text",
}, "primaryKey": false,
"password_hash": { "notNull": true,
"name": "password_hash", "autoincrement": false
"type": "text", },
"primaryKey": false, "created_at": {
"notNull": true, "name": "created_at",
"autoincrement": false "type": "integer",
}, "primaryKey": false,
"created_at": { "notNull": true,
"name": "created_at", "autoincrement": false,
"type": "integer", "default": "(unixepoch())"
"primaryKey": false, },
"notNull": true, "updated_at": {
"autoincrement": false, "name": "updated_at",
"default": "(unixepoch())" "type": "integer",
}, "primaryKey": false,
"updated_at": { "notNull": true,
"name": "updated_at", "autoincrement": false,
"type": "integer", "default": "(unixepoch())"
"primaryKey": false, }
"notNull": true, },
"autoincrement": false, "indexes": {
"default": "(unixepoch())" "users_table_username_unique": {
} "name": "users_table_username_unique",
}, "columns": ["username"],
"indexes": { "isUnique": true
"users_table_username_unique": { }
"name": "users_table_username_unique", },
"columns": [ "foreignKeys": {},
"username" "compositePrimaryKeys": {},
], "uniqueConstraints": {},
"isUnique": true "checkConstraints": {}
} },
}, "volumes_table": {
"foreignKeys": {}, "name": "volumes_table",
"compositePrimaryKeys": {}, "columns": {
"uniqueConstraints": {}, "id": {
"checkConstraints": {} "name": "id",
}, "type": "integer",
"volumes_table": { "primaryKey": true,
"name": "volumes_table", "notNull": true,
"columns": { "autoincrement": true
"id": { },
"name": "id", "name": {
"type": "integer", "name": "name",
"primaryKey": true, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": true "notNull": true,
}, "autoincrement": false
"name": { },
"name": "name", "path": {
"type": "text", "name": "path",
"primaryKey": false, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false
"path": { },
"name": "path", "type": {
"type": "text", "name": "type",
"primaryKey": false, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false
"type": { },
"name": "type", "status": {
"type": "text", "name": "status",
"primaryKey": false, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"status": { "default": "'unmounted'"
"name": "status", },
"type": "text", "last_error": {
"primaryKey": false, "name": "last_error",
"notNull": true, "type": "text",
"autoincrement": false, "primaryKey": false,
"default": "'unmounted'" "notNull": false,
}, "autoincrement": false
"last_error": { },
"name": "last_error", "last_health_check": {
"type": "text", "name": "last_health_check",
"primaryKey": false, "type": "integer",
"notNull": false, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"last_health_check": { "default": "(unixepoch())"
"name": "last_health_check", },
"type": "integer", "created_at": {
"primaryKey": false, "name": "created_at",
"notNull": true, "type": "integer",
"autoincrement": false, "primaryKey": false,
"default": "(unixepoch())" "notNull": true,
}, "autoincrement": false,
"created_at": { "default": "(unixepoch())"
"name": "created_at", },
"type": "integer", "updated_at": {
"primaryKey": false, "name": "updated_at",
"notNull": true, "type": "integer",
"autoincrement": false, "primaryKey": false,
"default": "(unixepoch())" "notNull": true,
}, "autoincrement": false,
"updated_at": { "default": "(unixepoch())"
"name": "updated_at", },
"type": "integer", "config": {
"primaryKey": false, "name": "config",
"notNull": true, "type": "text",
"autoincrement": false, "primaryKey": false,
"default": "(unixepoch())" "notNull": true,
}, "autoincrement": false
"config": { },
"name": "config", "auto_remount": {
"type": "text", "name": "auto_remount",
"primaryKey": false, "type": "integer",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"auto_remount": { "default": true
"name": "auto_remount", }
"type": "integer", },
"primaryKey": false, "indexes": {
"notNull": true, "volumes_table_name_unique": {
"autoincrement": false, "name": "volumes_table_name_unique",
"default": true "columns": ["name"],
} "isUnique": true
}, }
"indexes": { },
"volumes_table_name_unique": { "foreignKeys": {},
"name": "volumes_table_name_unique", "compositePrimaryKeys": {},
"columns": [ "uniqueConstraints": {},
"name" "checkConstraints": {}
], }
"isUnique": true },
} "views": {},
}, "enums": {},
"foreignKeys": {}, "_meta": {
"compositePrimaryKeys": {}, "schemas": {},
"uniqueConstraints": {}, "tables": {},
"checkConstraints": {} "columns": {}
} },
}, "internal": {
"views": {}, "indexes": {}
"enums": {}, }
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
} }

View file

@ -1,311 +1,301 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca", "id": "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca",
"prevId": "75f0aac0-aa63-4577-bfb6-4638a008935f", "prevId": "75f0aac0-aa63-4577-bfb6-4638a008935f",
"tables": { "tables": {
"repositories_table": { "repositories_table": {
"name": "repositories_table", "name": "repositories_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "text", "type": "text",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"backend": { "backend": {
"name": "backend", "name": "backend",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"config": { "config": {
"name": "config", "name": "config",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"compression_mode": { "compression_mode": {
"name": "compression_mode", "name": "compression_mode",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'auto'" "default": "'auto'"
}, },
"status": { "status": {
"name": "status", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'unknown'" "default": "'unknown'"
}, },
"last_checked": { "last_checked": {
"name": "last_checked", "name": "last_checked",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_error": { "last_error": {
"name": "last_error", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
} }
}, },
"indexes": { "indexes": {
"repositories_table_name_unique": { "repositories_table_name_unique": {
"name": "repositories_table_name_unique", "name": "repositories_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, },
"checkConstraints": {} "sessions_table": {
}, "name": "sessions_table",
"sessions_table": { "columns": {
"name": "sessions_table", "id": {
"columns": { "name": "id",
"id": { "type": "text",
"name": "id", "primaryKey": true,
"type": "text", "notNull": true,
"primaryKey": true, "autoincrement": false
"notNull": true, },
"autoincrement": false "user_id": {
}, "name": "user_id",
"user_id": { "type": "integer",
"name": "user_id", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false
"notNull": true, },
"autoincrement": false "expires_at": {
}, "name": "expires_at",
"expires_at": { "type": "integer",
"name": "expires_at", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false
"notNull": true, },
"autoincrement": false "created_at": {
}, "name": "created_at",
"created_at": { "type": "integer",
"name": "created_at", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "(unixepoch())"
"autoincrement": false, }
"default": "(unixepoch())" },
} "indexes": {},
}, "foreignKeys": {
"indexes": {}, "sessions_table_user_id_users_table_id_fk": {
"foreignKeys": { "name": "sessions_table_user_id_users_table_id_fk",
"sessions_table_user_id_users_table_id_fk": { "tableFrom": "sessions_table",
"name": "sessions_table_user_id_users_table_id_fk", "tableTo": "users_table",
"tableFrom": "sessions_table", "columnsFrom": ["user_id"],
"tableTo": "users_table", "columnsTo": ["id"],
"columnsFrom": [ "onDelete": "cascade",
"user_id" "onUpdate": "no action"
], }
"columnsTo": [ },
"id" "compositePrimaryKeys": {},
], "uniqueConstraints": {},
"onDelete": "cascade", "checkConstraints": {}
"onUpdate": "no action" },
} "users_table": {
}, "name": "users_table",
"compositePrimaryKeys": {}, "columns": {
"uniqueConstraints": {}, "id": {
"checkConstraints": {} "name": "id",
}, "type": "integer",
"users_table": { "primaryKey": true,
"name": "users_table", "notNull": true,
"columns": { "autoincrement": true
"id": { },
"name": "id", "username": {
"type": "integer", "name": "username",
"primaryKey": true, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": true "notNull": true,
}, "autoincrement": false
"username": { },
"name": "username", "password_hash": {
"type": "text", "name": "password_hash",
"primaryKey": false, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false
"password_hash": { },
"name": "password_hash", "created_at": {
"type": "text", "name": "created_at",
"primaryKey": false, "type": "integer",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"created_at": { "default": "(unixepoch())"
"name": "created_at", },
"type": "integer", "updated_at": {
"primaryKey": false, "name": "updated_at",
"notNull": true, "type": "integer",
"autoincrement": false, "primaryKey": false,
"default": "(unixepoch())" "notNull": true,
}, "autoincrement": false,
"updated_at": { "default": "(unixepoch())"
"name": "updated_at", }
"type": "integer", },
"primaryKey": false, "indexes": {
"notNull": true, "users_table_username_unique": {
"autoincrement": false, "name": "users_table_username_unique",
"default": "(unixepoch())" "columns": ["username"],
} "isUnique": true
}, }
"indexes": { },
"users_table_username_unique": { "foreignKeys": {},
"name": "users_table_username_unique", "compositePrimaryKeys": {},
"columns": [ "uniqueConstraints": {},
"username" "checkConstraints": {}
], },
"isUnique": true "volumes_table": {
} "name": "volumes_table",
}, "columns": {
"foreignKeys": {}, "id": {
"compositePrimaryKeys": {}, "name": "id",
"uniqueConstraints": {}, "type": "integer",
"checkConstraints": {} "primaryKey": true,
}, "notNull": true,
"volumes_table": { "autoincrement": true
"name": "volumes_table", },
"columns": { "name": {
"id": { "name": "name",
"name": "id", "type": "text",
"type": "integer", "primaryKey": false,
"primaryKey": true, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": true },
}, "type": {
"name": { "name": "type",
"name": "name", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "status": {
"type": { "name": "status",
"name": "type", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": "'unmounted'"
}, },
"status": { "last_error": {
"name": "status", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": false,
"autoincrement": false, "autoincrement": false
"default": "'unmounted'" },
}, "last_health_check": {
"last_error": { "name": "last_health_check",
"name": "last_error", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": false, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, },
"last_health_check": { "created_at": {
"name": "last_health_check", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "updated_at": {
"name": "created_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "config": {
"name": "updated_at", "name": "config",
"type": "integer", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false
"default": "(unixepoch())" },
}, "auto_remount": {
"config": { "name": "auto_remount",
"name": "config", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": true
}, }
"auto_remount": { },
"name": "auto_remount", "indexes": {
"type": "integer", "volumes_table_name_unique": {
"primaryKey": false, "name": "volumes_table_name_unique",
"notNull": true, "columns": ["name"],
"autoincrement": false, "isUnique": true
"default": true }
} },
}, "foreignKeys": {},
"indexes": { "compositePrimaryKeys": {},
"volumes_table_name_unique": { "uniqueConstraints": {},
"name": "volumes_table_name_unique", "checkConstraints": {}
"columns": [ }
"name" },
], "views": {},
"isUnique": true "enums": {},
} "_meta": {
}, "schemas": {},
"foreignKeys": {}, "tables": {},
"compositePrimaryKeys": {}, "columns": {}
"uniqueConstraints": {}, },
"checkConstraints": {} "internal": {
} "indexes": {}
}, }
"views": {},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
} }

View file

@ -1,313 +1,303 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "866b1d3b-454b-4cf7-9835-a0f60d048b6e", "id": "866b1d3b-454b-4cf7-9835-a0f60d048b6e",
"prevId": "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca", "prevId": "16f360b6-fb61-44f3-a7f7-2bae78ebf7ca",
"tables": { "tables": {
"repositories_table": { "repositories_table": {
"name": "repositories_table", "name": "repositories_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "text", "type": "text",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"name": { "name": {
"name": "name", "name": "name",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"type": { "type": {
"name": "type", "name": "type",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"config": { "config": {
"name": "config", "name": "config",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"compression_mode": { "compression_mode": {
"name": "compression_mode", "name": "compression_mode",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'auto'" "default": "'auto'"
}, },
"status": { "status": {
"name": "status", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'unknown'" "default": "'unknown'"
}, },
"last_checked": { "last_checked": {
"name": "last_checked", "name": "last_checked",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_error": { "last_error": {
"name": "last_error", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
} }
}, },
"indexes": { "indexes": {
"repositories_table_name_unique": { "repositories_table_name_unique": {
"name": "repositories_table_name_unique", "name": "repositories_table_name_unique",
"columns": [ "columns": ["name"],
"name" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {},
}, "compositePrimaryKeys": {},
"foreignKeys": {}, "uniqueConstraints": {},
"compositePrimaryKeys": {}, "checkConstraints": {}
"uniqueConstraints": {}, },
"checkConstraints": {} "sessions_table": {
}, "name": "sessions_table",
"sessions_table": { "columns": {
"name": "sessions_table", "id": {
"columns": { "name": "id",
"id": { "type": "text",
"name": "id", "primaryKey": true,
"type": "text", "notNull": true,
"primaryKey": true, "autoincrement": false
"notNull": true, },
"autoincrement": false "user_id": {
}, "name": "user_id",
"user_id": { "type": "integer",
"name": "user_id", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false
"notNull": true, },
"autoincrement": false "expires_at": {
}, "name": "expires_at",
"expires_at": { "type": "integer",
"name": "expires_at", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false
"notNull": true, },
"autoincrement": false "created_at": {
}, "name": "created_at",
"created_at": { "type": "integer",
"name": "created_at", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "(unixepoch())"
"autoincrement": false, }
"default": "(unixepoch())" },
} "indexes": {},
}, "foreignKeys": {
"indexes": {}, "sessions_table_user_id_users_table_id_fk": {
"foreignKeys": { "name": "sessions_table_user_id_users_table_id_fk",
"sessions_table_user_id_users_table_id_fk": { "tableFrom": "sessions_table",
"name": "sessions_table_user_id_users_table_id_fk", "tableTo": "users_table",
"tableFrom": "sessions_table", "columnsFrom": ["user_id"],
"tableTo": "users_table", "columnsTo": ["id"],
"columnsFrom": [ "onDelete": "cascade",
"user_id" "onUpdate": "no action"
], }
"columnsTo": [ },
"id" "compositePrimaryKeys": {},
], "uniqueConstraints": {},
"onDelete": "cascade", "checkConstraints": {}
"onUpdate": "no action" },
} "users_table": {
}, "name": "users_table",
"compositePrimaryKeys": {}, "columns": {
"uniqueConstraints": {}, "id": {
"checkConstraints": {} "name": "id",
}, "type": "integer",
"users_table": { "primaryKey": true,
"name": "users_table", "notNull": true,
"columns": { "autoincrement": true
"id": { },
"name": "id", "username": {
"type": "integer", "name": "username",
"primaryKey": true, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": true "notNull": true,
}, "autoincrement": false
"username": { },
"name": "username", "password_hash": {
"type": "text", "name": "password_hash",
"primaryKey": false, "type": "text",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false
"password_hash": { },
"name": "password_hash", "created_at": {
"type": "text", "name": "created_at",
"primaryKey": false, "type": "integer",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"created_at": { "default": "(unixepoch())"
"name": "created_at", },
"type": "integer", "updated_at": {
"primaryKey": false, "name": "updated_at",
"notNull": true, "type": "integer",
"autoincrement": false, "primaryKey": false,
"default": "(unixepoch())" "notNull": true,
}, "autoincrement": false,
"updated_at": { "default": "(unixepoch())"
"name": "updated_at", }
"type": "integer", },
"primaryKey": false, "indexes": {
"notNull": true, "users_table_username_unique": {
"autoincrement": false, "name": "users_table_username_unique",
"default": "(unixepoch())" "columns": ["username"],
} "isUnique": true
}, }
"indexes": { },
"users_table_username_unique": { "foreignKeys": {},
"name": "users_table_username_unique", "compositePrimaryKeys": {},
"columns": [ "uniqueConstraints": {},
"username" "checkConstraints": {}
], },
"isUnique": true "volumes_table": {
} "name": "volumes_table",
}, "columns": {
"foreignKeys": {}, "id": {
"compositePrimaryKeys": {}, "name": "id",
"uniqueConstraints": {}, "type": "integer",
"checkConstraints": {} "primaryKey": true,
}, "notNull": true,
"volumes_table": { "autoincrement": true
"name": "volumes_table", },
"columns": { "name": {
"id": { "name": "name",
"name": "id", "type": "text",
"type": "integer", "primaryKey": false,
"primaryKey": true, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": true },
}, "type": {
"name": { "name": "type",
"name": "name", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "status": {
"type": { "name": "status",
"name": "type", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": "'unmounted'"
}, },
"status": { "last_error": {
"name": "status", "name": "last_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": false,
"autoincrement": false, "autoincrement": false
"default": "'unmounted'" },
}, "last_health_check": {
"last_error": { "name": "last_health_check",
"name": "last_error", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": false, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, },
"last_health_check": { "created_at": {
"name": "last_health_check", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "updated_at": {
"name": "created_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "config": {
"name": "updated_at", "name": "config",
"type": "integer", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false
"default": "(unixepoch())" },
}, "auto_remount": {
"config": { "name": "auto_remount",
"name": "config", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": true
}, }
"auto_remount": { },
"name": "auto_remount", "indexes": {
"type": "integer", "volumes_table_name_unique": {
"primaryKey": false, "name": "volumes_table_name_unique",
"notNull": true, "columns": ["name"],
"autoincrement": false, "isUnique": true
"default": true }
} },
}, "foreignKeys": {},
"indexes": { "compositePrimaryKeys": {},
"volumes_table_name_unique": { "uniqueConstraints": {},
"name": "volumes_table_name_unique", "checkConstraints": {}
"columns": [ }
"name" },
], "views": {},
"isUnique": true "enums": {},
} "_meta": {
}, "schemas": {},
"foreignKeys": {}, "tables": {},
"compositePrimaryKeys": {}, "columns": {
"uniqueConstraints": {}, "\"repositories_table\".\"backend\"": "\"repositories_table\".\"type\""
"checkConstraints": {} }
} },
}, "internal": {
"views": {}, "indexes": {}
"enums": {}, }
"_meta": {
"schemas": {},
"tables": {},
"columns": {
"\"repositories_table\".\"backend\"": "\"repositories_table\".\"type\""
}
},
"internal": {
"indexes": {}
}
} }

View file

@ -1,459 +1,439 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "6e35f329-5431-47fd-8862-8fb06b0afe4b", "id": "6e35f329-5431-47fd-8862-8fb06b0afe4b",
"prevId": "866b1d3b-454b-4cf7-9835-a0f60d048b6e", "prevId": "866b1d3b-454b-4cf7-9835-a0f60d048b6e",
"tables": { "tables": {
"backup_schedules_table": { "backup_schedules_table": {
"name": "backup_schedules_table", "name": "backup_schedules_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"volume_id": { "volume_id": {
"name": "volume_id", "name": "volume_id",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"repository_id": { "repository_id": {
"name": "repository_id", "name": "repository_id",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"enabled": { "enabled": {
"name": "enabled", "name": "enabled",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": true "default": true
}, },
"cron_expression": { "cron_expression": {
"name": "cron_expression", "name": "cron_expression",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"retention_policy": { "retention_policy": {
"name": "retention_policy", "name": "retention_policy",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"exclude_patterns": { "exclude_patterns": {
"name": "exclude_patterns", "name": "exclude_patterns",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'[]'" "default": "'[]'"
}, },
"include_patterns": { "include_patterns": {
"name": "include_patterns", "name": "include_patterns",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'[]'" "default": "'[]'"
}, },
"last_backup_at": { "last_backup_at": {
"name": "last_backup_at", "name": "last_backup_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_backup_status": { "last_backup_status": {
"name": "last_backup_status", "name": "last_backup_status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_backup_error": { "last_backup_error": {
"name": "last_backup_error", "name": "last_backup_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"next_backup_at": { "next_backup_at": {
"name": "next_backup_at", "name": "next_backup_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
} }
}, },
"indexes": { "indexes": {
"backup_schedules_table_volume_id_unique": { "backup_schedules_table_volume_id_unique": {
"name": "backup_schedules_table_volume_id_unique", "name": "backup_schedules_table_volume_id_unique",
"columns": [ "columns": ["volume_id"],
"volume_id" "isUnique": true
], }
"isUnique": true },
} "foreignKeys": {
}, "backup_schedules_table_volume_id_volumes_table_id_fk": {
"foreignKeys": { "name": "backup_schedules_table_volume_id_volumes_table_id_fk",
"backup_schedules_table_volume_id_volumes_table_id_fk": { "tableFrom": "backup_schedules_table",
"name": "backup_schedules_table_volume_id_volumes_table_id_fk", "tableTo": "volumes_table",
"tableFrom": "backup_schedules_table", "columnsFrom": ["volume_id"],
"tableTo": "volumes_table", "columnsTo": ["id"],
"columnsFrom": [ "onDelete": "cascade",
"volume_id" "onUpdate": "no action"
], },
"columnsTo": [ "backup_schedules_table_repository_id_repositories_table_id_fk": {
"id" "name": "backup_schedules_table_repository_id_repositories_table_id_fk",
], "tableFrom": "backup_schedules_table",
"onDelete": "cascade", "tableTo": "repositories_table",
"onUpdate": "no action" "columnsFrom": ["repository_id"],
}, "columnsTo": ["id"],
"backup_schedules_table_repository_id_repositories_table_id_fk": { "onDelete": "cascade",
"name": "backup_schedules_table_repository_id_repositories_table_id_fk", "onUpdate": "no action"
"tableFrom": "backup_schedules_table", }
"tableTo": "repositories_table", },
"columnsFrom": [ "compositePrimaryKeys": {},
"repository_id" "uniqueConstraints": {},
], "checkConstraints": {}
"columnsTo": [ },
"id" "repositories_table": {
], "name": "repositories_table",
"onDelete": "cascade", "columns": {
"onUpdate": "no action" "id": {
} "name": "id",
}, "type": "text",
"compositePrimaryKeys": {}, "primaryKey": true,
"uniqueConstraints": {}, "notNull": true,
"checkConstraints": {} "autoincrement": false
}, },
"repositories_table": { "name": {
"name": "repositories_table", "name": "name",
"columns": { "type": "text",
"id": { "primaryKey": false,
"name": "id", "notNull": true,
"type": "text", "autoincrement": false
"primaryKey": true, },
"notNull": true, "type": {
"autoincrement": false "name": "type",
}, "type": "text",
"name": { "primaryKey": false,
"name": "name", "notNull": true,
"type": "text", "autoincrement": false
"primaryKey": false, },
"notNull": true, "config": {
"autoincrement": false "name": "config",
}, "type": "text",
"type": { "primaryKey": false,
"name": "type", "notNull": true,
"type": "text", "autoincrement": false
"primaryKey": false, },
"notNull": true, "compression_mode": {
"autoincrement": false "name": "compression_mode",
}, "type": "text",
"config": { "primaryKey": false,
"name": "config", "notNull": false,
"type": "text", "autoincrement": false,
"primaryKey": false, "default": "'auto'"
"notNull": true, },
"autoincrement": false "status": {
}, "name": "status",
"compression_mode": { "type": "text",
"name": "compression_mode", "primaryKey": false,
"type": "text", "notNull": false,
"primaryKey": false, "autoincrement": false,
"notNull": false, "default": "'unknown'"
"autoincrement": false, },
"default": "'auto'" "last_checked": {
}, "name": "last_checked",
"status": { "type": "integer",
"name": "status", "primaryKey": false,
"type": "text", "notNull": false,
"primaryKey": false, "autoincrement": false
"notNull": false, },
"autoincrement": false, "last_error": {
"default": "'unknown'" "name": "last_error",
}, "type": "text",
"last_checked": { "primaryKey": false,
"name": "last_checked", "notNull": false,
"type": "integer", "autoincrement": false
"primaryKey": false, },
"notNull": false, "created_at": {
"autoincrement": false "name": "created_at",
}, "type": "integer",
"last_error": { "primaryKey": false,
"name": "last_error", "notNull": true,
"type": "text", "autoincrement": false,
"primaryKey": false, "default": "(unixepoch())"
"notNull": false, },
"autoincrement": false "updated_at": {
}, "name": "updated_at",
"created_at": { "type": "integer",
"name": "created_at", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "(unixepoch())"
"autoincrement": false, }
"default": "(unixepoch())" },
}, "indexes": {
"updated_at": { "repositories_table_name_unique": {
"name": "updated_at", "name": "repositories_table_name_unique",
"type": "integer", "columns": ["name"],
"primaryKey": false, "isUnique": true
"notNull": true, }
"autoincrement": false, },
"default": "(unixepoch())" "foreignKeys": {},
} "compositePrimaryKeys": {},
}, "uniqueConstraints": {},
"indexes": { "checkConstraints": {}
"repositories_table_name_unique": { },
"name": "repositories_table_name_unique", "sessions_table": {
"columns": [ "name": "sessions_table",
"name" "columns": {
], "id": {
"isUnique": true "name": "id",
} "type": "text",
}, "primaryKey": true,
"foreignKeys": {}, "notNull": true,
"compositePrimaryKeys": {}, "autoincrement": false
"uniqueConstraints": {}, },
"checkConstraints": {} "user_id": {
}, "name": "user_id",
"sessions_table": { "type": "integer",
"name": "sessions_table", "primaryKey": false,
"columns": { "notNull": true,
"id": { "autoincrement": false
"name": "id", },
"type": "text", "expires_at": {
"primaryKey": true, "name": "expires_at",
"notNull": true, "type": "integer",
"autoincrement": false "primaryKey": false,
}, "notNull": true,
"user_id": { "autoincrement": false
"name": "user_id", },
"type": "integer", "created_at": {
"primaryKey": false, "name": "created_at",
"notNull": true, "type": "integer",
"autoincrement": false "primaryKey": false,
}, "notNull": true,
"expires_at": { "autoincrement": false,
"name": "expires_at", "default": "(unixepoch())"
"type": "integer", }
"primaryKey": false, },
"notNull": true, "indexes": {},
"autoincrement": false "foreignKeys": {
}, "sessions_table_user_id_users_table_id_fk": {
"created_at": { "name": "sessions_table_user_id_users_table_id_fk",
"name": "created_at", "tableFrom": "sessions_table",
"type": "integer", "tableTo": "users_table",
"primaryKey": false, "columnsFrom": ["user_id"],
"notNull": true, "columnsTo": ["id"],
"autoincrement": false, "onDelete": "cascade",
"default": "(unixepoch())" "onUpdate": "no action"
} }
}, },
"indexes": {}, "compositePrimaryKeys": {},
"foreignKeys": { "uniqueConstraints": {},
"sessions_table_user_id_users_table_id_fk": { "checkConstraints": {}
"name": "sessions_table_user_id_users_table_id_fk", },
"tableFrom": "sessions_table", "users_table": {
"tableTo": "users_table", "name": "users_table",
"columnsFrom": [ "columns": {
"user_id" "id": {
], "name": "id",
"columnsTo": [ "type": "integer",
"id" "primaryKey": true,
], "notNull": true,
"onDelete": "cascade", "autoincrement": true
"onUpdate": "no action" },
} "username": {
}, "name": "username",
"compositePrimaryKeys": {}, "type": "text",
"uniqueConstraints": {}, "primaryKey": false,
"checkConstraints": {} "notNull": true,
}, "autoincrement": false
"users_table": { },
"name": "users_table", "password_hash": {
"columns": { "name": "password_hash",
"id": { "type": "text",
"name": "id", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": true, "autoincrement": false
"notNull": true, },
"autoincrement": true "created_at": {
}, "name": "created_at",
"username": { "type": "integer",
"name": "username", "primaryKey": false,
"type": "text", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "(unixepoch())"
"autoincrement": false },
}, "updated_at": {
"password_hash": { "name": "updated_at",
"name": "password_hash", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, }
"created_at": { },
"name": "created_at", "indexes": {
"type": "integer", "users_table_username_unique": {
"primaryKey": false, "name": "users_table_username_unique",
"notNull": true, "columns": ["username"],
"autoincrement": false, "isUnique": true
"default": "(unixepoch())" }
}, },
"updated_at": { "foreignKeys": {},
"name": "updated_at", "compositePrimaryKeys": {},
"type": "integer", "uniqueConstraints": {},
"primaryKey": false, "checkConstraints": {}
"notNull": true, },
"autoincrement": false, "volumes_table": {
"default": "(unixepoch())" "name": "volumes_table",
} "columns": {
}, "id": {
"indexes": { "name": "id",
"users_table_username_unique": { "type": "integer",
"name": "users_table_username_unique", "primaryKey": true,
"columns": [ "notNull": true,
"username" "autoincrement": true
], },
"isUnique": true "name": {
} "name": "name",
}, "type": "text",
"foreignKeys": {}, "primaryKey": false,
"compositePrimaryKeys": {}, "notNull": true,
"uniqueConstraints": {}, "autoincrement": false
"checkConstraints": {} },
}, "type": {
"volumes_table": { "name": "type",
"name": "volumes_table", "type": "text",
"columns": { "primaryKey": false,
"id": { "notNull": true,
"name": "id", "autoincrement": false
"type": "integer", },
"primaryKey": true, "status": {
"notNull": true, "name": "status",
"autoincrement": true "type": "text",
}, "primaryKey": false,
"name": { "notNull": true,
"name": "name", "autoincrement": false,
"type": "text", "default": "'unmounted'"
"primaryKey": false, },
"notNull": true, "last_error": {
"autoincrement": false "name": "last_error",
}, "type": "text",
"type": { "primaryKey": false,
"name": "type", "notNull": false,
"type": "text", "autoincrement": false
"primaryKey": false, },
"notNull": true, "last_health_check": {
"autoincrement": false "name": "last_health_check",
}, "type": "integer",
"status": { "primaryKey": false,
"name": "status", "notNull": true,
"type": "text", "autoincrement": false,
"primaryKey": false, "default": "(unixepoch())"
"notNull": true, },
"autoincrement": false, "created_at": {
"default": "'unmounted'" "name": "created_at",
}, "type": "integer",
"last_error": { "primaryKey": false,
"name": "last_error", "notNull": true,
"type": "text", "autoincrement": false,
"primaryKey": false, "default": "(unixepoch())"
"notNull": false, },
"autoincrement": false "updated_at": {
}, "name": "updated_at",
"last_health_check": { "type": "integer",
"name": "last_health_check", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "(unixepoch())"
"autoincrement": false, },
"default": "(unixepoch())" "config": {
}, "name": "config",
"created_at": { "type": "text",
"name": "created_at", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": false, "autoincrement": false
"notNull": true, },
"autoincrement": false, "auto_remount": {
"default": "(unixepoch())" "name": "auto_remount",
}, "type": "integer",
"updated_at": { "primaryKey": false,
"name": "updated_at", "notNull": true,
"type": "integer", "autoincrement": false,
"primaryKey": false, "default": true
"notNull": true, }
"autoincrement": false, },
"default": "(unixepoch())" "indexes": {
}, "volumes_table_name_unique": {
"config": { "name": "volumes_table_name_unique",
"name": "config", "columns": ["name"],
"type": "text", "isUnique": true
"primaryKey": false, }
"notNull": true, },
"autoincrement": false "foreignKeys": {},
}, "compositePrimaryKeys": {},
"auto_remount": { "uniqueConstraints": {},
"name": "auto_remount", "checkConstraints": {}
"type": "integer", }
"primaryKey": false, },
"notNull": true, "views": {},
"autoincrement": false, "enums": {},
"default": true "_meta": {
} "schemas": {},
}, "tables": {},
"indexes": { "columns": {}
"volumes_table_name_unique": { },
"name": "volumes_table_name_unique", "internal": {
"columns": [ "indexes": {}
"name" }
],
"isUnique": true
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
}
},
"views": {},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
} }

View file

@ -1,451 +1,433 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d", "id": "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d",
"prevId": "6e35f329-5431-47fd-8862-8fb06b0afe4b", "prevId": "6e35f329-5431-47fd-8862-8fb06b0afe4b",
"tables": { "tables": {
"backup_schedules_table": { "backup_schedules_table": {
"name": "backup_schedules_table", "name": "backup_schedules_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"volume_id": { "volume_id": {
"name": "volume_id", "name": "volume_id",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"repository_id": { "repository_id": {
"name": "repository_id", "name": "repository_id",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"enabled": { "enabled": {
"name": "enabled", "name": "enabled",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": true "default": true
}, },
"cron_expression": { "cron_expression": {
"name": "cron_expression", "name": "cron_expression",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"retention_policy": { "retention_policy": {
"name": "retention_policy", "name": "retention_policy",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"exclude_patterns": { "exclude_patterns": {
"name": "exclude_patterns", "name": "exclude_patterns",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'[]'" "default": "'[]'"
}, },
"include_patterns": { "include_patterns": {
"name": "include_patterns", "name": "include_patterns",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'[]'" "default": "'[]'"
}, },
"last_backup_at": { "last_backup_at": {
"name": "last_backup_at", "name": "last_backup_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_backup_status": { "last_backup_status": {
"name": "last_backup_status", "name": "last_backup_status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_backup_error": { "last_backup_error": {
"name": "last_backup_error", "name": "last_backup_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"next_backup_at": { "next_backup_at": {
"name": "next_backup_at", "name": "next_backup_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
} }
}, },
"indexes": {}, "indexes": {},
"foreignKeys": { "foreignKeys": {
"backup_schedules_table_volume_id_volumes_table_id_fk": { "backup_schedules_table_volume_id_volumes_table_id_fk": {
"name": "backup_schedules_table_volume_id_volumes_table_id_fk", "name": "backup_schedules_table_volume_id_volumes_table_id_fk",
"tableFrom": "backup_schedules_table", "tableFrom": "backup_schedules_table",
"tableTo": "volumes_table", "tableTo": "volumes_table",
"columnsFrom": [ "columnsFrom": ["volume_id"],
"volume_id" "columnsTo": ["id"],
], "onDelete": "cascade",
"columnsTo": [ "onUpdate": "no action"
"id" },
], "backup_schedules_table_repository_id_repositories_table_id_fk": {
"onDelete": "cascade", "name": "backup_schedules_table_repository_id_repositories_table_id_fk",
"onUpdate": "no action" "tableFrom": "backup_schedules_table",
}, "tableTo": "repositories_table",
"backup_schedules_table_repository_id_repositories_table_id_fk": { "columnsFrom": ["repository_id"],
"name": "backup_schedules_table_repository_id_repositories_table_id_fk", "columnsTo": ["id"],
"tableFrom": "backup_schedules_table", "onDelete": "cascade",
"tableTo": "repositories_table", "onUpdate": "no action"
"columnsFrom": [ }
"repository_id" },
], "compositePrimaryKeys": {},
"columnsTo": [ "uniqueConstraints": {},
"id" "checkConstraints": {}
], },
"onDelete": "cascade", "repositories_table": {
"onUpdate": "no action" "name": "repositories_table",
} "columns": {
}, "id": {
"compositePrimaryKeys": {}, "name": "id",
"uniqueConstraints": {}, "type": "text",
"checkConstraints": {} "primaryKey": true,
}, "notNull": true,
"repositories_table": { "autoincrement": false
"name": "repositories_table", },
"columns": { "name": {
"id": { "name": "name",
"name": "id", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": true, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "type": {
"name": { "name": "type",
"name": "name", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "config": {
"type": { "name": "config",
"name": "type", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "compression_mode": {
"config": { "name": "compression_mode",
"name": "config", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": false,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": "'auto'"
}, },
"compression_mode": { "status": {
"name": "compression_mode", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'auto'" "default": "'unknown'"
}, },
"status": { "last_checked": {
"name": "status", "name": "last_checked",
"type": "text", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false
"default": "'unknown'" },
}, "last_error": {
"last_checked": { "name": "last_error",
"name": "last_checked", "type": "text",
"type": "integer", "primaryKey": false,
"primaryKey": false, "notNull": false,
"notNull": false, "autoincrement": false
"autoincrement": false },
}, "created_at": {
"last_error": { "name": "created_at",
"name": "last_error", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": false, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, },
"created_at": { "updated_at": {
"name": "created_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, }
"updated_at": { },
"name": "updated_at", "indexes": {
"type": "integer", "repositories_table_name_unique": {
"primaryKey": false, "name": "repositories_table_name_unique",
"notNull": true, "columns": ["name"],
"autoincrement": false, "isUnique": true
"default": "(unixepoch())" }
} },
}, "foreignKeys": {},
"indexes": { "compositePrimaryKeys": {},
"repositories_table_name_unique": { "uniqueConstraints": {},
"name": "repositories_table_name_unique", "checkConstraints": {}
"columns": [ },
"name" "sessions_table": {
], "name": "sessions_table",
"isUnique": true "columns": {
} "id": {
}, "name": "id",
"foreignKeys": {}, "type": "text",
"compositePrimaryKeys": {}, "primaryKey": true,
"uniqueConstraints": {}, "notNull": true,
"checkConstraints": {} "autoincrement": false
}, },
"sessions_table": { "user_id": {
"name": "sessions_table", "name": "user_id",
"columns": { "type": "integer",
"id": { "primaryKey": false,
"name": "id", "notNull": true,
"type": "text", "autoincrement": false
"primaryKey": true, },
"notNull": true, "expires_at": {
"autoincrement": false "name": "expires_at",
}, "type": "integer",
"user_id": { "primaryKey": false,
"name": "user_id", "notNull": true,
"type": "integer", "autoincrement": false
"primaryKey": false, },
"notNull": true, "created_at": {
"autoincrement": false "name": "created_at",
}, "type": "integer",
"expires_at": { "primaryKey": false,
"name": "expires_at", "notNull": true,
"type": "integer", "autoincrement": false,
"primaryKey": false, "default": "(unixepoch())"
"notNull": true, }
"autoincrement": false },
}, "indexes": {},
"created_at": { "foreignKeys": {
"name": "created_at", "sessions_table_user_id_users_table_id_fk": {
"type": "integer", "name": "sessions_table_user_id_users_table_id_fk",
"primaryKey": false, "tableFrom": "sessions_table",
"notNull": true, "tableTo": "users_table",
"autoincrement": false, "columnsFrom": ["user_id"],
"default": "(unixepoch())" "columnsTo": ["id"],
} "onDelete": "cascade",
}, "onUpdate": "no action"
"indexes": {}, }
"foreignKeys": { },
"sessions_table_user_id_users_table_id_fk": { "compositePrimaryKeys": {},
"name": "sessions_table_user_id_users_table_id_fk", "uniqueConstraints": {},
"tableFrom": "sessions_table", "checkConstraints": {}
"tableTo": "users_table", },
"columnsFrom": [ "users_table": {
"user_id" "name": "users_table",
], "columns": {
"columnsTo": [ "id": {
"id" "name": "id",
], "type": "integer",
"onDelete": "cascade", "primaryKey": true,
"onUpdate": "no action" "notNull": true,
} "autoincrement": true
}, },
"compositePrimaryKeys": {}, "username": {
"uniqueConstraints": {}, "name": "username",
"checkConstraints": {} "type": "text",
}, "primaryKey": false,
"users_table": { "notNull": true,
"name": "users_table", "autoincrement": false
"columns": { },
"id": { "password_hash": {
"name": "id", "name": "password_hash",
"type": "integer", "type": "text",
"primaryKey": true, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": false
}, },
"username": { "created_at": {
"name": "username", "name": "created_at",
"type": "text", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false,
}, "default": "(unixepoch())"
"password_hash": { },
"name": "password_hash", "updated_at": {
"type": "text", "name": "updated_at",
"primaryKey": false, "type": "integer",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"created_at": { "default": "(unixepoch())"
"name": "created_at", }
"type": "integer", },
"primaryKey": false, "indexes": {
"notNull": true, "users_table_username_unique": {
"autoincrement": false, "name": "users_table_username_unique",
"default": "(unixepoch())" "columns": ["username"],
}, "isUnique": true
"updated_at": { }
"name": "updated_at", },
"type": "integer", "foreignKeys": {},
"primaryKey": false, "compositePrimaryKeys": {},
"notNull": true, "uniqueConstraints": {},
"autoincrement": false, "checkConstraints": {}
"default": "(unixepoch())" },
} "volumes_table": {
}, "name": "volumes_table",
"indexes": { "columns": {
"users_table_username_unique": { "id": {
"name": "users_table_username_unique", "name": "id",
"columns": [ "type": "integer",
"username" "primaryKey": true,
], "notNull": true,
"isUnique": true "autoincrement": true
} },
}, "name": {
"foreignKeys": {}, "name": "name",
"compositePrimaryKeys": {}, "type": "text",
"uniqueConstraints": {}, "primaryKey": false,
"checkConstraints": {} "notNull": true,
}, "autoincrement": false
"volumes_table": { },
"name": "volumes_table", "type": {
"columns": { "name": "type",
"id": { "type": "text",
"name": "id", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": true, "autoincrement": false
"notNull": true, },
"autoincrement": true "status": {
}, "name": "status",
"name": { "type": "text",
"name": "name", "primaryKey": false,
"type": "text", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "'unmounted'"
"autoincrement": false },
}, "last_error": {
"type": { "name": "last_error",
"name": "type", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": false,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "last_health_check": {
"status": { "name": "last_health_check",
"name": "status", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false, "default": "(unixepoch())"
"default": "'unmounted'" },
}, "created_at": {
"last_error": { "name": "created_at",
"name": "last_error", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": false, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, },
"last_health_check": { "updated_at": {
"name": "last_health_check", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "config": {
"name": "created_at", "name": "config",
"type": "integer", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false
"default": "(unixepoch())" },
}, "auto_remount": {
"updated_at": { "name": "auto_remount",
"name": "updated_at", "type": "integer",
"type": "integer", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false, "default": true
"default": "(unixepoch())" }
}, },
"config": { "indexes": {
"name": "config", "volumes_table_name_unique": {
"type": "text", "name": "volumes_table_name_unique",
"primaryKey": false, "columns": ["name"],
"notNull": true, "isUnique": true
"autoincrement": false }
}, },
"auto_remount": { "foreignKeys": {},
"name": "auto_remount", "compositePrimaryKeys": {},
"type": "integer", "uniqueConstraints": {},
"primaryKey": false, "checkConstraints": {}
"notNull": true, }
"autoincrement": false, },
"default": true "views": {},
} "enums": {},
}, "_meta": {
"indexes": { "schemas": {},
"volumes_table_name_unique": { "tables": {},
"name": "volumes_table_name_unique", "columns": {}
"columns": [ },
"name" "internal": {
], "indexes": {}
"isUnique": true }
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
}
},
"views": {},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
} }

View file

@ -1,459 +1,441 @@
{ {
"version": "6", "version": "6",
"dialect": "sqlite", "dialect": "sqlite",
"id": "17f234ba-4123-4951-a39f-6002d537435f", "id": "17f234ba-4123-4951-a39f-6002d537435f",
"prevId": "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d", "prevId": "6a326ac0-cb3a-4c63-8800-bc86d18e0c1d",
"tables": { "tables": {
"backup_schedules_table": { "backup_schedules_table": {
"name": "backup_schedules_table", "name": "backup_schedules_table",
"columns": { "columns": {
"id": { "id": {
"name": "id", "name": "id",
"type": "integer", "type": "integer",
"primaryKey": true, "primaryKey": true,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": true
}, },
"volume_id": { "volume_id": {
"name": "volume_id", "name": "volume_id",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"repository_id": { "repository_id": {
"name": "repository_id", "name": "repository_id",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"enabled": { "enabled": {
"name": "enabled", "name": "enabled",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": true "default": true
}, },
"cron_expression": { "cron_expression": {
"name": "cron_expression", "name": "cron_expression",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false
}, },
"retention_policy": { "retention_policy": {
"name": "retention_policy", "name": "retention_policy",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"exclude_patterns": { "exclude_patterns": {
"name": "exclude_patterns", "name": "exclude_patterns",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'[]'" "default": "'[]'"
}, },
"include_patterns": { "include_patterns": {
"name": "include_patterns", "name": "include_patterns",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'[]'" "default": "'[]'"
}, },
"last_backup_at": { "last_backup_at": {
"name": "last_backup_at", "name": "last_backup_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_backup_status": { "last_backup_status": {
"name": "last_backup_status", "name": "last_backup_status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"last_backup_error": { "last_backup_error": {
"name": "last_backup_error", "name": "last_backup_error",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"next_backup_at": { "next_backup_at": {
"name": "next_backup_at", "name": "next_backup_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false "autoincrement": false
}, },
"created_at": { "created_at": {
"name": "created_at", "name": "created_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"updated_at": { "updated_at": {
"name": "updated_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
} }
}, },
"indexes": {}, "indexes": {},
"foreignKeys": { "foreignKeys": {
"backup_schedules_table_volume_id_volumes_table_id_fk": { "backup_schedules_table_volume_id_volumes_table_id_fk": {
"name": "backup_schedules_table_volume_id_volumes_table_id_fk", "name": "backup_schedules_table_volume_id_volumes_table_id_fk",
"tableFrom": "backup_schedules_table", "tableFrom": "backup_schedules_table",
"tableTo": "volumes_table", "tableTo": "volumes_table",
"columnsFrom": [ "columnsFrom": ["volume_id"],
"volume_id" "columnsTo": ["id"],
], "onDelete": "cascade",
"columnsTo": [ "onUpdate": "no action"
"id" },
], "backup_schedules_table_repository_id_repositories_table_id_fk": {
"onDelete": "cascade", "name": "backup_schedules_table_repository_id_repositories_table_id_fk",
"onUpdate": "no action" "tableFrom": "backup_schedules_table",
}, "tableTo": "repositories_table",
"backup_schedules_table_repository_id_repositories_table_id_fk": { "columnsFrom": ["repository_id"],
"name": "backup_schedules_table_repository_id_repositories_table_id_fk", "columnsTo": ["id"],
"tableFrom": "backup_schedules_table", "onDelete": "cascade",
"tableTo": "repositories_table", "onUpdate": "no action"
"columnsFrom": [ }
"repository_id" },
], "compositePrimaryKeys": {},
"columnsTo": [ "uniqueConstraints": {},
"id" "checkConstraints": {}
], },
"onDelete": "cascade", "repositories_table": {
"onUpdate": "no action" "name": "repositories_table",
} "columns": {
}, "id": {
"compositePrimaryKeys": {}, "name": "id",
"uniqueConstraints": {}, "type": "text",
"checkConstraints": {} "primaryKey": true,
}, "notNull": true,
"repositories_table": { "autoincrement": false
"name": "repositories_table", },
"columns": { "name": {
"id": { "name": "name",
"name": "id", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": true, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "type": {
"name": { "name": "type",
"name": "name", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "config": {
"type": { "name": "config",
"name": "type", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "compression_mode": {
"config": { "name": "compression_mode",
"name": "config", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": false,
"notNull": true, "autoincrement": false,
"autoincrement": false "default": "'auto'"
}, },
"compression_mode": { "status": {
"name": "compression_mode", "name": "status",
"type": "text", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false,
"default": "'auto'" "default": "'unknown'"
}, },
"status": { "last_checked": {
"name": "status", "name": "last_checked",
"type": "text", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": false, "notNull": false,
"autoincrement": false, "autoincrement": false
"default": "'unknown'" },
}, "last_error": {
"last_checked": { "name": "last_error",
"name": "last_checked", "type": "text",
"type": "integer", "primaryKey": false,
"primaryKey": false, "notNull": false,
"notNull": false, "autoincrement": false
"autoincrement": false },
}, "created_at": {
"last_error": { "name": "created_at",
"name": "last_error", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": false, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, },
"created_at": { "updated_at": {
"name": "created_at", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, }
"updated_at": { },
"name": "updated_at", "indexes": {
"type": "integer", "repositories_table_name_unique": {
"primaryKey": false, "name": "repositories_table_name_unique",
"notNull": true, "columns": ["name"],
"autoincrement": false, "isUnique": true
"default": "(unixepoch())" }
} },
}, "foreignKeys": {},
"indexes": { "compositePrimaryKeys": {},
"repositories_table_name_unique": { "uniqueConstraints": {},
"name": "repositories_table_name_unique", "checkConstraints": {}
"columns": [ },
"name" "sessions_table": {
], "name": "sessions_table",
"isUnique": true "columns": {
} "id": {
}, "name": "id",
"foreignKeys": {}, "type": "text",
"compositePrimaryKeys": {}, "primaryKey": true,
"uniqueConstraints": {}, "notNull": true,
"checkConstraints": {} "autoincrement": false
}, },
"sessions_table": { "user_id": {
"name": "sessions_table", "name": "user_id",
"columns": { "type": "integer",
"id": { "primaryKey": false,
"name": "id", "notNull": true,
"type": "text", "autoincrement": false
"primaryKey": true, },
"notNull": true, "expires_at": {
"autoincrement": false "name": "expires_at",
}, "type": "integer",
"user_id": { "primaryKey": false,
"name": "user_id", "notNull": true,
"type": "integer", "autoincrement": false
"primaryKey": false, },
"notNull": true, "created_at": {
"autoincrement": false "name": "created_at",
}, "type": "integer",
"expires_at": { "primaryKey": false,
"name": "expires_at", "notNull": true,
"type": "integer", "autoincrement": false,
"primaryKey": false, "default": "(unixepoch())"
"notNull": true, }
"autoincrement": false },
}, "indexes": {},
"created_at": { "foreignKeys": {
"name": "created_at", "sessions_table_user_id_users_table_id_fk": {
"type": "integer", "name": "sessions_table_user_id_users_table_id_fk",
"primaryKey": false, "tableFrom": "sessions_table",
"notNull": true, "tableTo": "users_table",
"autoincrement": false, "columnsFrom": ["user_id"],
"default": "(unixepoch())" "columnsTo": ["id"],
} "onDelete": "cascade",
}, "onUpdate": "no action"
"indexes": {}, }
"foreignKeys": { },
"sessions_table_user_id_users_table_id_fk": { "compositePrimaryKeys": {},
"name": "sessions_table_user_id_users_table_id_fk", "uniqueConstraints": {},
"tableFrom": "sessions_table", "checkConstraints": {}
"tableTo": "users_table", },
"columnsFrom": [ "users_table": {
"user_id" "name": "users_table",
], "columns": {
"columnsTo": [ "id": {
"id" "name": "id",
], "type": "integer",
"onDelete": "cascade", "primaryKey": true,
"onUpdate": "no action" "notNull": true,
} "autoincrement": true
}, },
"compositePrimaryKeys": {}, "username": {
"uniqueConstraints": {}, "name": "username",
"checkConstraints": {} "type": "text",
}, "primaryKey": false,
"users_table": { "notNull": true,
"name": "users_table", "autoincrement": false
"columns": { },
"id": { "password_hash": {
"name": "id", "name": "password_hash",
"type": "integer", "type": "text",
"primaryKey": true, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": true "autoincrement": false
}, },
"username": { "has_downloaded_restic_password": {
"name": "username", "name": "has_downloaded_restic_password",
"type": "text", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false "autoincrement": false,
}, "default": false
"password_hash": { },
"name": "password_hash", "created_at": {
"type": "text", "name": "created_at",
"primaryKey": false, "type": "integer",
"notNull": true, "primaryKey": false,
"autoincrement": false "notNull": true,
}, "autoincrement": false,
"has_downloaded_restic_password": { "default": "(unixepoch())"
"name": "has_downloaded_restic_password", },
"type": "integer", "updated_at": {
"primaryKey": false, "name": "updated_at",
"notNull": true, "type": "integer",
"autoincrement": false, "primaryKey": false,
"default": false "notNull": true,
}, "autoincrement": false,
"created_at": { "default": "(unixepoch())"
"name": "created_at", }
"type": "integer", },
"primaryKey": false, "indexes": {
"notNull": true, "users_table_username_unique": {
"autoincrement": false, "name": "users_table_username_unique",
"default": "(unixepoch())" "columns": ["username"],
}, "isUnique": true
"updated_at": { }
"name": "updated_at", },
"type": "integer", "foreignKeys": {},
"primaryKey": false, "compositePrimaryKeys": {},
"notNull": true, "uniqueConstraints": {},
"autoincrement": false, "checkConstraints": {}
"default": "(unixepoch())" },
} "volumes_table": {
}, "name": "volumes_table",
"indexes": { "columns": {
"users_table_username_unique": { "id": {
"name": "users_table_username_unique", "name": "id",
"columns": [ "type": "integer",
"username" "primaryKey": true,
], "notNull": true,
"isUnique": true "autoincrement": true
} },
}, "name": {
"foreignKeys": {}, "name": "name",
"compositePrimaryKeys": {}, "type": "text",
"uniqueConstraints": {}, "primaryKey": false,
"checkConstraints": {} "notNull": true,
}, "autoincrement": false
"volumes_table": { },
"name": "volumes_table", "type": {
"columns": { "name": "type",
"id": { "type": "text",
"name": "id", "primaryKey": false,
"type": "integer", "notNull": true,
"primaryKey": true, "autoincrement": false
"notNull": true, },
"autoincrement": true "status": {
}, "name": "status",
"name": { "type": "text",
"name": "name", "primaryKey": false,
"type": "text", "notNull": true,
"primaryKey": false, "autoincrement": false,
"notNull": true, "default": "'unmounted'"
"autoincrement": false },
}, "last_error": {
"type": { "name": "last_error",
"name": "type", "type": "text",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": false,
"notNull": true, "autoincrement": false
"autoincrement": false },
}, "last_health_check": {
"status": { "name": "last_health_check",
"name": "status", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false, "default": "(unixepoch())"
"default": "'unmounted'" },
}, "created_at": {
"last_error": { "name": "created_at",
"name": "last_error", "type": "integer",
"type": "text", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": false, "autoincrement": false,
"autoincrement": false "default": "(unixepoch())"
}, },
"last_health_check": { "updated_at": {
"name": "last_health_check", "name": "updated_at",
"type": "integer", "type": "integer",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false,
"default": "(unixepoch())" "default": "(unixepoch())"
}, },
"created_at": { "config": {
"name": "created_at", "name": "config",
"type": "integer", "type": "text",
"primaryKey": false, "primaryKey": false,
"notNull": true, "notNull": true,
"autoincrement": false, "autoincrement": false
"default": "(unixepoch())" },
}, "auto_remount": {
"updated_at": { "name": "auto_remount",
"name": "updated_at", "type": "integer",
"type": "integer", "primaryKey": false,
"primaryKey": false, "notNull": true,
"notNull": true, "autoincrement": false,
"autoincrement": false, "default": true
"default": "(unixepoch())" }
}, },
"config": { "indexes": {
"name": "config", "volumes_table_name_unique": {
"type": "text", "name": "volumes_table_name_unique",
"primaryKey": false, "columns": ["name"],
"notNull": true, "isUnique": true
"autoincrement": false }
}, },
"auto_remount": { "foreignKeys": {},
"name": "auto_remount", "compositePrimaryKeys": {},
"type": "integer", "uniqueConstraints": {},
"primaryKey": false, "checkConstraints": {}
"notNull": true, }
"autoincrement": false, },
"default": true "views": {},
} "enums": {},
}, "_meta": {
"indexes": { "schemas": {},
"volumes_table_name_unique": { "tables": {},
"name": "volumes_table_name_unique", "columns": {}
"columns": [ },
"name" "internal": {
], "indexes": {}
"isUnique": true }
}
},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"checkConstraints": {}
}
},
"views": {},
"enums": {},
"_meta": {
"schemas": {},
"tables": {},
"columns": {}
},
"internal": {
"indexes": {}
}
} }

View file

@ -1,83 +1,83 @@
{ {
"version": "7", "version": "7",
"dialect": "sqlite", "dialect": "sqlite",
"entries": [ "entries": [
{ {
"idx": 0, "idx": 0,
"version": "6", "version": "6",
"when": 1755765658194, "when": 1755765658194,
"tag": "0000_known_madelyne_pryor", "tag": "0000_known_madelyne_pryor",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 1, "idx": 1,
"version": "6", "version": "6",
"when": 1755775437391, "when": 1755775437391,
"tag": "0001_far_frank_castle", "tag": "0001_far_frank_castle",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 2, "idx": 2,
"version": "6", "version": "6",
"when": 1756930554198, "when": 1756930554198,
"tag": "0002_cheerful_randall", "tag": "0002_cheerful_randall",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 3, "idx": 3,
"version": "6", "version": "6",
"when": 1758653407064, "when": 1758653407064,
"tag": "0003_mature_hellcat", "tag": "0003_mature_hellcat",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 4, "idx": 4,
"version": "6", "version": "6",
"when": 1758961535488, "when": 1758961535488,
"tag": "0004_wealthy_tomas", "tag": "0004_wealthy_tomas",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 5, "idx": 5,
"version": "6", "version": "6",
"when": 1759416698274, "when": 1759416698274,
"tag": "0005_simple_alice", "tag": "0005_simple_alice",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 6, "idx": 6,
"version": "6", "version": "6",
"when": 1760734377440, "when": 1760734377440,
"tag": "0006_secret_micromacro", "tag": "0006_secret_micromacro",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 7, "idx": 7,
"version": "6", "version": "6",
"when": 1761224911352, "when": 1761224911352,
"tag": "0007_watery_sersi", "tag": "0007_watery_sersi",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 8, "idx": 8,
"version": "6", "version": "6",
"when": 1761414054481, "when": 1761414054481,
"tag": "0008_silent_lady_bullseye", "tag": "0008_silent_lady_bullseye",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 9, "idx": 9,
"version": "6", "version": "6",
"when": 1762095226041, "when": 1762095226041,
"tag": "0009_little_adam_warlock", "tag": "0009_little_adam_warlock",
"breakpoints": true "breakpoints": true
}, },
{ {
"idx": 10, "idx": 10,
"version": "6", "version": "6",
"when": 1762610065889, "when": 1762610065889,
"tag": "0010_perfect_proemial_gods", "tag": "0010_perfect_proemial_gods",
"breakpoints": true "breakpoints": true
} }
] ]
} }

View file

@ -67,10 +67,7 @@ async function detectRclone(): Promise<boolean> {
logger.info("rclone capability: enabled"); logger.info("rclone capability: enabled");
return true; return true;
} catch (_) { } catch (_) {
logger.warn( logger.warn("rclone capability: disabled. " + "To enable: mount /root/.config/rclone in docker-compose.yml");
"rclone capability: disabled. " +
"To enable: mount /root/.config/rclone in docker-compose.yml",
);
return false; return false;
} }
} }

View file

@ -2,7 +2,6 @@ import { createHonoServer } from "react-router-hono-server/bun";
import * as fs from "node:fs/promises"; import * as fs from "node:fs/promises";
import { Scalar } from "@scalar/hono-api-reference"; import { Scalar } from "@scalar/hono-api-reference";
import { Hono } from "hono"; import { Hono } from "hono";
import { serveStatic } from "hono/bun";
import { logger as honoLogger } from "hono/logger"; import { logger as honoLogger } from "hono/logger";
import { openAPIRouteHandler } from "hono-openapi"; import { openAPIRouteHandler } from "hono-openapi";
import { getCapabilities } from "./core/capabilities"; import { getCapabilities } from "./core/capabilities";
@ -49,9 +48,6 @@ const app = new Hono()
.route("/api/v1/backups", backupScheduleController.use(requireAuth)) .route("/api/v1/backups", backupScheduleController.use(requireAuth))
.route("/api/v1/system", systemController.use(requireAuth)) .route("/api/v1/system", systemController.use(requireAuth))
.route("/api/v1/events", eventsController.use(requireAuth)); .route("/api/v1/events", eventsController.use(requireAuth));
// .get("/assets/*", serveStatic({ root: "./assets/frontend" }))
// .get("/images/*", serveStatic({ root: "./assets/frontend" }))
// .get("*", serveStatic({ path: "./assets/frontend/index.html" }));
app.get("/api/v1/openapi.json", generalDescriptor(app)); app.get("/api/v1/openapi.json", generalDescriptor(app));
app.get("/api/v1/docs", scalarDescriptor); app.get("/api/v1/docs", scalarDescriptor);

View file

@ -1,11 +1,12 @@
{ {
"$schema": "https://biomejs.dev/schemas/2.3.0/schema.json", "$schema": "https://biomejs.dev/schemas/2.3.5/schema.json",
"vcs": { "vcs": {
"enabled": false, "enabled": true,
"clientKind": "git", "clientKind": "git",
"useIgnoreFile": false "useIgnoreFile": true
}, },
"files": { "files": {
"includes": ["**/*.{ts,tsx,json}", "!**/api-client", "!**/components/ui"],
"ignoreUnknown": false "ignoreUnknown": false
}, },
"formatter": { "formatter": {

View file

@ -56,6 +56,7 @@
"yaml": "^2.8.1", "yaml": "^2.8.1",
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.3.5",
"@hey-api/openapi-ts": "^0.87.4", "@hey-api/openapi-ts": "^0.87.4",
"@react-router/dev": "^7.9.3", "@react-router/dev": "^7.9.3",
"@tailwindcss/vite": "^4.1.14", "@tailwindcss/vite": "^4.1.14",
@ -139,6 +140,24 @@
"@balena/dockerignore": ["@balena/dockerignore@1.0.2", "", {}, "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="], "@balena/dockerignore": ["@balena/dockerignore@1.0.2", "", {}, "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q=="],
"@biomejs/biome": ["@biomejs/biome@2.3.5", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.5", "@biomejs/cli-darwin-x64": "2.3.5", "@biomejs/cli-linux-arm64": "2.3.5", "@biomejs/cli-linux-arm64-musl": "2.3.5", "@biomejs/cli-linux-x64": "2.3.5", "@biomejs/cli-linux-x64-musl": "2.3.5", "@biomejs/cli-win32-arm64": "2.3.5", "@biomejs/cli-win32-x64": "2.3.5" }, "bin": { "biome": "bin/biome" } }, "sha512-HvLhNlIlBIbAV77VysRIBEwp55oM/QAjQEin74QQX9Xb259/XP/D5AGGnZMOyF1el4zcvlNYYR3AyTMUV3ILhg=="],
"@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-fLdTur8cJU33HxHUUsii3GLx/TR0BsfQx8FkeqIiW33cGMtUD56fAtrh+2Fx1uhiCsVZlFh6iLKUU3pniZREQw=="],
"@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-qpT8XDqeUlzrOW8zb4k3tjhT7rmvVRumhi2657I2aGcY4B+Ft5fNwDdZGACzn8zj7/K1fdWjgwYE3i2mSZ+vOA=="],
"@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-u/pybjTBPGBHB66ku4pK1gj+Dxgx7/+Z0jAriZISPX1ocTO8aHh8x8e7Kb1rB4Ms0nA/SzjtNOVJ4exVavQBCw=="],
"@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-eGUG7+hcLgGnMNl1KHVZUYxahYAhC462jF/wQolqu4qso2MSk32Q+QrpN7eN4jAHAg7FUMIo897muIhK4hXhqg=="],
"@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.5", "", { "os": "linux", "cpu": "x64" }, "sha512-XrIVi9YAW6ye0CGQ+yax0gLfx+BFOtKaNX74n+xHWla6Cl6huUmcKNO7HPx7BiKnJUzrxXY1qYlm7xMvi08X4g=="],
"@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.5", "", { "os": "linux", "cpu": "x64" }, "sha512-awVuycTPpVTH/+WDVnEEYSf6nbCBHf/4wB3lquwT7puhNg8R4XvonWNZzUsfHZrCkjkLhFH/vCZK5jHatD9FEg=="],
"@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-DlBiMlBZZ9eIq4H7RimDSGsYcOtfOIfZOaI5CqsWiSlbTfqbPVfWtCf92wNzx8GNMbu1s7/g3ZZESr6+GwM/SA=="],
"@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.5", "", { "os": "win32", "cpu": "x64" }, "sha512-nUmR8gb6yvrKhtRgzwo/gDimPwnO5a4sCydf8ZS2kHIJhEmSmk+STsusr1LHTuM//wXppBawvSQi2xFXJCdgKQ=="],
"@colors/colors": ["@colors/colors@1.6.0", "", {}, "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="], "@colors/colors": ["@colors/colors@1.6.0", "", {}, "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="],
"@dabh/diagnostics": ["@dabh/diagnostics@2.0.8", "", { "dependencies": { "@so-ric/colorspace": "^1.1.6", "enabled": "2.0.x", "kuler": "^2.0.0" } }, "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q=="], "@dabh/diagnostics": ["@dabh/diagnostics@2.0.8", "", { "dependencies": { "@so-ric/colorspace": "^1.1.6", "enabled": "2.0.x", "kuler": "^2.0.0" } }, "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q=="],

View file

@ -1,21 +1,21 @@
{ {
"$schema": "https://ui.shadcn.com/schema.json", "$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york", "style": "new-york",
"rsc": false, "rsc": false,
"tsx": true, "tsx": true,
"tailwind": { "tailwind": {
"config": "", "config": "",
"css": "app/app.css", "css": "app/app.css",
"baseColor": "neutral", "baseColor": "neutral",
"cssVariables": true, "cssVariables": true,
"prefix": "" "prefix": ""
}, },
"aliases": { "aliases": {
"components": "~/components", "components": "~/components",
"utils": "~/lib/utils", "utils": "~/lib/utils",
"ui": "~/components/ui", "ui": "~/components/ui",
"lib": "~/lib", "lib": "~/lib",
"hooks": "~/hooks" "hooks": "~/hooks"
}, },
"iconLibrary": "lucide" "iconLibrary": "lucide"
} }

View file

@ -8,6 +8,8 @@
"dev": "bunx --bun vite", "dev": "bunx --bun vite",
"start": "bun ./dist/server/index.js", "start": "bun ./dist/server/index.js",
"tsc": "react-router typegen && tsc", "tsc": "react-router typegen && tsc",
"lint": "biome check .",
"lint:ci": "biome check . --ci",
"start:dev": "docker compose down && docker compose up --build ironmount-dev", "start:dev": "docker compose down && docker compose up --build ironmount-dev",
"start:prod": "docker compose down && docker compose up --build ironmount-prod", "start:prod": "docker compose down && docker compose up --build ironmount-prod",
"gen:api-client": "openapi-ts", "gen:api-client": "openapi-ts",
@ -67,6 +69,7 @@
"yaml": "^2.8.1" "yaml": "^2.8.1"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.3.5",
"@hey-api/openapi-ts": "^0.87.4", "@hey-api/openapi-ts": "^0.87.4",
"@react-router/dev": "^7.9.3", "@react-router/dev": "^7.9.3",
"@tailwindcss/vite": "^4.1.14", "@tailwindcss/vite": "^4.1.14",

View file

@ -1,21 +1,21 @@
{ {
"name": "Ironmount", "name": "Ironmount",
"short_name": "Ironmount", "short_name": "Ironmount",
"icons": [ "icons": [
{ {
"src": "/images/favicon/web-app-manifest-192x192.png", "src": "/images/favicon/web-app-manifest-192x192.png",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
}, },
{ {
"src": "/images/favicon/web-app-manifest-512x512.png", "src": "/images/favicon/web-app-manifest-512x512.png",
"sizes": "512x512", "sizes": "512x512",
"type": "image/png", "type": "image/png",
"purpose": "maskable" "purpose": "maskable"
} }
], ],
"theme_color": "#1b1b1b", "theme_color": "#1b1b1b",
"background_color": "#1b1b1b", "background_color": "#1b1b1b",
"display": "standalone" "display": "standalone"
} }

View file

@ -1,27 +1,22 @@
{ {
"include": [ "include": ["**/*", "**/.server/**/*", "**/.client/**/*", ".react-router/types/**/*"],
"**/*", "compilerOptions": {
"**/.server/**/*", "lib": ["DOM", "DOM.Iterable", "ES2022"],
"**/.client/**/*", "types": ["node", "vite/client"],
".react-router/types/**/*" "target": "ES2022",
], "module": "ES2022",
"compilerOptions": { "moduleResolution": "bundler",
"lib": ["DOM", "DOM.Iterable", "ES2022"], "jsx": "react-jsx",
"types": ["node", "vite/client"], "rootDirs": [".", "./.react-router/types"],
"target": "ES2022", "baseUrl": ".",
"module": "ES2022", "paths": {
"moduleResolution": "bundler", "~/*": ["./app/*"]
"jsx": "react-jsx", },
"rootDirs": [".", "./.react-router/types"], "esModuleInterop": true,
"baseUrl": ".", "verbatimModuleSyntax": true,
"paths": { "noEmit": true,
"~/*": ["./app/*"] "resolveJsonModule": true,
}, "skipLibCheck": true,
"esModuleInterop": true, "strict": true
"verbatimModuleSyntax": true, }
"noEmit": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true
}
} }