Spaces:
Runtime error
Runtime error
-- Create the table for storing boundaries and constraints | |
CREATE TABLE boundaries ( | |
id SERIAL PRIMARY KEY, | |
tenant_id UUID NOT NULL, | |
boundary_type VARCHAR(255) NOT NULL, | |
description TEXT NOT NULL, | |
status VARCHAR(50) NOT NULL, | |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
); | |
-- Insert initial boundary data | |
INSERT INTO boundaries (tenant_id, boundary_type, description, status) VALUES | |
('tenant-1-uuid', 'Ethical', 'Ensure agents adhere to company values and principles', 'Active'), | |
('tenant-1-uuid', 'Legal', 'Comply with all relevant laws and regulations', 'Active'), | |
('tenant-2-uuid', 'Operational', 'Maintain service level agreements and uptime targets', 'Active'), | |
('tenant-2-uuid', 'Financial', 'Stay within allocated budgets and resource limits', 'Warning'), | |
('tenant-1-uuid', 'Reputational', 'Protect company brand and public image', 'Active'); | |
-- Create the table for storing human feedback | |
CREATE TABLE human_feedback ( | |
id SERIAL PRIMARY KEY, | |
tenant_id UUID NOT NULL, | |
agent VARCHAR(255) NOT NULL, | |
task TEXT NOT NULL, | |
feedback_type VARCHAR(255) NOT NULL, | |
feedback_details TEXT NOT NULL, | |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
); | |
-- Insert initial human feedback data | |
INSERT INTO human_feedback (tenant_id, agent, task, feedback_type, feedback_details) VALUES | |
('tenant-1-uuid', 'Sales AI', 'Generated product description', 'Approval', 'Great job, the description is accurate and compelling'), | |
('tenant-1-uuid', 'Support Bot', 'Handled customer complaint', 'Modification', 'The response was a bit too formal, try to be more empathetic'), | |
('tenant-2-uuid', 'Marketing Assistant', 'Created ad campaign', 'Clarification', 'What is the target audience for this campaign?'), | |
('tenant-2-uuid', 'Data Analyst', 'Provided sales forecast', 'Approval', 'The forecast looks solid, well done'), | |
('tenant-1-uuid', 'HR Coordinator', 'Sent onboarding email', 'Rejection', 'The email contains outdated information, please update'); | |
-- Create the table for storing output reviews | |
CREATE TABLE output_reviews ( | |
id SERIAL PRIMARY KEY, | |
tenant_id UUID NOT NULL, | |
output_type VARCHAR(255) NOT NULL, | |
output_name TEXT NOT NULL, | |
agent VARCHAR(255) NOT NULL, | |
review_status VARCHAR(50) NOT NULL, | |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
); | |
-- Insert initial output review data | |
INSERT INTO output_reviews (tenant_id, output_type, output_name, agent, review_status) VALUES | |
('tenant-1-uuid', 'Blog post', 'Top 10 AI Trends for 2025', 'Marketing Assistant', 'Pending'), | |
('tenant-1-uuid', 'Financial report', 'Q3 2024 Earnings Analysis', 'Data Analyst', 'Approved'), | |
('tenant-2-uuid', 'Product design', 'Smartwatch UI Mockups', 'Design AI', 'Rejected'), | |
('tenant-2-uuid', 'Customer email', 'Response to Billing Inquiry', 'Support Bot', 'Approved'), | |
('tenant-1-uuid', 'News article', 'Company Announces New AI Partnership', 'Content Creator', 'Pending'); | |
-- Create the table for storing alerts and notifications | |
CREATE TABLE alerts ( | |
id SERIAL PRIMARY KEY, | |
tenant_id UUID NOT NULL, | |
alert_type VARCHAR(255) NOT NULL, | |
description TEXT NOT NULL, | |
urgency VARCHAR(50) NOT NULL, | |
status VARCHAR(50) NOT NULL, | |
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP | |
); | |
-- Insert initial alert data | |
INSERT INTO alerts (tenant_id, alert_type, description, urgency, status) VALUES | |
('tenant-1-uuid', 'Boundary Violation', 'Sales AI attempted to access restricted data', 'High', 'Unresolved'), | |
('tenant-1-uuid', 'Anomalous Behavior', 'Support Bot response time increased by 150%', 'Medium', 'Under Investigation'), | |
('tenant-2-uuid', 'System Error', 'Marketing Assistant encountered a memory leak', 'Critical', 'Resolved'), | |
('tenant-2-uuid', 'Human Feedback Required', 'Data Analyst report requires manager approval', 'Low', 'Pending'), | |
('tenant-1-uuid', 'Boundary Violation', 'HR Coordinator tried to modify employee records without authorization', 'High', 'Unresolved'); | |
-- Enable Row-Level Security (RLS) for all governance tables | |
ALTER TABLE boundaries ENABLE ROW LEVEL SECURITY; | |
ALTER TABLE human_feedback ENABLE ROW LEVEL SECURITY; | |
ALTER TABLE output_reviews ENABLE ROW LEVEL SECURITY; | |
ALTER TABLE alerts ENABLE ROW LEVEL SECURITY; | |
-- Create RLS policies for boundaries | |
CREATE POLICY "tenant_isolation" ON boundaries | |
FOR ALL | |
USING (tenant_id = current_setting('app.current_tenant')::uuid); | |
CREATE POLICY "Enable real-time" ON boundaries | |
FOR SELECT USING (true); | |
CREATE POLICY "boundary_access" ON boundaries | |
FOR SELECT | |
USING (auth.uid() = user_id); | |
-- Create RLS policies for human_feedback | |
CREATE POLICY "tenant_isolation" ON human_feedback | |
FOR ALL | |
USING (tenant_id = current_setting('app.current_tenant')::uuid); | |
CREATE POLICY "Enable real-time" ON human_feedback | |
FOR SELECT USING (true); | |
CREATE POLICY "feedback_access" ON human_feedback | |
FOR SELECT | |
USING (auth.uid() = user_id); | |
-- Create RLS policies for output_reviews | |
CREATE POLICY "tenant_isolation" ON output_reviews | |
FOR ALL | |
USING (tenant_id = current_setting('app.current_tenant')::uuid); | |
CREATE POLICY "Enable real-time" ON output_reviews | |
FOR SELECT USING (true); | |
CREATE POLICY "review_access" ON output_reviews | |
FOR SELECT | |
USING (auth.uid() = user_id); | |
-- Create RLS policies for alerts | |
CREATE POLICY "tenant_isolation" ON alerts | |
FOR ALL | |
USING (tenant_id = current_setting('app.current_tenant')::uuid); | |
CREATE POLICY "Enable real-time" ON alerts | |
FOR SELECT USING (true); | |
CREATE POLICY "alert_access" ON alerts | |
FOR SELECT | |
USING (auth.uid() = user_id); | |
-- Create indexes for optimization | |
CREATE INDEX idx_boundaries_tenant_id ON boundaries(tenant_id); | |
CREATE INDEX idx_human_feedback_tenant_id ON human_feedback(tenant_id); | |
CREATE INDEX idx_output_reviews_tenant_id ON output_reviews(tenant_id); | |
CREATE INDEX idx_alerts_tenant_id ON alerts(tenant_id); |