Browse Source
			
			
			Feature/set hashedKey of ApiKey to unique (#4103)
			
				* Set hashedKey to unique
			
			
				pull/4105/head
			
			
		 
		
			
				
					
						
						Thomas Kaul
					
					11 months ago
					
						
							committed by
							
								
								GitHub
							
						 
					
				 
				
			 
		 
		
			
				
					
					No known key found for this signature in database
					
						
							GPG Key ID: B5690EEEBB952194
						
					
				
			
		
		
		
	
		
			
				 3 changed files with 
7 additions and 
3 deletions
			 
			
		 
		
			
				- 
					
					
					 
					apps/api/src/services/api-key/api-key.service.ts
				
 
			
				- 
					
					
					 
					prisma/migrations/20241207142023_set_hashed_key_of_api_key_to_unique/migration.sql
				
 
			
				- 
					
					
					 
					prisma/schema.prisma
				
 
			
		
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -32,7 +32,7 @@ export class ApiKeyService { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  public async getUserByApiKey(apiKey: string) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const hashedKey = this.hashApiKey(apiKey); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const { user } = await this.prismaService.apiKey.findFirst({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const { user } = await this.prismaService.apiKey.findUnique({ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      include: { user: true }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      where: { hashedKey } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					@ -0,0 +1,5 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-- DropIndex | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					DROP INDEX "ApiKey_hashedKey_idx"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-- CreateIndex | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					CREATE UNIQUE INDEX "ApiKey_hashedKey_key" ON "ApiKey"("hashedKey"); | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -79,13 +79,12 @@ model Analytics { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					model ApiKey { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  createdAt DateTime @default(now()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  hashedKey String | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  hashedKey String   @unique | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  id        String   @id @default(uuid()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  updatedAt DateTime @updatedAt | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  userId    String | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  user      User     @relation(fields: [userId], onDelete: Cascade, references: [id]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  @@index([hashedKey]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  @@index([userId]) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |