PIT: Add folder reconstruction functions

This commit is contained in:
carlosmonastyrski
2025-05-09 09:20:17 -03:00
parent e8d424bbb0
commit 78d5bc823d
6 changed files with 397 additions and 44 deletions
+2
View File
@@ -18,6 +18,7 @@ import { registerLdapRouter } from "./ldap-router";
import { registerLicenseRouter } from "./license-router";
import { registerOidcRouter } from "./oidc-router";
import { registerOrgRoleRouter } from "./org-role-router";
import { registerPITRouter } from "./pit-router";
import { registerProjectRoleRouter } from "./project-role-router";
import { registerProjectRouter } from "./project-router";
import { registerRateLimitRouter } from "./rate-limit-router";
@@ -53,6 +54,7 @@ export const registerV1EERoutes = async (server: FastifyZodProvider) => {
{ prefix: "/workspace" }
);
await server.register(registerSnapshotRouter, { prefix: "/secret-snapshot" });
await server.register(registerPITRouter, { prefix: "/pit" });
await server.register(registerSecretApprovalPolicyRouter, { prefix: "/secret-approvals" });
await server.register(registerSecretApprovalRequestRouter, {
prefix: "/secret-approval-requests"
+27
View File
@@ -0,0 +1,27 @@
import { z } from "zod";
import { readLimit } from "@app/server/config/rateLimiter";
export const registerPITRouter = async (server: FastifyZodProvider) => {
server.route({
method: "GET",
url: "/diff",
config: {
rateLimit: readLimit
},
schema: {
querystring: z.object({
fromCommit: z.string().trim(),
toCommit: z.string().trim()
}),
response: {
200: z.any()
}
},
handler: async (req) => {
const backup = await server.services.folderCommit.compareFolderStates(req.query.fromCommit, req.query.toCommit);
return backup;
}
});
};