backend for xcvr appview
at main 90 lines 2.2 kB view raw
1CREATE TABLE profiles ( 2 did TEXT PRIMARY KEY, 3 display_name TEXT, 4 default_nick TEXT, 5 status TEXT, 6 avatar_cid TEXT, 7 avatar_mime TEXT, 8 color INTEGER CHECK (color BETWEEN 0 and 16777215), 9 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 10); 11 12CREATE TABLE profile_records ( 13 uri TEXT NOT NULL PRIMARY KEY, 14 profile_did TEXT NOT NULL, 15 FOREIGN KEY (profile_did) REFERENCES profiles(did) ON DELETE CASCADE, 16 cid TEXT NOT NULL, 17 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 18); 19 20CREATE TABLE did_handles ( 21 handle TEXT PRIMARY KEY, 22 did TEXT NOT NULL UNIQUE, 23 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 24); 25 26CREATE TABLE channels ( 27 uri TEXT PRIMARY KEY, 28 cid TEXT NOT NULL, 29 did TEXT NOT NULL, 30 host TEXT NOT NULL, 31 title TEXT NOT NULL, 32 topic TEXT, 33 created_at TIMESTAMPTZ NOT NULL, 34 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 35); 36 37CREATE TABLE signets ( 38 uri TEXT PRIMARY KEY, 39 issuer_did TEXT NOT NULL, 40 author_handle TEXT NOT NULL, 41 channel_uri TEXT NOT NULL, 42 FOREIGN KEY (channel_uri) REFERENCES channels(uri) ON DELETE CASCADE, 43 message_id INTEGER CHECK (message_id BETWEEN 0 AND 4294967295), 44 cid TEXT NOT NULL, 45 started_at TIMESTAMPTZ NOT NULL DEFAULT now(), 46 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 47); 48 49CREATE INDEX ON signets (channel_uri, message_id DESC); 50 51CREATE TABLE messages ( 52 uri TEXT PRIMARY KEY, 53 did TEXT NOT NULL, 54 signet_uri TEXT NOT NULL, 55 FOREIGN KEY (signet_uri) REFERENCES signets(uri) ON DELETE CASCADE, 56 body TEXT, 57 nick TEXT NOT NULL DEFAULT 'wanderer', 58 color INTEGER CHECK (color BETWEEN 0 AND 16777215), 59 cid TEXT NOT NULL, 60 posted_at TIMESTAMPTZ NOT NULL DEFAULT now(), 61 indexed_at TIMESTAMPTZ NOT NULL DEFAULT now() 62); 63 64CREATE INDEX ON messages (signet_uri); 65 66CREATE TABLE oauthrequests ( 67 id SERIAL PRIMARY KEY, 68 authserver_iss TEXT, 69 state TEXT, 70 did TEXT, 71 pds_url TEXT, 72 pkce_verifier TEXT, 73 dpop_auth_server_nonce TEXT, 74 dpop_private_jwk TEXT 75); 76 77CREATE TABLE oauthsessions ( 78 id SERIAL PRIMARY KEY, 79 authserver_iss TEXT, 80 state TEXT, 81 did TEXT, 82 pds_url TEXT, 83 pkce_verifier TEXT, 84 dpop_auth_server_nonce TEXT, 85 dpop_private_jwk TEXT, 86 dpop_pds_nonce TEXT, 87 access_token TEXT, 88 refresh_token TEXT, 89 expiration TIMESTAMPTZ 90);