mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-19 19:03:36 +00:00
* feat: allow secret approval reviewers to read secrets * feat: allow secret approval reviewers to read secrets * fix: backfill migrations * lint: fix * revert: license file * Update backend/src/db/migrations/20250824192801_backfill-secret-read-compat-flag.ts Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> * fix: rename to `shouldCheckSecretPermission` * lint: fix --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
30 lines
977 B
TypeScript
30 lines
977 B
TypeScript
import { Knex } from "knex";
|
|
|
|
import { selectAllTableCols } from "@app/lib/knex";
|
|
|
|
import { TableName } from "../schemas";
|
|
|
|
const BATCH_SIZE = 100;
|
|
|
|
export async function up(knex: Knex): Promise<void> {
|
|
if (await knex.schema.hasColumn(TableName.SecretApprovalPolicy, "shouldCheckSecretPermission")) {
|
|
// find all existing SecretApprovalPolicy rows to backfill shouldCheckSecretPermission flag
|
|
const rows = await knex(TableName.SecretApprovalPolicy).select(selectAllTableCols(TableName.SecretApprovalPolicy));
|
|
|
|
if (rows.length > 0) {
|
|
for (let i = 0; i < rows.length; i += BATCH_SIZE) {
|
|
const batch = rows.slice(i, i + BATCH_SIZE);
|
|
// eslint-disable-next-line no-await-in-loop
|
|
await knex(TableName.SecretApprovalPolicy)
|
|
.whereIn(
|
|
"id",
|
|
batch.map((row) => row.id)
|
|
)
|
|
.update({ shouldCheckSecretPermission: true });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
export async function down(): Promise<void> {}
|