mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-05 07:26:34 +00:00
Improvement on createCommit function to add changes in batches
This commit is contained in:
@@ -7,6 +7,7 @@ import { TPermissionServiceFactory } from "@app/ee/services/permission/permissio
|
|||||||
import { ProjectPermissionCommitsActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
import { ProjectPermissionCommitsActions, ProjectPermissionSub } from "@app/ee/services/permission/project-permission";
|
||||||
import { getConfig } from "@app/lib/config/env";
|
import { getConfig } from "@app/lib/config/env";
|
||||||
import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors";
|
import { BadRequestError, DatabaseError, NotFoundError } from "@app/lib/errors";
|
||||||
|
import { chunkArray } from "@app/lib/fn";
|
||||||
import { logger } from "@app/lib/logger";
|
import { logger } from "@app/lib/logger";
|
||||||
|
|
||||||
import { ActorAuthMethod, ActorType } from "../auth/auth-type";
|
import { ActorAuthMethod, ActorType } from "../auth/auth-type";
|
||||||
@@ -590,15 +591,22 @@ export const folderCommitServiceFactory = ({
|
|||||||
tx
|
tx
|
||||||
);
|
);
|
||||||
|
|
||||||
await folderCommitChangesDAL.insertMany(
|
const batchSize = 500;
|
||||||
data.changes.map((change) => ({
|
const chunks = chunkArray(data.changes, batchSize);
|
||||||
folderCommitId: newCommit.id,
|
|
||||||
changeType: change.type,
|
await Promise.all(
|
||||||
secretVersionId: change.secretVersionId,
|
chunks.map(async (chunk) => {
|
||||||
folderVersionId: change.folderVersionId,
|
await folderCommitChangesDAL.insertMany(
|
||||||
isUpdate: change.isUpdate || false
|
chunk.map((change) => ({
|
||||||
})),
|
folderCommitId: newCommit.id,
|
||||||
tx
|
changeType: change.type,
|
||||||
|
secretVersionId: change.secretVersionId,
|
||||||
|
folderVersionId: change.folderVersionId,
|
||||||
|
isUpdate: change.isUpdate || false
|
||||||
|
})),
|
||||||
|
tx
|
||||||
|
);
|
||||||
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
await createFolderCheckpoint({ folderId: data.folderId, folderCommitId: newCommit.id, tx });
|
await createFolderCheckpoint({ folderId: data.folderId, folderCommitId: newCommit.id, tx });
|
||||||
|
|||||||
Reference in New Issue
Block a user