forked from
smokesignal.events/smokesignal
i18n+filtering fork - fluent-templates v2
1CREATE TABLE handles (
2 did varchar(512) PRIMARY KEY,
3 handle varchar(512) NOT NULL,
4 pds varchar(512) NOT NULL,
5 language varchar(12) NOT NULL DEFAULT 'en-us',
6 tz varchar(48) NOT NULL DEFAULT 'America/New_York',
7 created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
8 updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
9 active_at TIMESTAMP WITH TIME ZONE DEFAULT NULL
10);
11CREATE TABLE oauth_requests (
12 oauth_state varchar(512) PRIMARY KEY,
13 issuer varchar(512) NOT NULL,
14 did varchar(512) NOT NULL,
15 nonce varchar(512) NOT NULL,
16 pkce_verifier varchar(512) NOT NULL,
17 secret_jwk_id varchar(64) NOT NULL,
18 dpop_jwk JSON NOT NULL,
19 destination varchar(512) DEFAULT NULL,
20 created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
21 expires_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() + (10 || ' minutes')::interval
22);
23CREATE INDEX idx_oauth_requests_did ON oauth_requests(did);
24CREATE TABLE oauth_sessions (
25 session_group varchar(32) PRIMARY KEY,
26 access_token varchar(1024) NOT NULL,
27 did varchar(512) NOT NULL,
28 issuer varchar(512) NOT NULL,
29 refresh_token varchar(1024) NOT NULL,
30 secret_jwk_id varchar(64) NOT NULL,
31 dpop_jwk JSON NOT NULL,
32 created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
33 access_token_expires_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() + (30 || ' minutes')::interval,
34 not_after TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() + (24 || ' hours')::interval
35);
36CREATE INDEX idx_oauth_sessions_did ON oauth_sessions(did);