feat: ssh keys filesystel

This commit is contained in:
Lorenzo Migliorero
2024-07-25 20:16:49 +02:00
parent d243470029
commit 1f81ebd4fe
6 changed files with 56 additions and 26 deletions

View File

@@ -33,8 +33,8 @@ import {
} from "@/server/utils/filesystem/directory";
import {
generateSSHKey,
readRSAFile,
removeRSAFiles,
readSSHPublicKey,
removeSSHKey,
} from "@/server/utils/filesystem/ssh";
import {
readConfig,
@@ -130,7 +130,7 @@ export const applicationRouter = createTRPCRouter({
async () => await removeMonitoringDirectory(application?.appName),
async () => await removeTraefikConfig(application?.appName),
async () => await removeService(application?.appName),
async () => await removeRSAFiles(application?.appName),
async () => await removeSSHKey(application?.appName),
];
for (const operation of cleanupOperations) {
@@ -248,7 +248,7 @@ export const applicationRouter = createTRPCRouter({
const application = await findApplicationById(input.applicationId);
try {
await generateSSHKey(application.appName);
const file = await readRSAFile(application.appName);
const file = await readSSHPublicKey(application.appName);
// await updateApplication(input.applicationId, {
// customGitSSHKey: file,
@@ -261,7 +261,7 @@ export const applicationRouter = createTRPCRouter({
.input(apiFindOneApplication)
.mutation(async ({ input }) => {
const application = await findApplicationById(input.applicationId);
await removeRSAFiles(application.appName);
await removeSSHKey(application.appName);
// await updateApplication(input.applicationId, {
// customGitSSHKey: null,
// });

View File

@@ -18,8 +18,8 @@ import { randomizeComposeFile } from "@/server/utils/docker/compose";
import { removeComposeDirectory } from "@/server/utils/filesystem/directory";
import {
generateSSHKey,
readRSAFile,
removeRSAFiles,
readSSHPublicKey,
removeSSHKey,
} from "@/server/utils/filesystem/ssh";
import { templates } from "@/templates/templates";
import type { TemplatesKeys } from "@/templates/types/templates-data.type";
@@ -102,7 +102,7 @@ export const composeRouter = createTRPCRouter({
async () => await removeCompose(composeResult),
async () => await removeDeploymentsByComposeId(composeResult),
async () => await removeComposeDirectory(composeResult.appName),
async () => await removeRSAFiles(composeResult.appName),
async () => await removeSSHKey(composeResult.appName),
];
for (const operation of cleanupOperations) {
@@ -187,7 +187,7 @@ export const composeRouter = createTRPCRouter({
const compose = await findComposeById(input.composeId);
try {
await generateSSHKey(compose.appName);
const file = await readRSAFile(compose.appName);
const file = await readSSHPublicKey(compose.appName);
await updateCompose(input.composeId, {
customGitSSHKey: file,
@@ -208,7 +208,7 @@ export const composeRouter = createTRPCRouter({
.input(apiFindCompose)
.mutation(async ({ input }) => {
const compose = await findComposeById(input.composeId);
await removeRSAFiles(compose.appName);
await removeSSHKey(compose.appName);
await updateCompose(input.composeId, {
customGitSSHKey: null,
});

View File

@@ -6,6 +6,7 @@ import {
type apiUpdateSshKey,
sshKeys,
} from "@/server/db/schema";
import { removeSSHKey, saveSSHKey } from "@/server/utils/filesystem/ssh";
import { TRPCError } from "@trpc/server";
import { eq } from "drizzle-orm";
@@ -20,6 +21,11 @@ export const createSshKey = async ({
.returning()
.then((response) => response[0])
.catch((e) => console.error(e));
if (sshKey) {
saveSSHKey(sshKey.sshKeyId, sshKey.publicKey, privateKey);
}
if (!sshKey) {
throw new TRPCError({
code: "BAD_REQUEST",
@@ -38,6 +44,8 @@ export const removeSSHKeyById = async (
.where(eq(sshKeys.sshKeyId, sshKeyId))
.returning();
removeSSHKey(sshKeyId);
return result[0];
};