feat(plugin): update deployment flow

This commit is contained in:
BennyKok
2024-01-05 19:27:31 +08:00
parent d6707295cc
commit 157b126fbf
6 changed files with 930 additions and 74 deletions
+6 -2
View File
@@ -1,6 +1,7 @@
import { parseJWT } from "../../../../server/parseJWT";
import { db } from "@/db/db";
import {
snapshotType,
workflowAPIType,
workflowTable,
workflowType,
@@ -18,11 +19,11 @@ const corsHeaders = {
};
const UploadRequest = z.object({
// user_id: z.string(),
workflow_id: z.string().optional(),
workflow_name: z.string().optional(),
workflow_name: z.string().min(1).optional(),
workflow: workflowType,
workflow_api: workflowAPIType,
snapshot: snapshotType,
});
export async function OPTIONS(request: Request) {
@@ -64,6 +65,7 @@ export async function POST(request: Request) {
workflow_api,
workflow_id: _workflow_id,
workflow_name,
snapshot,
} = data;
let workflow_id = _workflow_id;
@@ -93,6 +95,7 @@ export async function POST(request: Request) {
workflow,
workflow_api,
version: 1,
snapshot: snapshot,
})
.returning();
version = data[0].version;
@@ -105,6 +108,7 @@ export async function POST(request: Request) {
workflow: workflow,
workflow_api,
// version: sql`${workflowVersionTable.version} + 1`,
snapshot: snapshot,
version: sql`(
SELECT COALESCE(MAX(version), 0) + 1
FROM ${workflowVersionTable}
+13 -1
View File
@@ -69,6 +69,7 @@ export const workflowVersionTable = dbSchema.table("workflow_versions", {
workflow: jsonb("workflow").$type<z.infer<typeof workflowType>>(),
workflow_api: jsonb("workflow_api").$type<z.infer<typeof workflowAPIType>>(),
version: integer("version").notNull(),
snapshot: jsonb("snapshot").$type<z.infer<typeof snapshotType>>(),
created_at: timestamp("created_at").defaultNow().notNull(),
updated_at: timestamp("updated_at").defaultNow().notNull(),
@@ -201,10 +202,21 @@ export const machinesTable = dbSchema.table("machines", {
auth_token: text("auth_token"),
type: machinesType("type").notNull().default("classic"),
status: machinesStatus("status").notNull().default("ready"),
snapshot: jsonb("snapshot").$type<any>(),
snapshot: jsonb("snapshot").$type<z.infer<typeof snapshotType>>(),
build_log: text("build_log"),
});
export const snapshotType = z.object({
comfyui: z.string(),
git_custom_nodes: z.record(
z.object({
hash: z.string(),
disabled: z.boolean(),
})
),
file_custom_nodes: z.array(z.any()),
});
export const insertMachineSchema = createInsertSchema(machinesTable, {
name: (schema) => schema.name.default("My Machine"),
endpoint: (schema) => schema.endpoint.default("http://127.0.0.1:8188"),