feat(server): refactor for byok (#14911)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "ai_workspace_byok_configs" (
|
||||
"id" VARCHAR NOT NULL,
|
||||
"workspace_id" VARCHAR NOT NULL,
|
||||
"provider" VARCHAR NOT NULL,
|
||||
"name" VARCHAR NOT NULL,
|
||||
"description" VARCHAR,
|
||||
"encrypted_api_key" TEXT NOT NULL,
|
||||
"endpoint" TEXT,
|
||||
"sort_order" INTEGER NOT NULL DEFAULT 0,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"disabled_reason" VARCHAR,
|
||||
"last_validated_at" TIMESTAMPTZ(3),
|
||||
"last_validation_error" TEXT,
|
||||
"last_used_at" TIMESTAMPTZ(3),
|
||||
"last_error_at" TIMESTAMPTZ(3),
|
||||
"last_error" TEXT,
|
||||
"created_by" VARCHAR,
|
||||
"updated_by" VARCHAR,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMPTZ(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ai_workspace_byok_configs_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ai_usage_events" (
|
||||
"id" VARCHAR NOT NULL,
|
||||
"workspace_id" VARCHAR NOT NULL,
|
||||
"user_id" VARCHAR,
|
||||
"provider" VARCHAR NOT NULL,
|
||||
"provider_source" VARCHAR NOT NULL,
|
||||
"feature_kind" VARCHAR NOT NULL,
|
||||
"model" VARCHAR,
|
||||
"session_id" VARCHAR,
|
||||
"task_id" VARCHAR,
|
||||
"action_id" VARCHAR,
|
||||
"billing_unit_id" VARCHAR,
|
||||
"prompt_tokens" INTEGER NOT NULL DEFAULT 0,
|
||||
"completion_tokens" INTEGER NOT NULL DEFAULT 0,
|
||||
"total_tokens" INTEGER NOT NULL DEFAULT 0,
|
||||
"cached_tokens" INTEGER NOT NULL DEFAULT 0,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "ai_usage_events_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ai_workspace_byok_configs_workspace_id_idx" ON "ai_workspace_byok_configs"("workspace_id");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ai_workspace_byok_configs_workspace_id_provider_enabled_sor_idx" ON "ai_workspace_byok_configs"("workspace_id", "provider", "enabled", "sort_order");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ai_workspace_byok_configs_workspace_id_provider_name_key" ON "ai_workspace_byok_configs"("workspace_id", "provider", "name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ai_usage_events_workspace_id_created_at_idx" ON "ai_usage_events"("workspace_id", "created_at");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ai_usage_events_workspace_id_provider_source_created_at_idx" ON "ai_usage_events"("workspace_id", "provider_source", "created_at");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ai_usage_events_feature_kind_created_at_idx" ON "ai_usage_events"("feature_kind", "created_at");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "ai_usage_events_quota_exempt_idx" ON "ai_usage_events"("user_id", "provider_source", "feature_kind", "billing_unit_id");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ai_workspace_byok_configs" ADD CONSTRAINT "ai_workspace_byok_configs_workspace_id_fkey" FOREIGN KEY ("workspace_id") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ai_usage_events" ADD CONSTRAINT "ai_usage_events_workspace_id_fkey" FOREIGN KEY ("workspace_id") REFERENCES "workspaces"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user