+59
src/lib/db.ts
+59
src/lib/db.ts
···
108
108
)
109
109
`;
110
110
111
+
// Create indexes for common query patterns
112
+
await Promise.all([
113
+
// oauth_states cleanup queries
114
+
db`CREATE INDEX IF NOT EXISTS idx_oauth_states_expires_at ON oauth_states(expires_at)`.catch(err => {
115
+
if (!err.message?.includes('already exists')) {
116
+
console.error('Failed to create idx_oauth_states_expires_at:', err);
117
+
}
118
+
}),
119
+
120
+
// oauth_sessions cleanup queries
121
+
db`CREATE INDEX IF NOT EXISTS idx_oauth_sessions_expires_at ON oauth_sessions(expires_at)`.catch(err => {
122
+
if (!err.message?.includes('already exists')) {
123
+
console.error('Failed to create idx_oauth_sessions_expires_at:', err);
124
+
}
125
+
}),
126
+
127
+
// oauth_keys key rotation queries
128
+
db`CREATE INDEX IF NOT EXISTS idx_oauth_keys_created_at ON oauth_keys(created_at)`.catch(err => {
129
+
if (!err.message?.includes('already exists')) {
130
+
console.error('Failed to create idx_oauth_keys_created_at:', err);
131
+
}
132
+
}),
133
+
134
+
// domains queries by (did, rkey)
135
+
db`CREATE INDEX IF NOT EXISTS idx_domains_did_rkey ON domains(did, rkey)`.catch(err => {
136
+
if (!err.message?.includes('already exists')) {
137
+
console.error('Failed to create idx_domains_did_rkey:', err);
138
+
}
139
+
}),
140
+
141
+
// custom_domains queries by did
142
+
db`CREATE INDEX IF NOT EXISTS idx_custom_domains_did ON custom_domains(did)`.catch(err => {
143
+
if (!err.message?.includes('already exists')) {
144
+
console.error('Failed to create idx_custom_domains_did:', err);
145
+
}
146
+
}),
147
+
148
+
// custom_domains queries by (did, rkey)
149
+
db`CREATE INDEX IF NOT EXISTS idx_custom_domains_did_rkey ON custom_domains(did, rkey)`.catch(err => {
150
+
if (!err.message?.includes('already exists')) {
151
+
console.error('Failed to create idx_custom_domains_did_rkey:', err);
152
+
}
153
+
}),
154
+
155
+
// custom_domains DNS verification worker queries
156
+
db`CREATE INDEX IF NOT EXISTS idx_custom_domains_verified ON custom_domains(verified)`.catch(err => {
157
+
if (!err.message?.includes('already exists')) {
158
+
console.error('Failed to create idx_custom_domains_verified:', err);
159
+
}
160
+
}),
161
+
162
+
// sites queries by did
163
+
db`CREATE INDEX IF NOT EXISTS idx_sites_did ON sites(did)`.catch(err => {
164
+
if (!err.message?.includes('already exists')) {
165
+
console.error('Failed to create idx_sites_did:', err);
166
+
}
167
+
})
168
+
]);
169
+
111
170
const RESERVED_HANDLES = new Set([
112
171
"www",
113
172
"api",