mirror of
https://github.com/Infisical/infisical.git
synced 2025-03-25 14:05:03 +00:00
Feat: Visualize imported folders in overview page (include imported folders in response)
This commit is contained in:
@ -415,6 +415,7 @@ export const registerRoutes = async (
|
||||
const folderService = secretFolderServiceFactory({
|
||||
permissionService,
|
||||
folderDAL,
|
||||
secretImportDAL,
|
||||
folderVersionDAL,
|
||||
projectEnvDAL,
|
||||
snapshotService
|
||||
@ -471,7 +472,8 @@ export const registerRoutes = async (
|
||||
snapshotService,
|
||||
secretQueueService,
|
||||
secretImportDAL,
|
||||
projectBotService
|
||||
projectBotService,
|
||||
projectEnvDAL
|
||||
});
|
||||
const sarService = secretApprovalRequestServiceFactory({
|
||||
permissionService,
|
||||
|
@ -200,14 +200,15 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
|
||||
}),
|
||||
response: {
|
||||
200: z.object({
|
||||
folders: SecretFoldersSchema.array()
|
||||
folders: SecretFoldersSchema.array(),
|
||||
importedFolders: z.any().array()
|
||||
})
|
||||
}
|
||||
},
|
||||
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.SERVICE_TOKEN, AuthMode.IDENTITY_ACCESS_TOKEN]),
|
||||
handler: async (req) => {
|
||||
const path = req.query.path || req.query.directory;
|
||||
const folders = await server.services.folder.getFolders({
|
||||
const { folders, importedFolders } = await server.services.folder.getFolders({
|
||||
actorId: req.permission.id,
|
||||
actor: req.permission.type,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
@ -216,7 +217,7 @@ export const registerSecretFolderRouter = async (server: FastifyZodProvider) =>
|
||||
projectId: req.query.workspaceId,
|
||||
path
|
||||
});
|
||||
return { folders };
|
||||
return { folders, importedFolders };
|
||||
}
|
||||
});
|
||||
};
|
||||
|
@ -9,6 +9,7 @@ import { TSecretSnapshotServiceFactory } from "@app/ee/services/secret-snapshot/
|
||||
import { BadRequestError } from "@app/lib/errors";
|
||||
|
||||
import { TProjectEnvDALFactory } from "../project-env/project-env-dal";
|
||||
import { TSecretImportDALFactory } from "../secret-import/secret-import-dal";
|
||||
import { TSecretFolderDALFactory } from "./secret-folder-dal";
|
||||
import { TCreateFolderDTO, TDeleteFolderDTO, TGetFolderDTO, TUpdateFolderDTO } from "./secret-folder-types";
|
||||
import { TSecretFolderVersionDALFactory } from "./secret-folder-version-dal";
|
||||
@ -17,6 +18,7 @@ type TSecretFolderServiceFactoryDep = {
|
||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||
snapshotService: Pick<TSecretSnapshotServiceFactory, "performSnapshot">;
|
||||
folderDAL: TSecretFolderDALFactory;
|
||||
secretImportDAL: TSecretImportDALFactory;
|
||||
projectEnvDAL: Pick<TProjectEnvDALFactory, "findOne">;
|
||||
folderVersionDAL: TSecretFolderVersionDALFactory;
|
||||
};
|
||||
@ -26,6 +28,7 @@ export type TSecretFolderServiceFactory = ReturnType<typeof secretFolderServiceF
|
||||
export const secretFolderServiceFactory = ({
|
||||
folderDAL,
|
||||
snapshotService,
|
||||
secretImportDAL,
|
||||
permissionService,
|
||||
projectEnvDAL,
|
||||
folderVersionDAL
|
||||
@ -229,10 +232,13 @@ export const secretFolderServiceFactory = ({
|
||||
if (!env) throw new BadRequestError({ message: "Environment not found", name: "get folders" });
|
||||
|
||||
const parentFolder = await folderDAL.findBySecretPath(projectId, environment, secretPath);
|
||||
if (!parentFolder) return [];
|
||||
if (!parentFolder) return { folders: [], importedFolders: [] };
|
||||
|
||||
const folders = await folderDAL.find({ envId: env.id, parentId: parentFolder.id });
|
||||
return folders;
|
||||
|
||||
const importedFolders = await secretImportDAL.find({ folderId: parentFolder.id });
|
||||
|
||||
return { folders, importedFolders };
|
||||
};
|
||||
|
||||
return {
|
||||
|
Reference in New Issue
Block a user