Download sql/001_init.sql from trentdoney/braincore-pgvector-starter: direct link, hf CLI and curl.
- Browser
- Download file 3.19 kB
-
https://huggingface.co/spaces/trentdoney/braincore-pgvector-starter/resolve/main/sql/001_init.sql
- Command line
-
hf download hf://spaces/trentdoney/braincore-pgvector-starter/sql/001_init.sql
-
curl -L -o 001_init.sql https://huggingface.co/spaces/trentdoney/braincore-pgvector-starter/resolve/main/sql/001_init.sql
3.19 kB
| -- BrainCore pgVector Starter — Safe-by-default schema | |
| -- This is a reference starter, NOT production-ready. | |
| -- Enable pgvector extension | |
| CREATE EXTENSION IF NOT EXISTS vector; | |
| -- 1. Trust classes: gate what can be retrieved and how it is ranked | |
| CREATE TABLE trust_classes ( | |
| id SERIAL PRIMARY KEY, | |
| label TEXT NOT NULL UNIQUE, | |
| description TEXT, | |
| max_rank INTEGER DEFAULT 100, -- lower = more trusted | |
| created_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- 2. Sources: provenance for every memory item | |
| CREATE TABLE sources ( | |
| id SERIAL PRIMARY KEY, | |
| name TEXT NOT NULL, | |
| source_type TEXT, -- e.g. 'user', 'tool', 'llm', 'file' | |
| tags TEXT[], -- e.g. '{"verified","community"}' | |
| url TEXT, | |
| metadata JSONB, | |
| created_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- 3. Memory items: the core vector memory store | |
| CREATE TABLE memory_items ( | |
| id SERIAL PRIMARY KEY, | |
| tenant_id TEXT NOT NULL DEFAULT 'public', | |
| content TEXT NOT NULL, | |
| embedding vector(384), -- adjust dimension to your model | |
| visibility TEXT NOT NULL DEFAULT 'restricted', | |
| -- 'public' or 'restricted' | |
| trust_class_id INTEGER REFERENCES trust_classes(id) ON DELETE SET NULL, | |
| source_id INTEGER REFERENCES sources(id) ON DELETE SET NULL, | |
| metadata JSONB, | |
| created_at TIMESTAMPTZ DEFAULT NOW(), | |
| updated_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- 4. Memory events: audit trail for writes/updates/deletes | |
| CREATE TABLE memory_events ( | |
| id SERIAL PRIMARY KEY, | |
| memory_id INTEGER REFERENCES memory_items(id) ON DELETE CASCADE, | |
| event_type TEXT NOT NULL, -- 'created', 'updated', 'deleted', 'accessed' | |
| actor TEXT, -- who triggered it | |
| details JSONB, | |
| created_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- 5. Retrieval logs: capture queries and results for audit | |
| CREATE TABLE retrieval_logs ( | |
| id SERIAL PRIMARY KEY, | |
| tenant_id TEXT NOT NULL, | |
| query_text TEXT, | |
| query_vector vector(384), | |
| filters JSONB, -- what filters were applied | |
| results JSONB, -- list of returned memory_ids + scores | |
| latency_ms INTEGER, | |
| created_at TIMESTAMPTZ DEFAULT NOW() | |
| ); | |
| -- Indexes | |
| CREATE INDEX idx_memory_items_tenant ON memory_items(tenant_id); | |
| CREATE INDEX idx_memory_items_visibility ON memory_items(visibility); | |
| CREATE INDEX idx_memory_items_trust ON memory_items(trust_class_id); | |
| CREATE INDEX idx_memory_items_source ON memory_items(source_id); | |
| -- HNSW index for fast vector search (good for <100k rows in this starter) | |
| CREATE INDEX idx_memory_items_embedding ON memory_items | |
| USING hnsw (embedding vector_cosine_ops) | |
| WITH (m = 16, ef_construction = 64); | |
| -- Partial index: only public memories (cross-tenant retrieval) | |
| CREATE INDEX idx_memory_items_public ON memory_items(tenant_id, visibility) | |
| WHERE visibility = 'public'; | |
| -- Row-level security (disabled by default so the starter works without auth) | |
| -- In production, enable RLS and set policies per tenant. | |
| -- ALTER TABLE memory_items ENABLE ROW LEVEL SECURITY; | |