diff --git a/backend/src/db/migrations/20250718133527_project-unify-revert.ts b/backend/src/db/migrations/20250718133527_project-unify-revert.ts index 08db75b0d..4c2bb1137 100644 --- a/backend/src/db/migrations/20250718133527_project-unify-revert.ts +++ b/backend/src/db/migrations/20250718133527_project-unify-revert.ts @@ -13,9 +13,10 @@ const newProject = async (knex: Knex, projectId: string, projectType: ProjectTyp await knex(TableName.Project).insert({ ...project, type: projectType, + defaultProduct: projectType, // @ts-ignore id is required id: newProjectId, - slug: slugify(`${project?.name}-${alphaNumericNanoId(4)}`) + slug: slugify(`${project?.name}-${alphaNumericNanoId(8)}`) }); const customRoleMapping: Record = {}; @@ -198,11 +199,15 @@ const newProject = async (knex: Knex, projectId: string, projectType: ProjectTyp }; const kickOutSecretManagerProject = async (knex: Knex, oldProjectId: string) => { - const enviroments = await knex(TableName.Environment).where("projectId", oldProjectId).returning("id").first(); - if (enviroments) { + const secret = await knex(TableName.Secret) + .join(TableName.SecretFolder, `${TableName.SecretFolder}.id`, `${TableName.Secret}.folderId`) + .join(TableName.Environment, `${TableName.Environment}.id`, `${TableName.SecretFolder}.envId`) + .where("projectId", oldProjectId) + .returning(`${TableName.Secret}.id`) + .first(); + if (secret) { const newProjectId = await newProject(knex, oldProjectId, ProjectType.SecretManager); await knex(TableName.IntegrationAuth).where("projectId", oldProjectId).update("projectId", newProjectId); - await knex(TableName.ProjectBot).where("projectId", oldProjectId).update("projectId", newProjectId); await knex(TableName.SecretBlindIndex).where("projectId", oldProjectId).update("projectId", newProjectId); await knex(TableName.SecretSync).where("projectId", oldProjectId).update("projectId", newProjectId); await knex(TableName.SecretTag).where("projectId", oldProjectId).update("projectId", newProjectId); @@ -303,7 +308,7 @@ export async function up(knex: Knex): Promise { } await knex(TableName.Project).whereIn("id", ids).update("defaultProduct", null); } - } while (projectsToBeTyped.length > 0); + } while (projectsToBeSplit.length > 0); } } diff --git a/backend/src/ee/services/project-template/project-template-fns.ts b/backend/src/ee/services/project-template/project-template-fns.ts index 964201e11..8e8ebfa13 100644 --- a/backend/src/ee/services/project-template/project-template-fns.ts +++ b/backend/src/ee/services/project-template/project-template-fns.ts @@ -1,3 +1,4 @@ +import { ProjectType } from "@app/db/schemas"; import { InfisicalProjectTemplate, TUnpackedPermission @@ -5,7 +6,6 @@ import { import { getPredefinedRoles } from "@app/services/project-role/project-role-fns"; import { ProjectTemplateDefaultEnvironments } from "./project-template-constants"; -import { ProjectType } from "@app/db/schemas"; export const getDefaultProjectTemplate = (orgId: string, type: ProjectType) => ({ id: "b11b49a9-09a9-4443-916a-4246f9ff2c69", // random ID to appease zod diff --git a/backend/src/services/project-role/project-role-service.ts b/backend/src/services/project-role/project-role-service.ts index 30fc10164..dd0eecc68 100644 --- a/backend/src/services/project-role/project-role-service.ts +++ b/backend/src/services/project-role/project-role-service.ts @@ -2,7 +2,7 @@ import { ForbiddenError, MongoAbility, RawRuleOf } from "@casl/ability"; import { PackRule, packRules, unpackRules } from "@casl/ability/extra"; import { requestContext } from "@fastify/request-context"; -import { ActionProjectType, ProjectMembershipRole, TableName, TProjects, ProjectType } from "@app/db/schemas"; +import { ActionProjectType, ProjectMembershipRole, ProjectType, TableName, TProjects } from "@app/db/schemas"; import { TPermissionServiceFactory } from "@app/ee/services/permission/permission-service-types"; import { ProjectPermissionActions, diff --git a/backend/src/services/project-role/project-role-types.ts b/backend/src/services/project-role/project-role-types.ts index 7875ad0a1..508623a0c 100644 --- a/backend/src/services/project-role/project-role-types.ts +++ b/backend/src/services/project-role/project-role-types.ts @@ -1,4 +1,4 @@ -import { ProjectMembershipRole, TOrgRolesUpdate, TProjectRolesInsert, ProjectType } from "@app/db/schemas"; +import { ProjectMembershipRole, ProjectType, TOrgRolesUpdate, TProjectRolesInsert } from "@app/db/schemas"; import { TProjectPermission } from "@app/lib/types"; export enum ProjectRoleServiceIdentifierType {