mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
refactor: add dokploy trpc open api
This commit is contained in:
@@ -23,7 +23,7 @@ import { dockerRouter } from "./routers/docker";
|
||||
import { composeRouter } from "./routers/compose";
|
||||
import { registryRouter } from "./routers/registry";
|
||||
import { clusterRouter } from "./routers/cluster";
|
||||
import { generateOpenAPIDocumentFromTRPCRouter } from "openapi-trpc";
|
||||
import { generateOpenApiDocument } from "@dokploy/trpc-openapi";
|
||||
|
||||
/**
|
||||
* This is the primary router for your server.
|
||||
@@ -59,9 +59,18 @@ export const appRouter = createTRPCRouter({
|
||||
|
||||
// export type definition of API
|
||||
export type AppRouter = typeof appRouter;
|
||||
export const doc = generateOpenAPIDocumentFromTRPCRouter(appRouter, {
|
||||
pathPrefix: "/api/trpc",
|
||||
processOperation(op) {
|
||||
op.security = [{ bearerAuth: [] }];
|
||||
|
||||
export const openApiDocument = generateOpenApiDocument(appRouter, {
|
||||
title: "tRPC OpenAPI",
|
||||
version: "1.0.0",
|
||||
baseUrl: "http://localhost:3000/api/trpc",
|
||||
docsUrl: "http://localhost:3000/api/trpc/settings.getOpenApiDocument",
|
||||
securitySchemes: {
|
||||
bearerAuth: {
|
||||
type: "http",
|
||||
scheme: "bearer",
|
||||
bearerFormat: "JWT",
|
||||
},
|
||||
},
|
||||
description: "Dokploy API",
|
||||
});
|
||||
|
||||
@@ -41,7 +41,7 @@ import {
|
||||
} from "../services/settings";
|
||||
import { canAccessToTraefikFiles } from "../services/user";
|
||||
import { recreateDirectory } from "@/server/utils/filesystem/directory";
|
||||
import { doc } from "../root";
|
||||
import { openApiDocument } from "../root";
|
||||
|
||||
export const settingsRouter = createTRPCRouter({
|
||||
reloadServer: adminProcedure.mutation(async () => {
|
||||
@@ -245,20 +245,12 @@ export const settingsRouter = createTRPCRouter({
|
||||
}),
|
||||
|
||||
getOpenApiDocument: protectedProcedure.query((): unknown => {
|
||||
doc.components = {
|
||||
securitySchemes: {
|
||||
bearerAuth: {
|
||||
type: "http",
|
||||
scheme: "bearer",
|
||||
bearerFormat: "JWT",
|
||||
},
|
||||
},
|
||||
};
|
||||
doc.info = {
|
||||
openApiDocument.info = {
|
||||
title: "Dokploy API",
|
||||
description: "Endpoints for dokploy",
|
||||
version: getDokployVersion(),
|
||||
};
|
||||
return doc;
|
||||
|
||||
return openApiDocument;
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -15,8 +15,8 @@ import superjson from "superjson";
|
||||
import { ZodError } from "zod";
|
||||
import { validateRequest } from "../auth/auth";
|
||||
import type { Session, User } from "lucia";
|
||||
import type { OperationMeta } from "openapi-trpc";
|
||||
import { validateBearerToken } from "../auth/token";
|
||||
import type { OpenApiMeta } from "@dokploy/trpc-openapi";
|
||||
|
||||
/**
|
||||
* 1. CONTEXT
|
||||
@@ -97,7 +97,7 @@ export const createTRPCContext = async (opts: CreateNextContextOptions) => {
|
||||
*/
|
||||
|
||||
const t = initTRPC
|
||||
.meta<OperationMeta>()
|
||||
.meta<OpenApiMeta>()
|
||||
.context<typeof createTRPCContext>()
|
||||
.create({
|
||||
transformer: superjson,
|
||||
|
||||
Reference in New Issue
Block a user