diff --git a/apps/client/src/widgets/type_widgets/options/backup.tsx b/apps/client/src/widgets/type_widgets/options/backup.tsx
index f6305ff8b..e516edf82 100644
--- a/apps/client/src/widgets/type_widgets/options/backup.tsx
+++ b/apps/client/src/widgets/type_widgets/options/backup.tsx
@@ -1,4 +1,8 @@
+import { BackupDatabaseNowResponse } from "@triliumnext/commons";
import { t } from "../../../services/i18n";
+import server from "../../../services/server";
+import toast from "../../../services/toast";
+import Button from "../../react/Button";
import FormCheckbox from "../../react/FormCheckbox";
import FormGroup from "../../react/FormGroup";
import FormText from "../../react/FormText";
@@ -9,6 +13,7 @@ export default function BackupSettings() {
return (
<>
+
>
)
}
@@ -43,4 +48,18 @@ export function AutomaticBackup() {
{t("backup.backup_recommendation")}
)
+}
+
+export function BackupNow() {
+ return (
+
+
+ )
}
\ No newline at end of file
diff --git a/apps/server/src/routes/api/database.ts b/apps/server/src/routes/api/database.ts
index 515bf0bca..c29f6e9aa 100644
--- a/apps/server/src/routes/api/database.ts
+++ b/apps/server/src/routes/api/database.ts
@@ -9,7 +9,7 @@ import type { Request } from "express";
import ValidationError from "../../errors/validation_error.js";
import sql_init from "../../services/sql_init.js";
import becca_loader from "../../becca/becca_loader.js";
-import { DatabaseCheckIntegrityResponse } from "@triliumnext/commons";
+import { BackupDatabaseNowResponse, DatabaseCheckIntegrityResponse } from "@triliumnext/commons";
function getExistingBackups() {
return backupService.getExistingBackups();
@@ -18,7 +18,7 @@ function getExistingBackups() {
async function backupDatabase() {
return {
backupFile: await backupService.backupNow("now")
- };
+ } satisfies BackupDatabaseNowResponse;
}
function vacuumDatabase() {
diff --git a/packages/commons/src/lib/server_api.ts b/packages/commons/src/lib/server_api.ts
index d84cf18fb..085886105 100644
--- a/packages/commons/src/lib/server_api.ts
+++ b/packages/commons/src/lib/server_api.ts
@@ -97,3 +97,7 @@ export interface EtapiToken {
export interface PostTokensResponse {
authToken: string;
}
+
+export interface BackupDatabaseNowResponse {
+ backupFile: string;
+}