Alternative ATProto PDS implementation
1CREATE TABLE `repo_seq`(
2 `seq` INT8 NOT NULL PRIMARY KEY,
3 `did` VARCHAR NOT NULL,
4 `eventtype` VARCHAR NOT NULL,
5 `event` BYTEA NOT NULL,
6 `invalidated` INT2 NOT NULL,
7 `sequencedat` VARCHAR NOT NULL
8);
9
10CREATE TABLE `app_password`(
11 `did` VARCHAR NOT NULL,
12 `name` VARCHAR NOT NULL,
13 `password` VARCHAR NOT NULL,
14 `createdat` VARCHAR NOT NULL,
15 PRIMARY KEY(`did`, `name`)
16);
17
18CREATE TABLE `device_account`(
19 `did` VARCHAR NOT NULL,
20 `deviceid` VARCHAR NOT NULL,
21 `authenticatedat` TIMESTAMPTZ NOT NULL,
22 `remember` BOOL NOT NULL,
23 `authorizedclients` VARCHAR NOT NULL,
24 PRIMARY KEY(`deviceId`, `did`)
25);
26
27CREATE TABLE `actor`(
28 `did` VARCHAR NOT NULL PRIMARY KEY,
29 `handle` VARCHAR,
30 `createdat` VARCHAR NOT NULL,
31 `takedownref` VARCHAR,
32 `deactivatedat` VARCHAR,
33 `deleteafter` VARCHAR
34);
35
36CREATE TABLE `device`(
37 `id` VARCHAR NOT NULL PRIMARY KEY,
38 `sessionid` VARCHAR,
39 `useragent` VARCHAR,
40 `ipaddress` VARCHAR NOT NULL,
41 `lastseenat` TIMESTAMPTZ NOT NULL
42);
43
44CREATE TABLE `did_doc`(
45 `did` VARCHAR NOT NULL PRIMARY KEY,
46 `doc` TEXT NOT NULL,
47 `updatedat` INT8 NOT NULL
48);
49
50CREATE TABLE `email_token`(
51 `purpose` VARCHAR NOT NULL,
52 `did` VARCHAR NOT NULL,
53 `token` VARCHAR NOT NULL,
54 `requestedat` VARCHAR NOT NULL,
55 PRIMARY KEY(`purpose`, `did`)
56);
57
58CREATE TABLE `invite_code`(
59 `code` VARCHAR NOT NULL PRIMARY KEY,
60 `availableuses` INT4 NOT NULL,
61 `disabled` INT2 NOT NULL,
62 `foraccount` VARCHAR NOT NULL,
63 `createdby` VARCHAR NOT NULL,
64 `createdat` VARCHAR NOT NULL
65);
66
67CREATE TABLE `used_refresh_token`(
68 `refreshtoken` VARCHAR NOT NULL PRIMARY KEY,
69 `tokenid` VARCHAR NOT NULL
70);
71
72CREATE TABLE `invite_code_use`(
73 `code` VARCHAR NOT NULL,
74 `usedby` VARCHAR NOT NULL,
75 `usedat` VARCHAR NOT NULL,
76 PRIMARY KEY(`code`, `usedBy`)
77);
78
79CREATE TABLE `authorization_request`(
80 `id` VARCHAR NOT NULL PRIMARY KEY,
81 `did` VARCHAR,
82 `deviceid` VARCHAR,
83 `clientid` VARCHAR NOT NULL,
84 `clientauth` VARCHAR NOT NULL,
85 `parameters` VARCHAR NOT NULL,
86 `expiresat` TIMESTAMPTZ NOT NULL,
87 `code` VARCHAR
88);
89
90CREATE TABLE `token`(
91 `id` VARCHAR NOT NULL PRIMARY KEY,
92 `did` VARCHAR NOT NULL,
93 `tokenid` VARCHAR NOT NULL,
94 `createdat` TIMESTAMPTZ NOT NULL,
95 `updatedat` TIMESTAMPTZ NOT NULL,
96 `expiresat` TIMESTAMPTZ NOT NULL,
97 `clientid` VARCHAR NOT NULL,
98 `clientauth` VARCHAR NOT NULL,
99 `deviceid` VARCHAR,
100 `parameters` VARCHAR NOT NULL,
101 `details` VARCHAR,
102 `code` VARCHAR,
103 `currentrefreshtoken` VARCHAR
104);
105
106CREATE TABLE `refresh_token`(
107 `id` VARCHAR NOT NULL PRIMARY KEY,
108 `did` VARCHAR NOT NULL,
109 `expiresat` VARCHAR NOT NULL,
110 `nextid` VARCHAR,
111 `apppasswordname` VARCHAR
112);
113
114CREATE TABLE `account`(
115 `did` VARCHAR NOT NULL PRIMARY KEY,
116 `email` VARCHAR NOT NULL,
117 `recoverykey` VARCHAR,
118 `password` VARCHAR NOT NULL,
119 `createdat` VARCHAR NOT NULL,
120 `invitesdisabled` INT2 NOT NULL,
121 `emailconfirmedat` VARCHAR
122);