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);