mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-05 20:26:44 +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)
|
.default(InfisicalProjectTemplate.Default)
|
||||||
.describe(PROJECTS.CREATE.template),
|
.describe(PROJECTS.CREATE.template),
|
||||||
type: z.nativeEnum(ProjectType).default(ProjectType.SecretManager),
|
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: {
|
response: {
|
||||||
200: z.object({
|
200: z.object({
|
||||||
@@ -183,7 +184,8 @@ export const registerProjectRouter = async (server: FastifyZodProvider) => {
|
|||||||
kmsKeyId: req.body.kmsKeyId,
|
kmsKeyId: req.body.kmsKeyId,
|
||||||
template: req.body.template,
|
template: req.body.template,
|
||||||
type: req.body.type,
|
type: req.body.type,
|
||||||
createDefaultEnvs: req.body.shouldCreateDefaultEnvs
|
createDefaultEnvs: req.body.shouldCreateDefaultEnvs,
|
||||||
|
hasDeleteProtection: req.body.hasDeleteProtection
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.services.telemetry.sendPostHogEvents({
|
await server.services.telemetry.sendPostHogEvents({
|
||||||
|
|||||||
@@ -110,7 +110,8 @@ export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider
|
|||||||
.default(InfisicalProjectTemplate.Default)
|
.default(InfisicalProjectTemplate.Default)
|
||||||
.describe(PROJECTS.CREATE.template),
|
.describe(PROJECTS.CREATE.template),
|
||||||
type: z.nativeEnum(ProjectType).default(ProjectType.SecretManager),
|
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: {
|
response: {
|
||||||
200: z.object({
|
200: z.object({
|
||||||
@@ -131,7 +132,8 @@ export const registerDeprecatedProjectRouter = async (server: FastifyZodProvider
|
|||||||
kmsKeyId: req.body.kmsKeyId,
|
kmsKeyId: req.body.kmsKeyId,
|
||||||
template: req.body.template,
|
template: req.body.template,
|
||||||
type: req.body.type,
|
type: req.body.type,
|
||||||
createDefaultEnvs: req.body.shouldCreateDefaultEnvs
|
createDefaultEnvs: req.body.shouldCreateDefaultEnvs,
|
||||||
|
hasDeleteProtection: req.body.hasDeleteProtection
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.services.telemetry.sendPostHogEvents({
|
await server.services.telemetry.sendPostHogEvents({
|
||||||
|
|||||||
@@ -252,7 +252,8 @@ export const projectServiceFactory = ({
|
|||||||
tx: trx,
|
tx: trx,
|
||||||
createDefaultEnvs = true,
|
createDefaultEnvs = true,
|
||||||
template = InfisicalProjectTemplate.Default,
|
template = InfisicalProjectTemplate.Default,
|
||||||
type = ProjectType.SecretManager
|
type = ProjectType.SecretManager,
|
||||||
|
hasDeleteProtection
|
||||||
}: TCreateProjectDTO) => {
|
}: TCreateProjectDTO) => {
|
||||||
const organization = await orgDAL.findOne({ id: actorOrgId });
|
const organization = await orgDAL.findOne({ id: actorOrgId });
|
||||||
const { permission } = await permissionService.getOrgPermission({
|
const { permission } = await permissionService.getOrgPermission({
|
||||||
@@ -325,7 +326,8 @@ export const projectServiceFactory = ({
|
|||||||
slug,
|
slug,
|
||||||
kmsSecretManagerKeyId: kmsKeyId,
|
kmsSecretManagerKeyId: kmsKeyId,
|
||||||
version: ProjectVersion.V3,
|
version: ProjectVersion.V3,
|
||||||
pitVersionLimit: 10
|
pitVersionLimit: 10,
|
||||||
|
hasDeleteProtection
|
||||||
},
|
},
|
||||||
tx
|
tx
|
||||||
);
|
);
|
||||||
@@ -587,6 +589,7 @@ export const projectServiceFactory = ({
|
|||||||
actorOrgId,
|
actorOrgId,
|
||||||
actionProjectType: ActionProjectType.Any
|
actionProjectType: ActionProjectType.Any
|
||||||
});
|
});
|
||||||
|
|
||||||
return project;
|
return project;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ export type TCreateProjectDTO = {
|
|||||||
pitVersionLimit?: number;
|
pitVersionLimit?: number;
|
||||||
tx?: Knex;
|
tx?: Knex;
|
||||||
type?: ProjectType;
|
type?: ProjectType;
|
||||||
|
hasDeleteProtection?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TDeleteProjectBySlugDTO = {
|
export type TDeleteProjectBySlugDTO = {
|
||||||
|
|||||||
Reference in New Issue
Block a user