mirror of https://github.com/kortix-ai/suna.git
fix migrations
This commit is contained in:
parent
030ffe23a3
commit
58ab4ace21
|
@ -99,13 +99,22 @@ CREATE INDEX IF NOT EXISTS idx_workflow_executions_started_at ON workflow_execut
|
||||||
CREATE INDEX IF NOT EXISTS idx_workflow_step_executions_execution_id ON workflow_step_executions(execution_id);
|
CREATE INDEX IF NOT EXISTS idx_workflow_step_executions_execution_id ON workflow_step_executions(execution_id);
|
||||||
CREATE INDEX IF NOT EXISTS idx_workflow_step_executions_step_id ON workflow_step_executions(step_id);
|
CREATE INDEX IF NOT EXISTS idx_workflow_step_executions_step_id ON workflow_step_executions(step_id);
|
||||||
|
|
||||||
-- Row Level Security (RLS) Policies
|
|
||||||
ALTER TABLE agent_workflows ENABLE ROW LEVEL SECURITY;
|
ALTER TABLE agent_workflows ENABLE ROW LEVEL SECURITY;
|
||||||
ALTER TABLE workflow_steps ENABLE ROW LEVEL SECURITY;
|
ALTER TABLE workflow_steps ENABLE ROW LEVEL SECURITY;
|
||||||
ALTER TABLE workflow_executions ENABLE ROW LEVEL SECURITY;
|
ALTER TABLE workflow_executions ENABLE ROW LEVEL SECURITY;
|
||||||
ALTER TABLE workflow_step_executions ENABLE ROW LEVEL SECURITY;
|
ALTER TABLE workflow_step_executions ENABLE ROW LEVEL SECURITY;
|
||||||
|
|
||||||
-- Agent workflows policies
|
DROP POLICY IF EXISTS "Users can view workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can create workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can update workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can delete workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can manage steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Users can view steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Users can view executions for their workflows" ON workflow_executions;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage executions" ON workflow_executions;
|
||||||
|
DROP POLICY IF EXISTS "Users can view step executions for their workflows" ON workflow_step_executions;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage step executions" ON workflow_step_executions;
|
||||||
|
|
||||||
CREATE POLICY "Users can view workflows for their agents" ON agent_workflows
|
CREATE POLICY "Users can view workflows for their agents" ON agent_workflows
|
||||||
FOR SELECT USING (
|
FOR SELECT USING (
|
||||||
agent_id IN (
|
agent_id IN (
|
||||||
|
@ -203,7 +212,10 @@ BEGIN
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
-- Create triggers for updated_at
|
-- Create triggers for updated_at (drop existing first to avoid conflicts)
|
||||||
|
DROP TRIGGER IF EXISTS update_agent_workflows_updated_at ON agent_workflows;
|
||||||
|
DROP TRIGGER IF EXISTS update_workflow_steps_updated_at ON workflow_steps;
|
||||||
|
|
||||||
CREATE TRIGGER update_agent_workflows_updated_at
|
CREATE TRIGGER update_agent_workflows_updated_at
|
||||||
BEFORE UPDATE ON agent_workflows
|
BEFORE UPDATE ON agent_workflows
|
||||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
-- Fix Agent Workflows Migration Issues
|
|
||||||
-- This migration fixes foreign key references and RLS policies
|
|
||||||
|
|
||||||
-- Drop existing foreign key constraints that reference the wrong column
|
|
||||||
ALTER TABLE agent_workflows DROP CONSTRAINT IF EXISTS agent_workflows_agent_id_fkey;
|
ALTER TABLE agent_workflows DROP CONSTRAINT IF EXISTS agent_workflows_agent_id_fkey;
|
||||||
ALTER TABLE workflow_executions DROP CONSTRAINT IF EXISTS workflow_executions_agent_id_fkey;
|
ALTER TABLE workflow_executions DROP CONSTRAINT IF EXISTS workflow_executions_agent_id_fkey;
|
||||||
|
|
||||||
-- Add correct foreign key constraints
|
|
||||||
ALTER TABLE agent_workflows
|
ALTER TABLE agent_workflows
|
||||||
ADD CONSTRAINT agent_workflows_agent_id_fkey
|
ADD CONSTRAINT agent_workflows_agent_id_fkey
|
||||||
FOREIGN KEY (agent_id) REFERENCES agents(agent_id) ON DELETE CASCADE;
|
FOREIGN KEY (agent_id) REFERENCES agents(agent_id) ON DELETE CASCADE;
|
||||||
|
@ -14,7 +9,6 @@ ALTER TABLE workflow_executions
|
||||||
ADD CONSTRAINT workflow_executions_agent_id_fkey
|
ADD CONSTRAINT workflow_executions_agent_id_fkey
|
||||||
FOREIGN KEY (agent_id) REFERENCES agents(agent_id) ON DELETE CASCADE;
|
FOREIGN KEY (agent_id) REFERENCES agents(agent_id) ON DELETE CASCADE;
|
||||||
|
|
||||||
-- Drop existing RLS policies
|
|
||||||
DROP POLICY IF EXISTS "Users can view workflows for their agents" ON agent_workflows;
|
DROP POLICY IF EXISTS "Users can view workflows for their agents" ON agent_workflows;
|
||||||
DROP POLICY IF EXISTS "Users can create workflows for their agents" ON agent_workflows;
|
DROP POLICY IF EXISTS "Users can create workflows for their agents" ON agent_workflows;
|
||||||
DROP POLICY IF EXISTS "Users can update workflows for their agents" ON agent_workflows;
|
DROP POLICY IF EXISTS "Users can update workflows for their agents" ON agent_workflows;
|
||||||
|
@ -24,87 +18,6 @@ DROP POLICY IF EXISTS "Users can manage steps for their workflows" ON workflow_s
|
||||||
DROP POLICY IF EXISTS "Users can view executions for their workflows" ON workflow_executions;
|
DROP POLICY IF EXISTS "Users can view executions for their workflows" ON workflow_executions;
|
||||||
DROP POLICY IF EXISTS "Users can view step executions for their workflows" ON workflow_step_executions;
|
DROP POLICY IF EXISTS "Users can view step executions for their workflows" ON workflow_step_executions;
|
||||||
|
|
||||||
-- Create correct RLS policies
|
|
||||||
CREATE POLICY "Users can view workflows for their agents" ON agent_workflows
|
|
||||||
FOR SELECT USING (
|
|
||||||
agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can create workflows for their agents" ON agent_workflows
|
|
||||||
FOR INSERT WITH CHECK (
|
|
||||||
agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can update workflows for their agents" ON agent_workflows
|
|
||||||
FOR UPDATE USING (
|
|
||||||
agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can delete workflows for their agents" ON agent_workflows
|
|
||||||
FOR DELETE USING (
|
|
||||||
agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can view steps for their workflows" ON workflow_steps
|
|
||||||
FOR SELECT USING (
|
|
||||||
workflow_id IN (
|
|
||||||
SELECT id FROM agent_workflows
|
|
||||||
WHERE agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can manage steps for their workflows" ON workflow_steps
|
|
||||||
FOR ALL USING (
|
|
||||||
workflow_id IN (
|
|
||||||
SELECT id FROM agent_workflows
|
|
||||||
WHERE agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can view executions for their workflows" ON workflow_executions
|
|
||||||
FOR SELECT USING (
|
|
||||||
workflow_id IN (
|
|
||||||
SELECT id FROM agent_workflows
|
|
||||||
WHERE agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE POLICY "Users can view step executions for their workflows" ON workflow_step_executions
|
|
||||||
FOR SELECT USING (
|
|
||||||
execution_id IN (
|
|
||||||
SELECT id FROM workflow_executions
|
|
||||||
WHERE workflow_id IN (
|
|
||||||
SELECT id FROM agent_workflows
|
|
||||||
WHERE agent_id IN (
|
|
||||||
SELECT agent_id FROM agents
|
|
||||||
WHERE basejump.has_role_on_account(account_id)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Create missing function if it doesn't exist
|
|
||||||
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
CREATE OR REPLACE FUNCTION update_updated_at_column()
|
||||||
RETURNS TRIGGER AS $$
|
RETURNS TRIGGER AS $$
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -112,14 +25,3 @@ BEGIN
|
||||||
RETURN NEW;
|
RETURN NEW;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE plpgsql;
|
$$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
-- Add missing triggers if they don't exist
|
|
||||||
DROP TRIGGER IF EXISTS update_agent_workflows_updated_at ON agent_workflows;
|
|
||||||
CREATE TRIGGER update_agent_workflows_updated_at
|
|
||||||
BEFORE UPDATE ON agent_workflows
|
|
||||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
||||||
|
|
||||||
DROP TRIGGER IF EXISTS update_workflow_steps_updated_at ON workflow_steps;
|
|
||||||
CREATE TRIGGER update_workflow_steps_updated_at
|
|
||||||
BEFORE UPDATE ON workflow_steps
|
|
||||||
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
|
|
@ -1 +1,6 @@
|
||||||
ALTER TYPE workflow_step_type ADD VALUE 'instruction';
|
DO $$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS (SELECT 1 FROM pg_enum WHERE enumlabel = 'instruction' AND enumtypid = 'workflow_step_type'::regtype) THEN
|
||||||
|
ALTER TYPE workflow_step_type ADD VALUE 'instruction';
|
||||||
|
END IF;
|
||||||
|
END $$;
|
|
@ -0,0 +1,22 @@
|
||||||
|
DROP POLICY IF EXISTS "Users can view workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can create workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can update workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Users can delete workflows for their agents" ON agent_workflows;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage workflows" ON agent_workflows;
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS "Users can view steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Users can create steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Users can update steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Users can delete steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Users can manage steps for their workflows" ON workflow_steps;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage workflow steps" ON workflow_steps;
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS "Users can view executions for their workflows" ON workflow_executions;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage executions" ON workflow_executions;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage workflow executions" ON workflow_executions;
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS "Users can view step executions for their workflows" ON workflow_step_executions;
|
||||||
|
DROP POLICY IF EXISTS "Service role can manage step executions" ON workflow_step_executions;
|
||||||
|
|
||||||
|
DROP TRIGGER IF EXISTS update_agent_workflows_updated_at ON agent_workflows;
|
||||||
|
DROP TRIGGER IF EXISTS update_workflow_steps_updated_at ON workflow_steps;
|
Loading…
Reference in New Issue