Skip to content

Commit 4e68075

Browse files
committed
chore(db): drop retired usage columns and compatibility scaffolding
1 parent aeec08a commit 4e68075

58 files changed

Lines changed: 27094 additions & 1221 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/migrations.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ jobs:
8181
echo "ERROR: db:push needs an interactive rename decision; land it as a versioned migration instead of relying on push." >&2
8282
exit 1
8383
fi
84-
bun run ./scripts/apply-dev-workspace-file-size-cutover.ts
8584
else
8685
echo "Applying versioned migrations (db:migrate)"
8786
bun run ./scripts/migrate.ts

.github/workflows/test-build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@ jobs:
8585
working-directory: packages/db
8686
run: bun run db:migrate
8787

88+
- name: Verify retired-column contract migration in PostgreSQL
89+
working-directory: packages/db
90+
env:
91+
RETIRED_COLUMNS_TEST_DATABASE_URL: postgresql://postgres:postgres@127.0.0.1:5432/sim_auth_scim
92+
run: bunx vitest run scripts/retired-columns.postgres.test.ts
93+
8894
- name: Verify OAuth lifecycle and SCIM membership guards in PostgreSQL
8995
working-directory: apps/sim
9096
# These suites share a schema and install triggers; parallel files can deadlock DDL against cleanup.

