mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-06-26 09:35:29 +02:00
- Updated the version of @dokploy/trpc-openapi from 0.0.18 to 0.0.19 in pnpm-lock.yaml and package.json. - Added OpenAPI metadata to various procedures across multiple routers, improving API documentation and clarity for developers. - Enhanced descriptions and summaries for several API endpoints, ensuring better understanding of their functionality. These changes improve the overall API usability and documentation quality.
62 lines
1.9 KiB
TypeScript
62 lines
1.9 KiB
TypeScript
import {
|
|
getWebServerSettings,
|
|
IS_CLOUD,
|
|
setupWebMonitoring,
|
|
updateWebServerSettings,
|
|
} from "@dokploy/server";
|
|
import { TRPCError } from "@trpc/server";
|
|
import { apiUpdateWebServerMonitoring } from "@/server/db/schema";
|
|
import { adminProcedure, createTRPCRouter } from "../trpc";
|
|
|
|
export const adminRouter = createTRPCRouter({
|
|
setupMonitoring: adminProcedure
|
|
.meta({
|
|
openapi: {
|
|
summary: "Update web server monitoring settings",
|
|
description: "Update the monitoring configuration for the web server including refresh rates, thresholds, and container services. Restarts the monitoring system and returns the updated settings. Disabled on cloud.",
|
|
},
|
|
})
|
|
.input(apiUpdateWebServerMonitoring)
|
|
.mutation(async ({ input }) => {
|
|
try {
|
|
if (IS_CLOUD) {
|
|
throw new TRPCError({
|
|
code: "UNAUTHORIZED",
|
|
message: "Feature disabled on cloud",
|
|
});
|
|
}
|
|
|
|
await updateWebServerSettings({
|
|
metricsConfig: {
|
|
server: {
|
|
type: "Dokploy",
|
|
refreshRate: input.metricsConfig.server.refreshRate,
|
|
port: input.metricsConfig.server.port,
|
|
token: input.metricsConfig.server.token,
|
|
cronJob: input.metricsConfig.server.cronJob,
|
|
urlCallback: input.metricsConfig.server.urlCallback,
|
|
retentionDays: input.metricsConfig.server.retentionDays,
|
|
thresholds: {
|
|
cpu: input.metricsConfig.server.thresholds.cpu,
|
|
memory: input.metricsConfig.server.thresholds.memory,
|
|
},
|
|
},
|
|
containers: {
|
|
refreshRate: input.metricsConfig.containers.refreshRate,
|
|
services: {
|
|
include: input.metricsConfig.containers.services.include || [],
|
|
exclude: input.metricsConfig.containers.services.exclude || [],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
await setupWebMonitoring();
|
|
const settings = await getWebServerSettings();
|
|
return settings;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
}),
|
|
});
|