add migration:
This commit is contained in:
Vendored
+4
-3
@@ -32,9 +32,9 @@ export class SafelinkClient {
|
||||
this.db = db
|
||||
|
||||
this.ozoneAgent = new OzoneAgent(
|
||||
cfg.ozoneUrl!,
|
||||
cfg.ozoneAgentHandle!,
|
||||
cfg.ozoneAgentPass!,
|
||||
cfg.safelinkPdsUrl!,
|
||||
cfg.safelinkAgentIdentifier!,
|
||||
cfg.safelinkAgentPass!,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -185,6 +185,7 @@ export class SafelinkClient {
|
||||
return ''
|
||||
}
|
||||
|
||||
// @ts-ignore TODO: fix this
|
||||
this.cursor = res.cursor
|
||||
}
|
||||
return this.cursor
|
||||
|
||||
+12
-12
@@ -11,9 +11,9 @@ export type ServiceConfig = {
|
||||
hostnames: string[]
|
||||
appHostname: string
|
||||
safelinkEnabled: boolean
|
||||
ozoneUrl?: string
|
||||
ozoneAgentHandle?: string
|
||||
ozoneAgentPass?: string
|
||||
safelinkPdsUrl?: string
|
||||
safelinkAgentIdentifier?: string
|
||||
safelinkAgentPass?: string
|
||||
}
|
||||
|
||||
export type DbConfig = {
|
||||
@@ -41,9 +41,9 @@ export type Environment = {
|
||||
dbPostgresPoolMaxUses?: number
|
||||
dbPostgresPoolIdleTimeoutMs?: number
|
||||
safelinkEnabled?: boolean
|
||||
ozoneUrl?: string
|
||||
ozoneAgentHandle?: string
|
||||
ozoneAgentPass?: string
|
||||
safelinkPdsUrl?: string
|
||||
safelinkAgentIdentifier?: string
|
||||
safelinkAgentPass?: string
|
||||
}
|
||||
|
||||
export const readEnv = (): Environment => {
|
||||
@@ -61,9 +61,9 @@ export const readEnv = (): Environment => {
|
||||
'LINK_DB_POSTGRES_POOL_IDLE_TIMEOUT_MS',
|
||||
),
|
||||
safelinkEnabled: envBool('SAFELINK_ENABLED'),
|
||||
ozoneUrl: envStr('OZONE_URL'),
|
||||
ozoneAgentHandle: envStr('OZONE_AGENT_HANDLE'),
|
||||
ozoneAgentPass: envStr('OZONE_AGENT_PASS'),
|
||||
safelinkPdsUrl: envStr('SAFELINK_PDS_URL'),
|
||||
safelinkAgentIdentifier: envStr('SAFELINK_AGENT_IDENTIFIER'),
|
||||
safelinkAgentPass: envStr('SAFELINK_AGENT_PASS'),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,9 +74,9 @@ export const envToCfg = (env: Environment): Config => {
|
||||
hostnames: env.hostnames,
|
||||
appHostname: env.appHostname ?? 'bsky.app',
|
||||
safelinkEnabled: env.safelinkEnabled ?? false,
|
||||
ozoneUrl: env.ozoneUrl,
|
||||
ozoneAgentHandle: env.ozoneAgentHandle,
|
||||
ozoneAgentPass: env.ozoneAgentPass,
|
||||
safelinkPdsUrl: env.safelinkPdsUrl,
|
||||
safelinkAgentIdentifier: env.safelinkAgentIdentifier,
|
||||
safelinkAgentPass: env.safelinkAgentPass,
|
||||
}
|
||||
if (!env.dbPostgresUrl) {
|
||||
throw new Error('Must configure postgres url (LINK_DB_POSTGRES_URL)')
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import {type Kysely} from 'kysely'
|
||||
|
||||
export async function up(db: Kysely<unknown>): Promise<void> {
|
||||
await db.schema
|
||||
.createTable('safelink_rule')
|
||||
.addColumn('id', 'bigserial', col => col.primaryKey())
|
||||
.addColumn('eventType', 'varchar', col => col.notNull())
|
||||
.addColumn('url', 'varchar', col => col.notNull())
|
||||
.addColumn('pattern', 'varchar', col => col.notNull())
|
||||
.addColumn('action', 'varchar', col => col.notNull())
|
||||
.addColumn('reason', 'varchar', col => col.notNull())
|
||||
.addColumn('createdBy', 'varchar', col => col.notNull())
|
||||
.addColumn('createdAt', 'timestamptz', col => col.notNull())
|
||||
.addColumn('comment', 'varchar', col => col.notNull())
|
||||
.execute()
|
||||
|
||||
await db.schema
|
||||
.createTable('safelink_cursor')
|
||||
.addColumn('id', 'bigserial', col => col.primaryKey())
|
||||
.addColumn('cursor', 'varchar', col => col.notNull())
|
||||
.addColumn('createdAt', 'timestamptz', col => col.notNull())
|
||||
.execute()
|
||||
|
||||
await db.schema
|
||||
.createIndex('safelink_rule_url_pattern_idx')
|
||||
.on('safelink_rule')
|
||||
.columns(['url', 'pattern'])
|
||||
.execute()
|
||||
}
|
||||
|
||||
export async function down(db: Kysely<unknown>): Promise<void> {
|
||||
await db.schema.dropIndex('safelink_rule_url_pattern_idx').execute()
|
||||
await db.schema.dropTable('safelink_rule').execute()
|
||||
await db.schema.dropTable('safelink_cursor').execute()
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
import * as init from './001-init.js'
|
||||
import * as safelink from './002-safelink.js'
|
||||
|
||||
export default {
|
||||
'001': init,
|
||||
'002': safelink,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user