Some checks failed
Build & Release / build (push) Failing after 35s
- app_settings table with encrypted field support (AES-256-GCM, key from ENCRYPTION_KEY env) - SettingsService for transparent encrypt/decrypt on get/set - EmailService factory with Resend and SendGrid providers (SMTP stub) — provider config lives in app_settings - Seeds initial admin user and email settings from env vars on first startup if not already present - Migration 0039_app_settings.sql Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14 lines
589 B
TypeScript
14 lines
589 B
TypeScript
import { pgTable, varchar, text, boolean, timestamp } from 'drizzle-orm/pg-core'
|
|
|
|
export const appSettings = pgTable('app_settings', {
|
|
key: varchar('key', { length: 100 }).primaryKey(),
|
|
value: text('value'),
|
|
isEncrypted: boolean('is_encrypted').notNull().default(false),
|
|
iv: text('iv'),
|
|
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
|
|
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
|
|
})
|
|
|
|
export type AppSetting = typeof appSettings.$inferSelect
|
|
export type AppSettingInsert = typeof appSettings.$inferInsert
|