Files
cim_summary/backend/setup-document-sharing-manual.sql
Jon c77fe0e089 Add comprehensive email debugging summary and enhanced logging
- Created EMAIL_DEBUG_SUMMARY.md with detailed analysis of email service issue
- Added enhanced logging to admin routes and email service
- Identified root cause: malformed email address concatenation
- Documented all debugging attempts and next steps
- Added route access logging to trace request flow
- Removed problematic catch-all route that was causing 404s
2025-08-14 20:41:04 -04:00

65 lines
2.7 KiB
SQL

-- Manual setup for document sharing table
-- Run this in your Supabase SQL Editor
-- Create document_shares table for tracking document sharing permissions
CREATE TABLE IF NOT EXISTS document_shares (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
document_id UUID NOT NULL REFERENCES documents(id) ON DELETE CASCADE,
shared_by_user_id TEXT NOT NULL, -- User who shared the document
shared_with_user_id TEXT NOT NULL, -- User who received access
active BOOLEAN DEFAULT true, -- Whether the share is currently active
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
-- Ensure unique combinations
UNIQUE(document_id, shared_with_user_id)
);
-- Create indexes for better performance
CREATE INDEX IF NOT EXISTS idx_document_shares_document_id ON document_shares(document_id);
CREATE INDEX IF NOT EXISTS idx_document_shares_shared_with_user_id ON document_shares(shared_with_user_id);
CREATE INDEX IF NOT EXISTS idx_document_shares_active ON document_shares(active);
-- Add comments for documentation
COMMENT ON TABLE document_shares IS 'Tracks document sharing permissions between users';
COMMENT ON COLUMN document_shares.document_id IS 'Reference to the shared document';
COMMENT ON COLUMN document_shares.shared_by_user_id IS 'User ID of the person who shared the document';
COMMENT ON COLUMN document_shares.shared_with_user_id IS 'User ID of the person who received access';
COMMENT ON COLUMN document_shares.active IS 'Whether this share is currently active (can be revoked)';
-- Enable Row Level Security
ALTER TABLE document_shares ENABLE ROW LEVEL SECURITY;
-- RLS Policies for document_shares
-- Users can view shares they created or received
CREATE POLICY "Users can view their document shares" ON document_shares
FOR SELECT USING (
auth.uid()::text = shared_by_user_id OR
auth.uid()::text = shared_with_user_id
);
-- Users can create shares for documents they own
CREATE POLICY "Users can create document shares" ON document_shares
FOR INSERT WITH CHECK (
auth.uid()::text = shared_by_user_id
);
-- Users can update shares they created
CREATE POLICY "Users can update their document shares" ON document_shares
FOR UPDATE USING (
auth.uid()::text = shared_by_user_id
);
-- Users can delete shares they created
CREATE POLICY "Users can delete their document shares" ON document_shares
FOR DELETE USING (
auth.uid()::text = shared_by_user_id
);
-- Grant necessary permissions
GRANT ALL ON TABLE document_shares TO postgres, service_role;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE document_shares TO authenticated;
-- Verify the table was created
SELECT 'Document sharing table created successfully!' as status;