Skip to main content

Database Schema

KOSMOS V2.0 uses PostgreSQL 16 with Row-Level Security (RLS) for multi-tenant isolation.

Database Architecture

Core Tables

TableDescriptionRLS
tenantsOrganization/tenant recordsNo (system)
usersUser accountsYes
agentsAgent configurationsYes
tasksTask queue and historyYes
task_logsExecution logsYes
governance_decisionsPentarchy decisionsYes
votesAgent votesYes
mcp_callsMCP invocation auditYes

Multi-Tenant Architecture

All tenant data isolated via RLS policies:

-- Example RLS policy
CREATE POLICY tenant_isolation ON users
USING (tenant_id = current_setting('app.tenant_id')::uuid);

Key Features

pgvector Extension

Vector similarity search for semantic queries:

-- Semantic search example
SELECT * FROM documents
ORDER BY embedding <-> query_embedding
LIMIT 10;

Audit Logging

Comprehensive audit trail for compliance:

-- Automatic audit triggers on all tables
CREATE TRIGGER audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON tasks
FOR EACH ROW EXECUTE FUNCTION audit_log();

Connection Pooling

PgBouncer for connection management:

  • Transaction pooling mode
  • 100 max client connections
  • 20 server connections per pool

Schema Organization

database/
├── migrations/ # Alembic migrations
├── seeds/ # Seed data
├── functions/ # PL/pgSQL functions
├── triggers/ # Database triggers
├── policies/ # RLS policies
└── views/ # Database views

Performance

MetricTargetCurrent
Query latency (p99)<50ms35ms
Connection pool utilization<80%65%
Index hit ratio>99%99.5%
Auto-Generated

Database documentation is automatically generated from SQLAlchemy models and Alembic migrations. ERD diagrams update on schema changes.

Browse Schema