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), ],);
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),
],
);