feat: contract analysis API improvements and DSGVO compliance updates

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
CTO (LegalAI)
2026-04-09 07:56:01 +00:00
parent 0daf65ce91
commit 7dfbc42b8c
7 changed files with 322 additions and 234 deletions

View File

@@ -70,10 +70,10 @@ CREATE INDEX contract_clauses_rating_idx ON contract_clauses(rating);
ALTER TABLE contract_documents ENABLE ROW LEVEL SECURITY;
CREATE POLICY contract_documents_tenant_isolation ON contract_documents
USING (tenant_id = current_setting('app.tenant_id')::uuid);
USING (tenant_id = current_setting('app.tenant_id', true)::uuid);
CREATE POLICY contract_documents_tenant_insert ON contract_documents
FOR INSERT WITH CHECK (tenant_id = current_setting('app.tenant_id')::uuid);
FOR INSERT WITH CHECK (tenant_id = current_setting('app.tenant_id', true)::uuid);
-- RLS policies for contract_clauses (via document join)
ALTER TABLE contract_clauses ENABLE ROW LEVEL SECURITY;
@@ -81,7 +81,11 @@ ALTER TABLE contract_clauses ENABLE ROW LEVEL SECURITY;
CREATE POLICY contract_clauses_tenant_isolation ON contract_clauses
USING (document_id IN (
SELECT id FROM contract_documents
WHERE tenant_id = current_setting('app.tenant_id')::uuid
WHERE tenant_id = current_setting('app.tenant_id', true)::uuid
));
-- Force RLS for the app role (even table owners are subject to policies)
ALTER TABLE contract_documents FORCE ROW LEVEL SECURITY;
ALTER TABLE contract_clauses FORCE ROW LEVEL SECURITY;
-- Standard clauses are shared reference data (no RLS needed)