mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-07 22:24:06 -05:00
improvement(custom-tools): make them workspace scoped + ux to manage them (#1772)
* improvement(custom-tools): make them workspace scoped * fix auth check * remove comments * add dup check * fix dup error message display * fix tests * fix on app loading of custom tools
This commit is contained in:
committed by
GitHub
parent
3b901b33d1
commit
a072e6d1d8
8
packages/db/migrations/0105_glamorous_wrecking_crew.sql
Normal file
8
packages/db/migrations/0105_glamorous_wrecking_crew.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
ALTER TABLE "custom_tools" DROP CONSTRAINT "custom_tools_user_id_user_id_fk";
|
||||
--> statement-breakpoint
|
||||
ALTER TABLE "custom_tools" ALTER COLUMN "user_id" DROP NOT NULL;--> statement-breakpoint
|
||||
-- Add workspace_id as nullable (existing tools will have null, new tools will be workspace-scoped)
|
||||
ALTER TABLE "custom_tools" ADD COLUMN "workspace_id" text;--> statement-breakpoint
|
||||
ALTER TABLE "custom_tools" ADD CONSTRAINT "custom_tools_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
||||
ALTER TABLE "custom_tools" ADD CONSTRAINT "custom_tools_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
||||
CREATE INDEX "custom_tools_workspace_id_idx" ON "custom_tools" USING btree ("workspace_id");
|
||||
7276
packages/db/migrations/meta/0105_snapshot.json
Normal file
7276
packages/db/migrations/meta/0105_snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -729,6 +729,13 @@
|
||||
"when": 1761848118406,
|
||||
"tag": "0104_orange_shinobi_shaw",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 105,
|
||||
"version": "7",
|
||||
"when": 1761860659858,
|
||||
"tag": "0105_glamorous_wrecking_crew",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -576,17 +576,22 @@ export const userStats = pgTable('user_stats', {
|
||||
billingBlocked: boolean('billing_blocked').notNull().default(false),
|
||||
})
|
||||
|
||||
export const customTools = pgTable('custom_tools', {
|
||||
id: text('id').primaryKey(),
|
||||
userId: text('user_id')
|
||||
.notNull()
|
||||
.references(() => user.id, { onDelete: 'cascade' }),
|
||||
title: text('title').notNull(),
|
||||
schema: json('schema').notNull(),
|
||||
code: text('code').notNull(),
|
||||
createdAt: timestamp('created_at').notNull().defaultNow(),
|
||||
updatedAt: timestamp('updated_at').notNull().defaultNow(),
|
||||
})
|
||||
export const customTools = pgTable(
|
||||
'custom_tools',
|
||||
{
|
||||
id: text('id').primaryKey(),
|
||||
workspaceId: text('workspace_id').references(() => workspace.id, { onDelete: 'cascade' }),
|
||||
userId: text('user_id').references(() => user.id, { onDelete: 'set null' }),
|
||||
title: text('title').notNull(),
|
||||
schema: json('schema').notNull(),
|
||||
code: text('code').notNull(),
|
||||
createdAt: timestamp('created_at').notNull().defaultNow(),
|
||||
updatedAt: timestamp('updated_at').notNull().defaultNow(),
|
||||
},
|
||||
(table) => ({
|
||||
workspaceIdIdx: index('custom_tools_workspace_id_idx').on(table.workspaceId),
|
||||
})
|
||||
)
|
||||
|
||||
export const subscription = pgTable(
|
||||
'subscription',
|
||||
|
||||
Reference in New Issue
Block a user