diff --git a/packages/database/src/schema/generations.ts b/packages/database/src/schema/generations.ts index 18fca61..a61ac9b 100644 --- a/packages/database/src/schema/generations.ts +++ b/packages/database/src/schema/generations.ts @@ -83,7 +83,7 @@ export const generations = pgTable( // Request context requestId: uuid('request_id'), userAgent: text('user_agent'), - ipAddress: varchar('ip_address', { length: 45 }), // IPv6 max length + ipAddress: text('ip_address'), // Metadata meta: jsonb('meta').$type>().notNull().default({}), @@ -130,6 +130,9 @@ export const generations = pgTable( // Index for request correlation requestIdx: index('idx_generations_request').on(table.requestId), + + // Index for API key audit trail + apiKeyIdx: index('idx_generations_api_key').on(table.apiKeyId), }), ); diff --git a/packages/database/src/schema/images.ts b/packages/database/src/schema/images.ts index 80a1713..dddafa0 100644 --- a/packages/database/src/schema/images.ts +++ b/packages/database/src/schema/images.ts @@ -52,7 +52,7 @@ export const images = pgTable( // File metadata mimeType: varchar('mime_type', { length: 100 }).notNull(), fileSize: integer('file_size').notNull(), - fileHash: varchar('file_hash', { length: 64 }).notNull(), // SHA-256 for deduplication + fileHash: varchar('file_hash', { length: 64 }), // SHA-256 for deduplication // Dimensions width: integer('width'), @@ -127,6 +127,9 @@ export const images = pgTable( // Index for file hash (deduplication) hashIdx: index('idx_images_hash').on(table.fileHash), + + // Index for API key audit trail + apiKeyIdx: index('idx_images_api_key').on(table.apiKeyId), }), );