apps/sim/app/api/files/uploads/finalizers.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { AuditAction, AuditResourceType, recordAudit } from '@sim/audit'
22
import { type Principal, resolvePrincipalAuditAttribution } from '@sim/auth/principal'
33
import { db } from '@sim/db'
4-
import { withInsertColumns } from '@sim/db/insert-columns'
5-
import { type WorkspaceFileRow, workspaceFileColumns, workspaceFiles } from '@sim/db/schema'
4+
import { type WorkspaceFileRow, workspaceFiles } from '@sim/db/schema'
65
import { generateId } from '@sim/utils/id'
76
import { eq, sql } from 'drizzle-orm'
87
import type { V2File } from '@/lib/api/contracts/v2/files'
@@ -367,7 +366,7 @@ async function insertOrLoadFileMetadata(
367366

368367
const now = new Date()
369368
const [inserted] = await db
370-
.insert(withInsertColumns(workspaceFiles, workspaceFileColumns))
369+
.insert(workspaceFiles)
371370
.values({
372371
id: generateId(),
373372
key: input.key,
@@ -384,7 +383,7 @@ async function insertOrLoadFileMetadata(
384383
contentUpdatedAt: now,
385384
})
386385
.onConflictDoNothing()
387-
.returning(workspaceFileColumns)
386+
.returning()
388387

389388
if (inserted) return { file: inserted, created: true }
390389

@@ -399,7 +398,7 @@ async function insertOrLoadFileMetadata(
399398

400399
async function findFileMetadataByKey(key: string): Promise<FileMetadataRecord | undefined> {
401400
const [file] = await db
402-
.select(workspaceFileColumns)
401+
.select()
403402
.from(workspaceFiles)
404403
.where(eq(workspaceFiles.key, key))
405404
.orderBy(sql`${workspaceFiles.deletedAt} IS NULL DESC`)

apps/sim/app/api/organizations/[id]/route.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { AuditAction, AuditResourceType, recordAudit } from '@sim/audit'
22
import { db } from '@sim/db'
3-
import { member, organization, organizationColumns } from '@sim/db/schema'
3+
import { member, organization } from '@sim/db/schema'
44
import { createLogger } from '@sim/logger'
55
import { isOrgAdminRole } from '@sim/platform-authz/workspace'
66
import { and, eq, ne } from 'drizzle-orm'
@@ -64,7 +64,7 @@ export const GET = withRouteHandler(
6464
}
6565

6666
const organizationEntry = await db
67-
.select(organizationColumns)
67+
.select()
6868
.from(organization)
6969
.where(eq(organization.id, organizationId))
7070
.limit(1)
@@ -156,7 +156,7 @@ export const PUT = withRouteHandler(
156156
if (name !== undefined || slug !== undefined || logo !== undefined) {
157157
if (slug !== undefined) {
158158
const existingSlug = await db
159-
.select(organizationColumns)
159+
.select()
160160
.from(organization)
161161
.where(and(eq(organization.slug, slug), ne(organization.id, organizationId)))
162162
.limit(1)
@@ -180,7 +180,7 @@ export const PUT = withRouteHandler(
180180
.update(organization)
181181
.set(updateData)
182182
.where(eq(organization.id, organizationId))
183-
.returning(organizationColumns)
183+
.returning()
184184

185185
if (updatedOrg.length === 0) {
186186
return NextResponse.json({ error: 'Organization not found' }, { status: 404 })

apps/sim/app/api/v1/admin/credits/route.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
2525

2626
import { AuditAction, AuditResourceType, recordAudit } from '@sim/audit'
2727
import { db } from '@sim/db'
28-
import { withInsertColumns } from '@sim/db/insert-columns'
29-
import { organization, subscription, user, userStats, userStatsColumns } from '@sim/db/schema'
28+
import { organization, subscription, user, userStats } from '@sim/db/schema'
3029
import { createLogger } from '@sim/logger'
3130
import { generateShortId } from '@sim/utils/id'
3231
import { normalizeEmail } from '@sim/utils/string'
@@ -156,7 +155,7 @@ export const POST = withRouteHandler(
156155
.limit(1)
157156

158157
if (!existingStats) {
159-
await db.insert(withInsertColumns(userStats, userStatsColumns)).values({
158+
await db.insert(userStats).values({
160159
id: generateShortId(),
161160
userId: entityId,
162161
})

apps/sim/app/api/v1/admin/organizations/[id]/billing/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717

1818
import { db, dbReplica } from '@sim/db'
19-
import { member, organization, organizationColumns } from '@sim/db/schema'
19+
import { member, organization } from '@sim/db/schema'
2020
import { createLogger } from '@sim/logger'
2121
import { count, eq } from 'drizzle-orm'
2222
import {
@@ -155,7 +155,7 @@ export const PATCH = withRouteHandler(
155155
if (!parsed.success) return parsed.response
156156

157157
const [orgData] = await db
158-
.select(organizationColumns)
158+
.select()
159159
.from(organization)
160160
.where(eq(organization.id, organizationId))
161161
.limit(1)

apps/sim/app/api/v1/admin/organizations/[id]/route.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import {
3838
recordAuditBatch,
3939
} from '@sim/audit'
4040
import { db } from '@sim/db'
41-
import { member, organization, organizationColumns, subscription } from '@sim/db/schema'
41+
import { member, organization, subscription } from '@sim/db/schema'
4242
import { createLogger } from '@sim/logger'
4343
import { and, count, eq, inArray, isNull, not, or } from 'drizzle-orm'
4444
import {
@@ -93,7 +93,7 @@ export const GET = withRouteHandler(
9393

9494
try {
9595
const [orgData] = await db
96-
.select(organizationColumns)
96+
.select()
9797
.from(organization)
9898
.where(eq(organization.id, organizationId))
9999
.limit(1)
@@ -144,7 +144,7 @@ export const PATCH = withRouteHandler(
144144

145145
try {
146146
const [existing] = await db
147-
.select(organizationColumns)
147+
.select()
148148
.from(organization)
149149
.where(eq(organization.id, organizationId))
150150
.limit(1)
@@ -183,7 +183,7 @@ export const PATCH = withRouteHandler(
183183
.update(organization)
184184
.set(updateData)
185185
.where(eq(organization.id, organizationId))
186-
.returning(organizationColumns)
186+
.returning()
187187

188188
const updatedFields = auditUpdatedFields(updateData)
189189
logger.info(`Admin API: Updated organization ${organizationId}`, { updatedFields })

apps/sim/app/api/v1/admin/organizations/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
import { AuditAction, AuditResourceType, recordAudit } from '@sim/audit'
2929
import { db, dbReplica } from '@sim/db'
30-
import { member, organization, organizationColumns, user } from '@sim/db/schema'
30+
import { member, organization, user } from '@sim/db/schema'
3131
import { createLogger } from '@sim/logger'
3232
import { slugify } from '@sim/utils/string'
3333
import { count, eq } from 'drizzle-orm'
@@ -155,7 +155,7 @@ export const POST = withRouteHandler(
155155
})
156156

157157
const [createdOrg] = await db
158-
.select(organizationColumns)
158+
.select()
159159
.from(organization)
160160
.where(eq(organization.id, organizationId))
161161
.limit(1)

apps/sim/app/api/v1/admin/users/[id]/billing/route.ts

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,7 @@
2020
*/
2121

2222
import { db } from '@sim/db'
23-
import { withInsertColumns } from '@sim/db/insert-columns'
24-
import {
25-
member,
26-
organization,
27-
subscription,
28-
user,
29-
userStats,
30-
userStatsColumns,
31-
} from '@sim/db/schema'
23+
import { member, organization, subscription, user, userStats } from '@sim/db/schema'
3224
import { createLogger } from '@sim/logger'
3325
import { generateShortId } from '@sim/utils/id'
3426
import { eq, or } from 'drizzle-orm'
@@ -86,11 +78,7 @@ export const GET = withRouteHandler(
8678
return notFoundResponse('User')
8779
}
8880

89-
const [stats] = await db
90-
.select(userStatsColumns)
91-
.from(userStats)
92-
.where(eq(userStats.userId, userId))
93-
.limit(1)
81+
const [stats] = await db.select().from(userStats).where(eq(userStats.userId, userId)).limit(1)
9482

9583
// Canonical current-period usage (attributed usage_log, refresh-adjusted)
9684
// comes from the same helper users see.
@@ -180,7 +168,7 @@ export const PATCH = withRouteHandler(
180168
}
181169

182170
const [existingStats] = await db
183-
.select(userStatsColumns)
171+
.select()
184172
.from(userStats)
185173
.where(eq(userStats.userId, userId))
186174
.limit(1)
@@ -248,7 +236,7 @@ export const PATCH = withRouteHandler(
248236
if (existingStats) {
249237
await db.update(userStats).set(updateData).where(eq(userStats.userId, userId))
250238
} else {
251-
await db.insert(withInsertColumns(userStats, userStatsColumns)).values({
239+
await db.insert(userStats).values({
252240
id: generateShortId(),
253241
userId,
254242
...updateData,

apps/sim/ee/workspace-forking/lib/copy/copy-files.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { db } from '@sim/db'
2-
import { withInsertColumns } from '@sim/db/insert-columns'
3-
import { workspaceFileColumns, workspaceFiles } from '@sim/db/schema'
2+
import { workspaceFiles } from '@sim/db/schema'
43
import { createLogger } from '@sim/logger'
54
import { getErrorMessage } from '@sim/utils/errors'
65
import { generateId } from '@sim/utils/id'
@@ -197,7 +196,7 @@ export async function planForkFileCopies(params: {
197196
selectors.length === 0
198197
? []
199198
: await tx
200-
.select(workspaceFileColumns)
199+
.select()
201200
.from(workspaceFiles)
202201
.where(
203202
and(
@@ -363,7 +362,7 @@ export async function executeForkFileBlobCopies(
363362
await db.transaction(async (tx) => {
364363
assertForkCopyActive(control)
365364
const [inserted] = await tx
366-
.insert(withInsertColumns(workspaceFiles, workspaceFileColumns))
365+
.insert(workspaceFiles)
367366
.values({
368367
id: task.targetFileId,
369368
key: task.targetKey,

0 commit comments

Comments
 (0)