feat(console): block reported model providers
This commit is contained in:
parent
849c2598ab
commit
40d3787d62
9 changed files with 3282 additions and 1 deletions
46
packages/console/core/script/model-access.ts
Normal file
46
packages/console/core/script/model-access.ts
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
import { parseArgs } from "node:util"
|
||||
import { Database, eq } from "../src/drizzle/index.js"
|
||||
import { ModelAccess } from "../src/model-access.js"
|
||||
import { WorkspaceTable } from "../src/schema/workspace.sql.js"
|
||||
|
||||
const args = parseArgs({
|
||||
args: process.argv.slice(2),
|
||||
options: {
|
||||
workspace: { type: "string", short: "w" },
|
||||
provider: { type: "string", short: "p" },
|
||||
unblock: { type: "boolean", default: false },
|
||||
},
|
||||
})
|
||||
|
||||
if (!args.values.workspace || !args.values.provider) {
|
||||
console.error("Usage: model-access.ts --workspace <workspaceID> --provider <anthropic|openai> [--unblock]")
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const provider = ModelAccess.parseProvider(args.values.provider)
|
||||
const workspace = await Database.use((tx) =>
|
||||
tx
|
||||
.select({ block: WorkspaceTable.blocked_model_providers })
|
||||
.from(WorkspaceTable)
|
||||
.where(eq(WorkspaceTable.id, args.values.workspace!))
|
||||
.then((rows) => rows[0]),
|
||||
)
|
||||
|
||||
if (!workspace) {
|
||||
console.error(`Workspace ${args.values.workspace} not found`)
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const current = workspace.block ?? []
|
||||
const block = args.values.unblock
|
||||
? current.filter((item) => item !== provider)
|
||||
: Array.from(new Set([...current, provider]))
|
||||
|
||||
await Database.use((tx) =>
|
||||
tx
|
||||
.update(WorkspaceTable)
|
||||
.set({ blocked_model_providers: block })
|
||||
.where(eq(WorkspaceTable.id, args.values.workspace!)),
|
||||
)
|
||||
|
||||
console.log(`${args.values.unblock ? "Unblocked" : "Blocked"} ${provider} models for ${args.values.workspace}`)
|
||||
Loading…
Add table
Add a link
Reference in a new issue