diff --git a/app/api/agent/[agentId]/status/helpers.ts b/app/api/agent/[agentId]/status/helpers.ts index ccf11841..244d7219 100644 --- a/app/api/agent/[agentId]/status/helpers.ts +++ b/app/api/agent/[agentId]/status/helpers.ts @@ -10,15 +10,16 @@ import {dbmsEnumSchema, EDbmsSchema} from "@/db/schema/types"; import {withUpdatedAt} from "@/db/utils"; import type {StorageInput} from "@/features/storages/types"; import {dispatchStorage} from "@/features/storages/dispatch"; +import {Setting} from "@/db/schema/01_setting"; -export async function handleDatabases(body: Body, agent: Agent, lastContact: Date) { +export async function handleDatabases(body: Body, agent: Agent, lastContact: Date, settings: Setting) { const databasesResponse = []; const formatDatabase = (database: DatabaseWith, backupAction: boolean, restoreAction: boolean, UrlBackup: string | null, storages: PingDatabaseStorageChannels[], urlMeta: string | null) => ({ generatedId: database.agentDatabaseId, dbms: database.dbms, storages: storages, - encrypt: false, + encrypt: settings.encryption, data: { backup: { action: backupAction, diff --git a/app/api/agent/[agentId]/status/route.ts b/app/api/agent/[agentId]/status/route.ts index ca0f9fe9..8e338798 100644 --- a/app/api/agent/[agentId]/status/route.ts +++ b/app/api/agent/[agentId]/status/route.ts @@ -7,6 +7,7 @@ import {eq} from "drizzle-orm"; import {isUuidv4} from "@/utils/verify-uuid"; import {withUpdatedAt} from "@/db/utils"; import {eventEmitter} from "@/features/shared/event"; +import {notFound} from "next/navigation"; export type databaseAgent = { name: string, @@ -48,7 +49,14 @@ export async function POST( message = "Agent not found" return NextResponse.json({error: message}, {status: 404}) } - const databasesResponse = await handleDatabases(body, agent, lastContact) + + const [settings] = await db.select().from(drizzleDb.schemas.setting).where(eq(drizzleDb.schemas.setting.name, "system")).limit(1); + if (!settings) { + return NextResponse.json({error: "An error occured"}, {status: 404}) + } + + + const databasesResponse = await handleDatabases(body, agent, lastContact, settings) await db .update(drizzleDb.schemas.agent) diff --git a/src/components/wrappers/dashboard/admin/settings/settings-tabs.tsx b/src/components/wrappers/dashboard/admin/settings/settings-tabs.tsx index 0b7d2d9c..ac287684 100644 --- a/src/components/wrappers/dashboard/admin/settings/settings-tabs.tsx +++ b/src/components/wrappers/dashboard/admin/settings/settings-tabs.tsx @@ -41,7 +41,7 @@ export const SettingsTabs = ({settings, storageChannels}: SettingsTabsProps) => ) }, { - name: 'Default Storage', + name: 'Storage', value: 'storage', icon: Save, content: ( diff --git a/src/components/wrappers/dashboard/admin/settings/storage/settings-storage-section.tsx b/src/components/wrappers/dashboard/admin/settings/storage/settings-storage-section.tsx index 337e48d7..c480cdd5 100644 --- a/src/components/wrappers/dashboard/admin/settings/storage/settings-storage-section.tsx +++ b/src/components/wrappers/dashboard/admin/settings/storage/settings-storage-section.tsx @@ -4,7 +4,7 @@ import {Info} from "lucide-react"; import {ButtonWithLoading} from "@/components/wrappers/common/button/button-with-loading"; import {useRouter} from "next/navigation"; import {Setting} from "@/db/schema/01_setting"; -import {Form, FormField, FormItem, useZodForm} from "@/components/ui/form"; +import {Form, FormControl, FormField, FormItem, FormLabel, FormMessage, useZodForm} from "@/components/ui/form"; import {StorageChannelWith} from "@/db/schema/12_storage-channel"; import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from "@/components/ui/select"; import {useMutation} from "@tanstack/react-query"; @@ -17,6 +17,7 @@ import { updateStorageSettingsAction } from "@/components/wrappers/dashboard/admin/settings/storage/settings-storage.action"; import {toast} from "sonner"; +import {Switch} from "@/components/ui/switch"; export type SettingsStorageSectionProps = { settings: Setting; @@ -29,7 +30,8 @@ export const SettingsStorageSection = ({settings, storageChannels}: SettingsStor const form = useZodForm({ schema: DefaultStorageSchema, defaultValues: { - storageChannelId: settings.defaultStorageChannelId ?? undefined + storageChannelId: settings.defaultStorageChannelId ?? undefined, + encryption: settings.encryption ?? false } }); @@ -59,6 +61,7 @@ export const SettingsStorageSection = ({settings, storageChannels}: SettingsStor
{ await mutation.mutateAsync(values); @@ -68,11 +71,12 @@ export const SettingsStorageSection = ({settings, storageChannels}: SettingsStor ( + render={({field}) => ( + Default Storage Provider