n8n-dan / supabase /schema.sql
google-labs-jules[bot]
feat: Comprehensive infrastructure audit and optimization
333834a
-- Enable pgvector (Supabase: run as superuser/migration)
create extension if not exists vector;
-- Schema
create schema if not exists knowledge;
-- Documents table
create table if not exists knowledge.documents (
id uuid primary key default gen_random_uuid(),
path text unique not null,
title text,
content text,
source_url text,
hash text not null,
updated_at timestamptz not null default now()
);
-- Embeddings table (OpenAI text-embedding-3-large: 3072 dims; adjust if needed)
create table if not exists knowledge.embeddings (
doc_id uuid primary key references knowledge.documents(id) on delete cascade,
embedding vector(3072) not null,
model text default 'text-embedding-3-large'
);
-- Vector index (IVFFLAT)
create index if not exists idx_embeddings_ivfflat on knowledge.embeddings using ivfflat (embedding vector_l2_ops) with (lists = 100);
-- Helpful view
create or replace view knowledge.searchable as
select d.id, d.title, d.path, d.source_url, d.updated_at
from knowledge.documents d
order by d.updated_at desc;
-- ==> RLS (Row Level Security)
-- 1. Enable RLS
alter table knowledge.documents enable row level security;
alter table knowledge.embeddings enable row level security;
-- 2. Create policies
-- Allow public read access to all
create policy "Allow public read access" on knowledge.documents for select using (true);
create policy "Allow public read access" on knowledge.embeddings for select using (true);
-- Allow service_role (server-side) to perform all actions
create policy "Allow all for service_role" on knowledge.documents for all to service_role with check (true);
create policy "Allow all for service_role" on knowledge.embeddings for all to service_role with check (true);