mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
misc: add delete protection for projects on create
This commit is contained in:
@@ -162,7 +162,8 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
|
||||
.default(InfisicalProjectTemplate.Default)
|
||||
.describe(PROJECTS.CREATE.template),
|
||||
type: z.nativeEnum(ProjectType).default(ProjectType.SecretManager),
|
||||
shouldCreateDefaultEnvs: z.boolean().optional().default(true)
|
||||
shouldCreateDefaultEnvs: z.boolean().optional().default(true),
|
||||
hasDeleteProtection: z.boolean().optional().default(false)
|
||||
}),
|
||||
response: {
|
||||
200: z.object({
|
||||
@@ -183,7 +184,8 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
|
||||
kmsKeyId: req.body.kmsKeyId,
|
||||
template: req.body.template,
|
||||
type: req.body.type,
|
||||
createDefaultEnvs: req.body.shouldCreateDefaultEnvs
|
||||
createDefaultEnvs: req.body.shouldCreateDefaultEnvs,
|
||||
hasDeleteProtection: req.body.hasDeleteProtection
|
||||
});
|
||||
|
||||
await server.services.telemetry.sendPostHogEvents({
|
||||
|
||||
@@ -110,7 +110,8 @@ export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider
|
||||
.default(InfisicalProjectTemplate.Default)
|
||||
.describe(PROJECTS.CREATE.template),
|
||||
type: z.nativeEnum(ProjectType).default(ProjectType.SecretManager),
|
||||
shouldCreateDefaultEnvs: z.boolean().optional().default(true)
|
||||
shouldCreateDefaultEnvs: z.boolean().optional().default(true),
|
||||
hasDeleteProtection: z.boolean().optional().default(false)
|
||||
}),
|
||||
response: {
|
||||
200: z.object({
|
||||
@@ -131,7 +132,8 @@ export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider
|
||||
kmsKeyId: req.body.kmsKeyId,
|
||||
template: req.body.template,
|
||||
type: req.body.type,
|
||||
createDefaultEnvs: req.body.shouldCreateDefaultEnvs
|
||||
createDefaultEnvs: req.body.shouldCreateDefaultEnvs,
|
||||
hasDeleteProtection: req.body.hasDeleteProtection
|
||||
});
|
||||
|
||||
await server.services.telemetry.sendPostHogEvents({
|
||||
|
||||
@@ -252,7 +252,8 @@ export const projectServiceFactory = ({
|
||||
tx: trx,
|
||||
createDefaultEnvs = true,
|
||||
template = InfisicalProjectTemplate.Default,
|
||||
type = ProjectType.SecretManager
|
||||
type = ProjectType.SecretManager,
|
||||
hasDeleteProtection
|
||||
}: TCreateProjectDTO) => {
|
||||
const organization = await orgDAL.findOne({ id: actorOrgId });
|
||||
const { permission } = await permissionService.getOrgPermission({
|
||||
@@ -325,7 +326,8 @@ export const projectServiceFactory = ({
|
||||
slug,
|
||||
kmsSecretManagerKeyId: kmsKeyId,
|
||||
version: ProjectVersion.V3,
|
||||
pitVersionLimit: 10
|
||||
pitVersionLimit: 10,
|
||||
hasDeleteProtection
|
||||
},
|
||||
tx
|
||||
);
|
||||
@@ -587,6 +589,7 @@ export const projectServiceFactory = ({
|
||||
actorOrgId,
|
||||
actionProjectType: ActionProjectType.Any
|
||||
});
|
||||
|
||||
return project;
|
||||
};
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ export type TCreateProjectDTO = {
|
||||
pitVersionLimit?: number;
|
||||
tx?: Knex;
|
||||
type?: ProjectType;
|
||||
hasDeleteProtection?: boolean;
|
||||
};
|
||||
|
||||
export type TDeleteProjectBySlugDTO = {
|
||||
|
||||
Reference in New Issue
Block a user