prefect server in zig
at main 85 lines 3.0 kB view raw
1const std = @import("std"); 2const zqlite = @import("zqlite"); 3const Thread = std.Thread; 4const log = @import("../logging.zig"); 5const backend = @import("backend.zig"); 6const migrate = @import("migrate.zig"); 7 8// sub-modules 9pub const flows = @import("flows.zig"); 10pub const flow_runs = @import("flow_runs.zig"); 11pub const task_runs = @import("task_runs.zig"); 12pub const events = @import("events.zig"); 13pub const block_types = @import("block_types.zig"); 14pub const block_schemas = @import("block_schemas.zig"); 15pub const block_documents = @import("block_documents.zig"); 16pub const variables = @import("variables.zig"); 17pub const work_pools = @import("work_pools.zig"); 18pub const work_queues = @import("work_queues.zig"); 19pub const workers = @import("workers.zig"); 20pub const deployments = @import("deployments.zig"); 21pub const deployment_schedules = @import("deployment_schedules.zig"); 22pub const concurrency_limits = @import("concurrency_limits.zig"); 23pub const flow_run_states = @import("flow_run_states.zig"); 24pub const task_run_states = @import("task_run_states.zig"); 25pub const logs = @import("logs.zig"); 26pub const automations = @import("automations.zig"); 27 28// re-export types for compatibility 29pub const FlowRow = flows.FlowRow; 30pub const FlowRunRow = flow_runs.FlowRunRow; 31pub const TaskRunRow = task_runs.TaskRunRow; 32 33// re-export functions for compatibility 34pub const getFlowByName = flows.getByName; 35pub const getFlowById = flows.getById; 36pub const insertFlow = flows.insert; 37pub const listFlows = flows.list; 38pub const updateFlow = flows.update; 39pub const deleteFlow = flows.delete; 40 41pub const insertFlowRun = flow_runs.insert; 42pub const getFlowRun = flow_runs.get; 43pub const setFlowRunState = flow_runs.setState; 44pub const setFlowRunStateWithSchedule = flow_runs.setStateWithSchedule; 45pub const listFlowRuns = flow_runs.list; 46 47pub const insertTaskRun = task_runs.insert; 48pub const getTaskRun = task_runs.get; 49pub const getTaskRunByKey = task_runs.getByKey; 50pub const setTaskRunState = task_runs.setState; 51pub const listTaskRuns = task_runs.list; 52 53pub const insertEventDeduped = events.insertDeduped; 54pub const trimEvents = events.trim; 55pub const countEvents = events.count; 56pub const queryRecentEvents = events.queryRecent; 57 58// legacy shared state (deprecated - use backend.db instead) 59pub var conn: zqlite.Conn = undefined; 60pub var mutex: Thread.Mutex = .{}; 61 62var path_buf: [256]u8 = undefined; 63 64pub fn init() !void { 65 // Initialize the unified backend (SQLite or PostgreSQL based on env vars) 66 try backend.init(); 67 68 // For backward compatibility with entity modules not yet migrated, 69 // also store the raw SQLite connection if using SQLite backend 70 switch (backend.db.impl) { 71 .sqlite => |s| { 72 conn = s.conn; 73 }, 74 .postgres => { 75 // postgres doesn't have a single conn - leave conn undefined 76 }, 77 } 78 79 // apply migrations (creates/updates schema) 80 try migrate.applyMigrations(); 81} 82 83pub fn close() void { 84 backend.close(); 85}