const std = @import("std"); const zqlite = @import("zqlite"); const Thread = std.Thread; const log = @import("../logging.zig"); const backend = @import("backend.zig"); const migrate = @import("migrate.zig"); // sub-modules pub const flows = @import("flows.zig"); pub const flow_runs = @import("flow_runs.zig"); pub const task_runs = @import("task_runs.zig"); pub const events = @import("events.zig"); pub const block_types = @import("block_types.zig"); pub const block_schemas = @import("block_schemas.zig"); pub const block_documents = @import("block_documents.zig"); pub const variables = @import("variables.zig"); pub const work_pools = @import("work_pools.zig"); pub const work_queues = @import("work_queues.zig"); pub const workers = @import("workers.zig"); pub const deployments = @import("deployments.zig"); pub const deployment_schedules = @import("deployment_schedules.zig"); pub const concurrency_limits = @import("concurrency_limits.zig"); pub const flow_run_states = @import("flow_run_states.zig"); pub const task_run_states = @import("task_run_states.zig"); pub const logs = @import("logs.zig"); pub const automations = @import("automations.zig"); // re-export types for compatibility pub const FlowRow = flows.FlowRow; pub const FlowRunRow = flow_runs.FlowRunRow; pub const TaskRunRow = task_runs.TaskRunRow; // re-export functions for compatibility pub const getFlowByName = flows.getByName; pub const getFlowById = flows.getById; pub const insertFlow = flows.insert; pub const listFlows = flows.list; pub const updateFlow = flows.update; pub const deleteFlow = flows.delete; pub const insertFlowRun = flow_runs.insert; pub const getFlowRun = flow_runs.get; pub const setFlowRunState = flow_runs.setState; pub const setFlowRunStateWithSchedule = flow_runs.setStateWithSchedule; pub const listFlowRuns = flow_runs.list; pub const insertTaskRun = task_runs.insert; pub const getTaskRun = task_runs.get; pub const getTaskRunByKey = task_runs.getByKey; pub const setTaskRunState = task_runs.setState; pub const listTaskRuns = task_runs.list; pub const insertEventDeduped = events.insertDeduped; pub const trimEvents = events.trim; pub const countEvents = events.count; pub const queryRecentEvents = events.queryRecent; // legacy shared state (deprecated - use backend.db instead) pub var conn: zqlite.Conn = undefined; pub var mutex: Thread.Mutex = .{}; var path_buf: [256]u8 = undefined; pub fn init() !void { // Initialize the unified backend (SQLite or PostgreSQL based on env vars) try backend.init(); // For backward compatibility with entity modules not yet migrated, // also store the raw SQLite connection if using SQLite backend switch (backend.db.impl) { .sqlite => |s| { conn = s.conn; }, .postgres => { // postgres doesn't have a single conn - leave conn undefined }, } // apply migrations (creates/updates schema) try migrate.applyMigrations(); } pub fn close() void { backend.close(); }