184 lines · 7.5 KB · TypeScript
RawDownload
import type {  RelayAgentActivityAggregateState,  RelayAgentActivityState,  RelayAgentAwarenessPreferences,} from "@t3tools/contracts/relay";import {  boolean,  index,  integer,  jsonb,  pgTable,  primaryKey,  text,  uniqueIndex,  varchar,} from "drizzle-orm/pg-core"; export const relayMobileDevices = pgTable(  "relay_mobile_devices",  {    userId: varchar("user_id", { length: 255 }).notNull(),    deviceId: varchar("device_id", { length: 255 }).notNull(),    label: text("label").notNull().default("iOS device"),    platform: varchar("platform", { length: 16 }).notNull().$type<"ios">(),    iosMajorVersion: integer("ios_major_version").notNull(),    appVersion: varchar("app_version", { length: 64 }),    pushToken: text("push_token"),    pushToStartToken: text("push_to_start_token"),    preferencesJson: jsonb("preferences_json").notNull().$type<RelayAgentAwarenessPreferences>(),    createdAt: varchar("created_at", { length: 64 }).notNull(),    updatedAt: varchar("updated_at", { length: 64 }).notNull(),  },  (table) => [    primaryKey({ columns: [table.userId, table.deviceId] }),    index("idx_relay_mobile_devices_user").on(table.userId),    uniqueIndex("idx_relay_mobile_devices_push_token").on(table.pushToken),    uniqueIndex("idx_relay_mobile_devices_push_to_start_token").on(table.pushToStartToken),  ],); export const relayLiveActivities = pgTable(  "relay_live_activities",  {    userId: varchar("user_id", { length: 255 }).notNull(),    deviceId: varchar("device_id", { length: 255 }).notNull(),    activityPushToken: text("activity_push_token"),    remoteStartQueuedAt: varchar("remote_start_queued_at", { length: 64 }),    remoteStartedAt: varchar("remote_started_at", { length: 64 }),    endedAt: varchar("ended_at", { length: 64 }),    lastAggregateJson: jsonb("last_aggregate_json").$type<RelayAgentActivityAggregateState>(),    lastLiveActivityDeliveryAt: varchar("last_live_activity_delivery_at", { length: 64 }),    createdAt: varchar("created_at", { length: 64 }).notNull(),    updatedAt: varchar("updated_at", { length: 64 }).notNull(),  },  (table) => [    primaryKey({ columns: [table.userId, table.deviceId] }),    index("idx_relay_live_activities_user").on(table.userId),    uniqueIndex("idx_relay_live_activities_activity_push_token").on(table.activityPushToken),  ],); export const relayEnvironmentLinks = pgTable(  "relay_environment_links",  {    userId: varchar("user_id", { length: 191 }).notNull(),    environmentId: varchar("environment_id", { length: 191 }).notNull(),    environmentLabel: text("environment_label").notNull().default("T3 Environment"),    environmentPublicKey: text("environment_public_key").notNull(),    endpointHttpBaseUrl: text("endpoint_http_base_url").notNull(),    endpointWsBaseUrl: text("endpoint_ws_base_url").notNull(),    endpointProviderKind: varchar("endpoint_provider_kind", { length: 32 }).notNull(),    notificationsEnabled: boolean("notifications_enabled").notNull().default(true),    liveActivitiesEnabled: boolean("live_activities_enabled").notNull().default(true),    managedTunnelsEnabled: boolean("managed_tunnels_enabled").notNull().default(false),    createdByDeviceId: varchar("created_by_device_id", { length: 191 }),    revokedAt: varchar("revoked_at", { length: 64 }),    createdAt: varchar("created_at", { length: 64 }).notNull(),    updatedAt: varchar("updated_at", { length: 64 }).notNull(),  },  (table) => [    primaryKey({ columns: [table.userId, table.environmentId] }),    index("idx_relay_environment_links_environment").on(table.environmentId, table.revokedAt),  ],); export const relayManagedEndpointAllocations = pgTable(  "relay_managed_endpoint_allocations",  {    userId: varchar("user_id", { length: 191 }).notNull(),    environmentId: varchar("environment_id", { length: 191 }).notNull(),    hostname: text("hostname").notNull(),    tunnelId: varchar("tunnel_id", { length: 191 }),    tunnelName: text("tunnel_name").notNull(),    dnsRecordId: varchar("dns_record_id", { length: 191 }),    readyAt: varchar("ready_at", { length: 64 }),    createdAt: varchar("created_at", { length: 64 }).notNull(),    updatedAt: varchar("updated_at", { length: 64 }).notNull(),  },  (table) => [    primaryKey({ columns: [table.userId, table.environmentId] }),    uniqueIndex("idx_relay_managed_endpoint_allocations_hostname").on(table.hostname),    uniqueIndex("idx_relay_managed_endpoint_allocations_tunnel_name").on(table.tunnelName),  ],); export const relayEnvironmentCredentials = pgTable(  "relay_environment_credentials",  {    credentialId: varchar("credential_id", { length: 64 }).primaryKey(),    environmentId: varchar("environment_id", { length: 191 }).notNull(),    environmentPublicKey: text("environment_public_key").notNull(),    credentialHash: varchar("credential_hash", { length: 191 }).notNull(),    revokedAt: varchar("revoked_at", { length: 64 }),    createdAt: varchar("created_at", { length: 64 }).notNull(),    updatedAt: varchar("updated_at", { length: 64 }).notNull(),  },  (table) => [    uniqueIndex("idx_relay_environment_credentials_hash").on(table.credentialHash),    index("idx_relay_environment_credentials_environment").on(table.environmentId, table.revokedAt),    index("idx_relay_environment_credentials_environment_key").on(      table.environmentId,      table.environmentPublicKey,      table.revokedAt,    ),  ],); export const relayAgentActivityRows = pgTable(  "relay_agent_activity_rows",  {    environmentId: varchar("environment_id", { length: 191 }).notNull(),    environmentPublicKey: text("environment_public_key").notNull(),    threadId: varchar("thread_id", { length: 191 }).notNull(),    stateJson: jsonb("state_json").notNull().$type<RelayAgentActivityState>(),    updatedAt: varchar("updated_at", { length: 64 }).notNull(),    createdAt: varchar("created_at", { length: 64 }).notNull(),  },  (table) => [    primaryKey({ columns: [table.environmentId, table.environmentPublicKey, table.threadId] }),    index("idx_relay_agent_activity_rows_updated").on(table.updatedAt),  ],); export const relayDeliveryAttempts = pgTable(  "relay_delivery_attempts",  {    id: varchar("id", { length: 36 }).primaryKey(),    createdAt: varchar("created_at", { length: 64 }).notNull(),    userId: varchar("user_id", { length: 255 }),    environmentId: varchar("environment_id", { length: 191 }),    threadId: varchar("thread_id", { length: 191 }),    deviceId: varchar("device_id", { length: 255 }),    kind: varchar("kind", { length: 64 }).notNull(),    sourceJobId: varchar("source_job_id", { length: 64 }),    tokenSuffix: varchar("token_suffix", { length: 16 }),    apnsStatus: integer("apns_status"),    apnsReason: text("apns_reason"),    apnsId: varchar("apns_id", { length: 128 }),    transportError: text("transport_error"),  },  (table) => [    index("idx_relay_delivery_attempts_environment").on(      table.environmentId,      table.threadId,      table.createdAt,    ),    uniqueIndex("idx_relay_delivery_attempts_source_job").on(table.sourceJobId),  ],); export const relayDpopProofs = pgTable(  "relay_dpop_proofs",  {    thumbprint: varchar("thumbprint", { length: 128 }).notNull(),    jti: varchar("jti", { length: 255 }).notNull(),    iat: integer("iat").notNull(),    expiresAt: varchar("expires_at", { length: 64 }).notNull(),    createdAt: varchar("created_at", { length: 64 }).notNull(),  },  (table) => [    primaryKey({ columns: [table.thumbprint, table.jti] }),    index("idx_relay_dpop_proofs_expires_at").on(table.expiresAt),  ],);