From d870b9ff4999e12b3fb659599051d2b1d8133023 Mon Sep 17 00:00:00 2001 From: Owen Date: Tue, 9 Jun 2026 21:36:12 -0700 Subject: [PATCH] Drop the not null on resource columns --- server/setup/scriptsPg/1.19.0.ts | 19 +++++++++++++++ server/setup/scriptsSqlite/1.19.0.ts | 36 ++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/server/setup/scriptsPg/1.19.0.ts b/server/setup/scriptsPg/1.19.0.ts index 26b7b0c1c..91520a899 100644 --- a/server/setup/scriptsPg/1.19.0.ts +++ b/server/setup/scriptsPg/1.19.0.ts @@ -304,6 +304,25 @@ export default async function migration() { await db.execute(sql` ALTER TABLE "resourceSessions" ADD CONSTRAINT "resourceSessions_policyWhitelistId_resourcePolicyWhitelist_id_fk" FOREIGN KEY ("policyWhitelistId") REFERENCES "public"."resourcePolicyWhitelist"("id") ON DELETE cascade ON UPDATE no action; `); + // remove not null/default from sso, applyRules, and emailWhitelistEnabled in preparation for resource policies + await db.execute( + sql`ALTER TABLE "resources" ALTER COLUMN "sso" DROP NOT NULL;` + ); + await db.execute( + sql`ALTER TABLE "resources" ALTER COLUMN "sso" DROP DEFAULT;` + ); + await db.execute( + sql`ALTER TABLE "resources" ALTER COLUMN "applyRules" DROP NOT NULL;` + ); + await db.execute( + sql`ALTER TABLE "resources" ALTER COLUMN "applyRules" DROP DEFAULT;` + ); + await db.execute( + sql`ALTER TABLE "resources" ALTER COLUMN "emailWhitelistEnabled" DROP NOT NULL;` + ); + await db.execute( + sql`ALTER TABLE "resources" ALTER COLUMN "emailWhitelistEnabled" DROP DEFAULT;` + ); await db.execute(sql`COMMIT`); console.log("Migrated database"); diff --git a/server/setup/scriptsSqlite/1.19.0.ts b/server/setup/scriptsSqlite/1.19.0.ts index dc80367d5..d76535225 100644 --- a/server/setup/scriptsSqlite/1.19.0.ts +++ b/server/setup/scriptsSqlite/1.19.0.ts @@ -360,6 +360,42 @@ export default async function migration() { ALTER TABLE 'targets' ADD 'authToken' text; ` ).run(); + + // remove not null/default from sso, applyRules, and emailWhitelistEnabled in preparation for resource policies + db.prepare( + `ALTER TABLE 'resources' ADD COLUMN 'sso2' integer;` + ).run(); + db.prepare(`UPDATE 'resources' SET 'sso2' = 'sso';`).run(); + db.prepare(`ALTER TABLE 'resources' DROP COLUMN 'sso';`).run(); + db.prepare( + `ALTER TABLE 'resources' RENAME COLUMN 'sso2' TO 'sso';` + ).run(); + + db.prepare( + `ALTER TABLE 'resources' ADD COLUMN 'applyRules2' integer;` + ).run(); + db.prepare( + `UPDATE 'resources' SET 'applyRules2' = 'applyRules';` + ).run(); + db.prepare( + `ALTER TABLE 'resources' DROP COLUMN 'applyRules';` + ).run(); + db.prepare( + `ALTER TABLE 'resources' RENAME COLUMN 'applyRules2' TO 'applyRules';` + ).run(); + + db.prepare( + `ALTER TABLE 'resources' ADD COLUMN 'emailWhitelistEnabled2' integer;` + ).run(); + db.prepare( + `UPDATE 'resources' SET 'emailWhitelistEnabled2' = 'emailWhitelistEnabled';` + ).run(); + db.prepare( + `ALTER TABLE 'resources' DROP COLUMN 'emailWhitelistEnabled';` + ).run(); + db.prepare( + `ALTER TABLE 'resources' RENAME COLUMN 'emailWhitelistEnabled2' TO 'emailWhitelistEnabled';` + ).run(); })(); const existingResources = db