Diffdown is a real-time collaborative Markdown editor/previewer built on the AT Protocol diffdown.com
at main 54 lines 1.7 kB view raw
1-- 001_baseline.sql 2-- Consolidated baseline schema replacing migrations 001–008. 3 4CREATE TABLE users ( 5 id TEXT PRIMARY KEY, 6 did TEXT UNIQUE NOT NULL 7); 8 9CREATE TABLE atproto_sessions ( 10 user_id TEXT PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE, 11 did TEXT NOT NULL, 12 pds_url TEXT NOT NULL, 13 access_token TEXT NOT NULL, 14 refresh_token TEXT NOT NULL, 15 dpop_key_jwk TEXT NOT NULL, 16 dpop_nonce TEXT DEFAULT '', 17 token_endpoint TEXT NOT NULL, 18 expires_at DATETIME NOT NULL, 19 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP 20); 21 22CREATE TABLE invites ( 23 id TEXT PRIMARY KEY, 24 document_rkey TEXT NOT NULL, 25 token TEXT NOT NULL UNIQUE, 26 created_by_did TEXT NOT NULL, 27 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, 28 expires_at DATETIME NOT NULL 29); 30 31CREATE INDEX idx_invites_document ON invites(document_rkey); 32CREATE INDEX idx_invites_token ON invites(token); 33 34CREATE TABLE doc_steps ( 35 id INTEGER PRIMARY KEY AUTOINCREMENT, 36 doc_rkey TEXT NOT NULL, 37 version INTEGER NOT NULL, 38 step_json TEXT NOT NULL, 39 client_id TEXT NOT NULL, 40 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, 41 UNIQUE(doc_rkey, version) 42); 43 44CREATE INDEX idx_doc_steps_rkey_version ON doc_steps(doc_rkey, version); 45 46CREATE TABLE collaborations ( 47 collaborator_did TEXT NOT NULL, 48 owner_did TEXT NOT NULL, 49 document_rkey TEXT NOT NULL, 50 added_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 51 PRIMARY KEY (collaborator_did, owner_did, document_rkey) 52); 53 54CREATE INDEX idx_collaborations_did_added ON collaborations(collaborator_did, added_at DESC);