mirror of
https://github.com/nicotsx/ironmount.git
synced 2025-12-10 12:10:51 +01:00
* refactor: unify backend and frontend servers * refactor: correct paths for openapi & drizzle * refactor: move api-client to client * fix: drizzle paths * chore: fix linting issues * fix: form reset issue
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import { type } from "arktype";
|
|
import { describeRoute, resolver } from "hono-openapi";
|
|
|
|
export const capabilitiesSchema = type({
|
|
docker: "boolean",
|
|
rclone: "boolean",
|
|
});
|
|
|
|
export const systemInfoResponse = type({
|
|
capabilities: capabilitiesSchema,
|
|
});
|
|
|
|
export type SystemInfoDto = typeof systemInfoResponse.infer;
|
|
|
|
export const systemInfoDto = describeRoute({
|
|
description: "Get system information including available capabilities",
|
|
tags: ["System"],
|
|
operationId: "getSystemInfo",
|
|
responses: {
|
|
200: {
|
|
description: "System information with enabled capabilities",
|
|
content: {
|
|
"application/json": {
|
|
schema: resolver(systemInfoResponse),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
export const downloadResticPasswordBodySchema = type({
|
|
password: "string",
|
|
});
|
|
|
|
export const downloadResticPasswordDto = describeRoute({
|
|
description: "Download the Restic password file for backup recovery. Requires password re-authentication.",
|
|
tags: ["System"],
|
|
operationId: "downloadResticPassword",
|
|
responses: {
|
|
200: {
|
|
description: "Restic password file content",
|
|
content: {
|
|
"text/plain": {
|
|
schema: { type: "string" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|