Spaces:
Paused
Paused
| // This is your Prisma schema file, | |
| // learn more about it in the docs: https://pris.ly/d/prisma-schema | |
| generator client { | |
| provider = "prisma-client-js" | |
| binaryTargets = ["native"] | |
| engineType = "binary" | |
| } | |
| datasource db { | |
| provider = "postgresql" | |
| url = env("DATABASE_URL") | |
| } | |
| // NOTE: Vector embeddings are stored in Neo4j, not PostgreSQL | |
| // This schema handles relational data only | |
| // ============================================ | |
| // UI State & Configuration | |
| // ============================================ | |
| model Widget { | |
| id String | |
| name String | |
| type String | |
| config Json? | |
| active Boolean | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| } | |
| model Layout { | |
| id String | |
| userId String | |
| orgId String | |
| layoutData Json | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // Memory & Knowledge Graph | |
| // ============================================ | |
| model MemoryEntity { | |
| id Int | |
| orgId String | |
| userId String? | |
| entityType String | |
| content String | |
| importance Int | |
| createdAt DateTime | |
| tags MemoryTag[] | |
| relationsFrom MemoryRelation[] | |
| relationsTo MemoryRelation[] | |
| @ | |
| @ | |
| @ | |
| } | |
| model MemoryRelation { | |
| id Int | |
| orgId String | |
| sourceId Int | |
| targetId Int | |
| relationType String | |
| createdAt DateTime | |
| source MemoryEntity | |
| target MemoryEntity | |
| @ | |
| @ | |
| @ | |
| @ | |
| } | |
| model MemoryTag { | |
| id Int | |
| entityId Int | |
| tag String | |
| createdAt DateTime | |
| entity MemoryEntity | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // PAL (Personal Assistant Layer) | |
| // ============================================ | |
| model PalUserProfile { | |
| id Int | |
| userId String | |
| orgId String | |
| preferenceTone String | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| @ | |
| } | |
| model PalFocusWindow { | |
| id Int | |
| userId String | |
| orgId String | |
| weekday Int | |
| startHour Int | |
| endHour Int | |
| createdAt DateTime | |
| @ | |
| @ | |
| } | |
| model PalEvent { | |
| id Int | |
| userId String | |
| orgId String | |
| eventType String | |
| payload Json | |
| detectedStressLevel Int? | |
| createdAt DateTime | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // SRAG (Structured RAG) | |
| // ============================================ | |
| model RawDocument { | |
| id Int | |
| orgId String | |
| sourceType String | |
| sourcePath String | |
| content String | |
| createdAt DateTime | |
| facts StructuredFact[] | |
| @ | |
| @ | |
| } | |
| model StructuredFact { | |
| id Int | |
| orgId String | |
| docId Int? | |
| factType String | |
| jsonPayload Json | |
| occurredAt DateTime? | |
| createdAt DateTime | |
| document RawDocument? | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // Document Metadata (vectors stored in Neo4j) | |
| // ============================================ | |
| model VectorDocument { | |
| id String | |
| content String | |
| // NOTE: Embeddings are stored in Neo4j, not here | |
| metadata Json? | |
| namespace String | |
| userId String | |
| orgId String | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // Autonomous Agent & Tasks | |
| // ============================================ | |
| model AgentTask { | |
| id String | |
| type String | |
| payload Json | |
| status String // pending, running, completed, failed, waiting_approval | |
| priority Int | |
| result Json? | |
| error String? | |
| userId String | |
| orgId String | |
| createdAt DateTime | |
| updatedAt DateTime | |
| completedAt DateTime? | |
| @ | |
| @ | |
| @ | |
| @ | |
| } | |
| model ExecutionLog { | |
| id String | |
| taskId String? | |
| taskType String | |
| success Boolean | |
| duration Int? // milliseconds | |
| result Json? | |
| error String? | |
| userId String | |
| orgId String | |
| createdAt DateTime | |
| @ | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // Data Sources & Ingestion | |
| // ============================================ | |
| model DataSource { | |
| id String | |
| name String | |
| type String | |
| description String? | |
| enabled Boolean | |
| requiresApproval Boolean | |
| config Json? | |
| lastUsedAt DateTime? | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| } | |
| model IngestedDocument { | |
| id String | |
| sourceId String | |
| externalId String | |
| title String? | |
| content String? | |
| metadata Json? | |
| userId String | |
| orgId String | |
| ingestedAt DateTime | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // MCP Resources & Prompts | |
| // ============================================ | |
| model MCPResource { | |
| id String | |
| uri String | |
| name String | |
| description String? | |
| mimeType String? | |
| payload Json | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| } | |
| model AgentPrompt { | |
| id String | |
| agentId String | |
| version Int | |
| promptText String | |
| active Boolean | |
| performance Json? // KPIs, metrics | |
| createdAt DateTime | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // Security search + activity | |
| // ============================================ | |
| model SecuritySearchTemplate { | |
| id String | |
| name String | |
| description String | |
| query String | |
| severity String | |
| timeframe String | |
| sources Json | |
| createdAt DateTime | |
| @ | |
| } | |
| model SecuritySearchHistory { | |
| id String | |
| query String | |
| severity String | |
| timeframe String | |
| sources Json | |
| results Int | |
| latencyMs Int | |
| createdAt DateTime | |
| @ | |
| } | |
| model SecurityActivityEvent { | |
| id String | |
| title String | |
| description String | |
| category String | |
| severity String | |
| source String | |
| rule String? | |
| channel String | |
| payload Json? | |
| createdAt DateTime | |
| acknowledged Boolean | |
| @ | |
| } | |
| // ============================================ | |
| // Widget permissions | |
| // ============================================ | |
| model WidgetPermission { | |
| widgetId String | |
| resourceType String | |
| accessLevel String | |
| override Boolean | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // PRD Prototypes | |
| // ============================================ | |
| model Prototype { | |
| id String | |
| name String | |
| htmlContent String | |
| prdId String? | |
| version Int | |
| style String | |
| status String // generating, complete, error | |
| metadata Json? | |
| userId String | |
| orgId String | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| @ | |
| @ | |
| @ | |
| } | |
| // ============================================ | |
| // Notes (migrated from sql.js) | |
| // ============================================ | |
| model Note { | |
| id Int | |
| userId String | |
| orgId String | |
| source String | |
| title String | |
| body String | |
| tags String | |
| owner String | |
| compliance String // clean, review, restricted | |
| retention String // 30d, 90d, 1y, archive | |
| riskScore Int | |
| attachments Int | |
| createdAt DateTime | |
| updatedAt DateTime | |
| @ | |
| @ | |
| @ | |
| @ | |
| } | |