mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-04 19:26:19 +00:00
feat: resolved failing testcases
This commit is contained in:
@@ -40,8 +40,8 @@
|
|||||||
"type:check": "tsc --noEmit",
|
"type:check": "tsc --noEmit",
|
||||||
"lint:fix": "eslint --fix --ext js,ts ./src",
|
"lint:fix": "eslint --fix --ext js,ts ./src",
|
||||||
"lint": "eslint 'src/**/*.ts'",
|
"lint": "eslint 'src/**/*.ts'",
|
||||||
"test:e2e": "vitest run -c vitest.e2e.config.ts",
|
"test:e2e": "vitest run -c vitest.e2e.config.ts --bail=1",
|
||||||
"test:e2e-watch": "vitest -c vitest.e2e.config.ts",
|
"test:e2e-watch": "vitest -c vitest.e2e.config.ts --bail=<value>",
|
||||||
"test:e2e-coverage": "vitest run --coverage -c vitest.e2e.config.ts",
|
"test:e2e-coverage": "vitest run --coverage -c vitest.e2e.config.ts",
|
||||||
"generate:component": "tsx ./scripts/create-backend-file.ts",
|
"generate:component": "tsx ./scripts/create-backend-file.ts",
|
||||||
"generate:schema": "tsx ./scripts/generate-schema-types.ts",
|
"generate:schema": "tsx ./scripts/generate-schema-types.ts",
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ export const fnSecretBulkUpdate = async ({
|
|||||||
encryptedValue,
|
encryptedValue,
|
||||||
userId,
|
userId,
|
||||||
encryptedComment,
|
encryptedComment,
|
||||||
version,
|
|
||||||
metadata,
|
metadata,
|
||||||
reminderNote,
|
reminderNote,
|
||||||
reminderRepeatDays
|
reminderRepeatDays
|
||||||
@@ -149,7 +148,6 @@ export const fnSecretBulkUpdate = async ({
|
|||||||
key,
|
key,
|
||||||
userId,
|
userId,
|
||||||
encryptedComment,
|
encryptedComment,
|
||||||
version,
|
|
||||||
metadata,
|
metadata,
|
||||||
reminderNote,
|
reminderNote,
|
||||||
encryptedValue,
|
encryptedValue,
|
||||||
|
|||||||
@@ -370,12 +370,12 @@ export const secretV2BridgeServiceFactory = ({
|
|||||||
if (!folder)
|
if (!folder)
|
||||||
throw new BadRequestError({
|
throw new BadRequestError({
|
||||||
message: "Folder not found for the given environment slug & secret path",
|
message: "Folder not found for the given environment slug & secret path",
|
||||||
name: "Create secret"
|
name: "Delete secret"
|
||||||
});
|
});
|
||||||
const folderId = folder.id;
|
const folderId = folder.id;
|
||||||
|
|
||||||
if (ActorType.USER !== actor && inputSecret.type === SecretType.Personal) {
|
if (ActorType.USER !== actor && inputSecret.type === SecretType.Personal) {
|
||||||
throw new BadRequestError({ message: "Must be user to create personal secret" });
|
throw new BadRequestError({ message: "Must be user to delete personal secret" });
|
||||||
}
|
}
|
||||||
|
|
||||||
const deletedSecret = await secretDAL.transaction(async (tx) =>
|
const deletedSecret = await secretDAL.transaction(async (tx) =>
|
||||||
|
|||||||
@@ -547,10 +547,51 @@ export const fnSecretBulkInsert = async ({
|
|||||||
secretVersionTagDAL,
|
secretVersionTagDAL,
|
||||||
tx
|
tx
|
||||||
}: TFnSecretBulkInsert) => {
|
}: TFnSecretBulkInsert) => {
|
||||||
const newSecrets = await secretDAL.insertMany(
|
const sanitizedInputSecrets = inputSecrets.map(
|
||||||
inputSecrets.map(({ tags, references, ...el }) => ({ ...el, folderId })),
|
({
|
||||||
tx
|
skipMultilineEncoding,
|
||||||
|
type,
|
||||||
|
userId,
|
||||||
|
version,
|
||||||
|
metadata,
|
||||||
|
algorithm,
|
||||||
|
secretKeyIV,
|
||||||
|
secretKeyTag,
|
||||||
|
secretValueIV,
|
||||||
|
keyEncoding,
|
||||||
|
secretValueTag,
|
||||||
|
secretCommentIV,
|
||||||
|
secretBlindIndex,
|
||||||
|
secretCommentTag,
|
||||||
|
secretKeyCiphertext,
|
||||||
|
secretReminderNote,
|
||||||
|
secretValueCiphertext,
|
||||||
|
secretCommentCiphertext,
|
||||||
|
secretReminderRepeatDays
|
||||||
|
}) => ({
|
||||||
|
skipMultilineEncoding,
|
||||||
|
folderId,
|
||||||
|
type,
|
||||||
|
userId,
|
||||||
|
version,
|
||||||
|
metadata,
|
||||||
|
algorithm,
|
||||||
|
secretKeyIV,
|
||||||
|
secretKeyTag,
|
||||||
|
secretValueIV,
|
||||||
|
keyEncoding,
|
||||||
|
secretValueTag,
|
||||||
|
secretCommentIV,
|
||||||
|
secretBlindIndex,
|
||||||
|
secretCommentTag,
|
||||||
|
secretKeyCiphertext,
|
||||||
|
secretReminderNote,
|
||||||
|
secretValueCiphertext,
|
||||||
|
secretCommentCiphertext,
|
||||||
|
secretReminderRepeatDays
|
||||||
|
})
|
||||||
);
|
);
|
||||||
|
const newSecrets = await secretDAL.insertMany(sanitizedInputSecrets, tx);
|
||||||
const newSecretGroupByBlindIndex = groupBy(newSecrets, (item) => item.secretBlindIndex as string);
|
const newSecretGroupByBlindIndex = groupBy(newSecrets, (item) => item.secretBlindIndex as string);
|
||||||
const newSecretTags = inputSecrets.flatMap(({ tags: secretTags = [], secretBlindIndex }) =>
|
const newSecretTags = inputSecrets.flatMap(({ tags: secretTags = [], secretBlindIndex }) =>
|
||||||
secretTags.map((tag) => ({
|
secretTags.map((tag) => ({
|
||||||
@@ -559,9 +600,8 @@ export const fnSecretBulkInsert = async ({
|
|||||||
}))
|
}))
|
||||||
);
|
);
|
||||||
const secretVersions = await secretVersionDAL.insertMany(
|
const secretVersions = await secretVersionDAL.insertMany(
|
||||||
inputSecrets.map(({ tags, references, ...el }) => ({
|
sanitizedInputSecrets.map((el) => ({
|
||||||
...el,
|
...el,
|
||||||
folderId,
|
|
||||||
secretId: newSecretGroupByBlindIndex[el.secretBlindIndex as string][0].id
|
secretId: newSecretGroupByBlindIndex[el.secretBlindIndex as string][0].id
|
||||||
})),
|
})),
|
||||||
tx
|
tx
|
||||||
@@ -596,13 +636,55 @@ export const fnSecretBulkUpdate = async ({
|
|||||||
secretTagDAL,
|
secretTagDAL,
|
||||||
secretVersionTagDAL
|
secretVersionTagDAL
|
||||||
}: TFnSecretBulkUpdate) => {
|
}: TFnSecretBulkUpdate) => {
|
||||||
const newSecrets = await secretDAL.bulkUpdate(
|
const sanitizedInputSecrets = inputSecrets.map(
|
||||||
inputSecrets.map(({ filter, data: { tags, references, ...data } }) => ({
|
({
|
||||||
|
filter,
|
||||||
|
data: {
|
||||||
|
skipMultilineEncoding,
|
||||||
|
type,
|
||||||
|
userId,
|
||||||
|
metadata,
|
||||||
|
algorithm,
|
||||||
|
secretKeyIV,
|
||||||
|
secretKeyTag,
|
||||||
|
secretValueIV,
|
||||||
|
keyEncoding,
|
||||||
|
secretValueTag,
|
||||||
|
secretCommentIV,
|
||||||
|
secretBlindIndex,
|
||||||
|
secretCommentTag,
|
||||||
|
secretKeyCiphertext,
|
||||||
|
secretReminderNote,
|
||||||
|
secretValueCiphertext,
|
||||||
|
secretCommentCiphertext,
|
||||||
|
secretReminderRepeatDays
|
||||||
|
}
|
||||||
|
}) => ({
|
||||||
filter: { ...filter, folderId },
|
filter: { ...filter, folderId },
|
||||||
data
|
data: {
|
||||||
})),
|
skipMultilineEncoding,
|
||||||
tx
|
type,
|
||||||
|
userId,
|
||||||
|
metadata,
|
||||||
|
algorithm,
|
||||||
|
secretKeyIV,
|
||||||
|
secretKeyTag,
|
||||||
|
secretValueIV,
|
||||||
|
keyEncoding,
|
||||||
|
secretValueTag,
|
||||||
|
secretCommentIV,
|
||||||
|
secretBlindIndex,
|
||||||
|
secretCommentTag,
|
||||||
|
secretKeyCiphertext,
|
||||||
|
secretReminderNote,
|
||||||
|
secretValueCiphertext,
|
||||||
|
secretCommentCiphertext,
|
||||||
|
secretReminderRepeatDays
|
||||||
|
}
|
||||||
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const newSecrets = await secretDAL.bulkUpdate(sanitizedInputSecrets, tx);
|
||||||
const secretVersions = await secretVersionDAL.insertMany(
|
const secretVersions = await secretVersionDAL.insertMany(
|
||||||
newSecrets.map(({ id, createdAt, updatedAt, ...el }) => ({
|
newSecrets.map(({ id, createdAt, updatedAt, ...el }) => ({
|
||||||
...el,
|
...el,
|
||||||
@@ -811,7 +893,7 @@ export const createManySecretsRawFnFactory = ({
|
|||||||
|
|
||||||
const newSecrets = await secretDAL.transaction(async (tx) =>
|
const newSecrets = await secretDAL.transaction(async (tx) =>
|
||||||
fnSecretBulkInsert({
|
fnSecretBulkInsert({
|
||||||
inputSecrets: inputSecrets.map(({ secretName, ...el }) => ({
|
inputSecrets: inputSecrets.map(({ secretName, tags: _, ...el }) => ({
|
||||||
...el,
|
...el,
|
||||||
version: 0,
|
version: 0,
|
||||||
secretBlindIndex: keyName2BlindIndex[secretName],
|
secretBlindIndex: keyName2BlindIndex[secretName],
|
||||||
|
|||||||
@@ -1675,6 +1675,7 @@ export const secretServiceFactory = ({
|
|||||||
});
|
});
|
||||||
return { type: SecretProtectionType.Approval as const, approval };
|
return { type: SecretProtectionType.Approval as const, approval };
|
||||||
}
|
}
|
||||||
|
|
||||||
const secrets = await createManySecret({
|
const secrets = await createManySecret({
|
||||||
projectId,
|
projectId,
|
||||||
environment,
|
environment,
|
||||||
|
|||||||
Reference in New Issue
Block a user