diff --git a/packages/server/drizzle/0002_peer_approval_requests.sql b/packages/server/drizzle/0002_peer_approval_requests.sql new file mode 100644 index 00000000..48bb8350 --- /dev/null +++ b/packages/server/drizzle/0002_peer_approval_requests.sql @@ -0,0 +1,10 @@ +CREATE TABLE `peer_approval_requests` ( + `id` text PRIMARY KEY NOT NULL, + `origin` text NOT NULL, + `instance_name` text, + `hmac_secret` text NOT NULL, + `requested_at` integer NOT NULL, + `expires_at` integer NOT NULL +); +--> statement-breakpoint +CREATE UNIQUE INDEX `peer_approval_requests_origin_unique` ON `peer_approval_requests` (`origin`); diff --git a/packages/server/drizzle/meta/_journal.json b/packages/server/drizzle/meta/_journal.json index 011beb15..441c9792 100644 --- a/packages/server/drizzle/meta/_journal.json +++ b/packages/server/drizzle/meta/_journal.json @@ -15,6 +15,13 @@ "when": 1775734599940, "tag": "0001_clear_earthquake", "breakpoints": true + }, + { + "idx": 2, + "version": "6", + "when": 1776689384005, + "tag": "0002_peer_approval_requests", + "breakpoints": true } ] } \ No newline at end of file diff --git a/packages/server/src/db/schema.ts b/packages/server/src/db/schema.ts index b8a92b31..74f0f6f5 100644 --- a/packages/server/src/db/schema.ts +++ b/packages/server/src/db/schema.ts @@ -373,6 +373,15 @@ export const federationPeers = sqliteTable('federation_peers', { createdAt: integer('created_at').notNull(), }); +export const peerApprovalRequests = sqliteTable('peer_approval_requests', { + id: text('id').primaryKey(), + origin: text('origin').notNull().unique(), + instanceName: text('instance_name'), + hmacSecret: text('hmac_secret').notNull(), + requestedAt: integer('requested_at').notNull(), + expiresAt: integer('expires_at').notNull(), +}); + export const federationOutbox = sqliteTable('federation_outbox', { id: text('id').primaryKey(), peerId: text('peer_id').notNull().references(() => federationPeers.id, { onDelete: 'cascade' }),