Skip to main content

Data dictionary

Use this list to find the table containing the data you need. For complete column types, defaults, and constraints, see modern.ts and better-auth.ts.

Users and authentication

TableStores
usersUsers, quotas, billing relationships, and encrypted external API keys
sessionBetter Auth login sessions and expiration
accountPassword credentials and identity-provider connections such as Google
verificationVerification data for email confirmation, password resets, and related flows
apikeyMCP API keys and access scopes
jwksKeys used to sign OAuth tokens
account_deletion_requestsAccount deletion requests

Videos, courses, and tags

TableStores
videosVideo title, owner, file reference, transcript, and processing state
video_coursesCourses, owners, and sharing settings
video_course_membersVideos included in a course and their display order
video_course_membershipsMembership information for people using a course
video_course_invitationsCourse invitations and their state
tags / video_tagsUser tags / their associations with videos

Questions, answers, and evaluations

TableStores
chat_logsQuestions, answers, citations, and user feedback
chat_log_evaluationsEvaluation results for each answer
course_evaluation_snapshotsCourse-level evaluation aggregates

Search and PLOG

TableStores and caveats
scene_embeddingsSubtitle segments and search embeddings; currently 1536 dimensions
plog_build_jobsLearning data generation status
plog_conceptsConcepts extracted from videos
plog_edgesPrerequisites and other relationships between concepts
plog_learning_objectsInitial questions, hints, example misconceptions, and related content
plog_summary_nodesDefined for hierarchical summaries; the current simplified generator does not populate it
learner_concept_statesDefined for learning state; current Study temporary state is stored separately in a Durable Object

A table's existence does not mean the current pipeline writes to it. See the current PLOG implementation.

Delivery, duplicate protection, and billing

TableStores
external_tasksWork to dispatch externally and its delivery state
job_executionsExecution state of jobs received by the worker
mcp_idempotency_recordsRecords preventing duplicate effects from repeated MCP operations
stripe_eventsRecords preventing duplicate processing of received Stripe events

OAuth

TableStores
oauth_clientRegistered external clients
oauth_resource / oauth_client_resourceTarget APIs and permitted client associations
oauth_access_token / oauth_refresh_tokenIssued tokens and refresh information
oauth_consentScopes authorized by users for clients
oauth_client_assertionInformation preventing reuse of client authentication assertions

Common conventions

User IDs are UUIDs stored as text; videos, courses, and similar entities use numeric IDs. Timestamps are mostly stored with time zones and exposed by the API as UTC ISO-8601 values. Check each table's foreign keys and unique constraints for related-row deletion and duplicate prevention.

Related: ER diagrams, Change the database.