Service Structure
R2 Storage Service
File:services/r2.ts
Handles document storage in R2 buckets.
uploadToR2
Uploads content to R2 with metadata.bucket: R2 bucket instancekey: Object key (path)content: Content to uploadmetadata: Custom metadata key-value pairs
Key Generation
R2 keys are generated using a utility function:users/{userId}/documents/{docId}-{filename}
Summarization Service
File:services/summarization.ts
AI-powered text summarization using Workers AI.
summarizeGoals
Summarizes user goals using Workers AI.ai: Workers AI bindingrawGoals: Raw user goals text
@cf/meta/llama-3-8b-instruct
Output: Summarized goals (max 200 characters)
Signup Handler
File:handlers/signup.ts
Handles admin-only user creation.
handleSignup
Creates new users with goal summarization and optional file uploads.- Validate admin authentication
- Extract form data (name, email, password, goals, files)
- Generate user ID (UUID)
- Hash password (SHA-256)
- Summarize goals using AI
- Upload files to R2 (if provided)
- Create user record in D1
- Return success response
Upload Handler
File:handlers/upload.ts
Handles multi-file document uploads.
handleMultiFileUpload
Processes multiple file uploads with metadata.- Parse multipart form data
- Validate files (.md, .pdf, .txt)
- Generate document IDs
- Upload to R2
- Trigger ingestion pipeline
- Return upload status
Utility Functions
UUID Generation
File:utils/uuid.ts
Generates UUID v4 identifiers.
R2 Key Generation
File:utils/r2-keys.ts
Generates standardized R2 keys.
Password Hashing
File:utils/password.ts
SHA-256 password hashing.
SHA256(username + password)
Database Schema
users Table
documents Table
graph_nodes Table
graph_edges Table
Indexes
Performance indexes on frequently queried columns:idx_users_username- Username lookupsidx_documents_userId- User document queriesidx_documents_status- Status filteringidx_graph_edges_source- Graph traversalidx_graph_edges_target- Graph traversal
Caching Strategy
KV Cache
Graph data is cached in KV for 5 minutes:- Cache cleared on new document ingestion
- Cache key:
graph:latest
Error Handling
Services use consistent error handling:Related Documentation
- Backend Worker - Worker architecture
- API Endpoints - API reference