Don't allow empty strings in credential creation api (#1934)

This commit is contained in:
Shuchang Zheng
2025-03-13 11:51:58 -07:00
committed by GitHub
parent fc4c9715bf
commit 4c6a65059f

View File

@@ -1,7 +1,7 @@
from datetime import datetime
from enum import StrEnum
from pydantic import BaseModel, ConfigDict
from pydantic import BaseModel, ConfigDict, Field
class CredentialType(StrEnum):
@@ -24,6 +24,11 @@ class PasswordCredential(BaseModel):
totp: str | None = None
class NonEmptyPasswordCredential(PasswordCredential):
password: str = Field(..., min_length=1)
username: str = Field(..., min_length=1)
class CreditCardCredential(BaseModel):
card_number: str
card_cvv: str
@@ -33,6 +38,15 @@ class CreditCardCredential(BaseModel):
card_holder_name: str
class NonEmptyCreditCardCredential(CreditCardCredential):
card_number: str = Field(..., min_length=1)
card_cvv: str = Field(..., min_length=1)
card_exp_month: str = Field(..., min_length=1)
card_exp_year: str = Field(..., min_length=1)
card_brand: str = Field(..., min_length=1)
card_holder_name: str = Field(..., min_length=1)
class CredentialItem(BaseModel):
item_id: str
name: str
@@ -43,7 +57,7 @@ class CredentialItem(BaseModel):
class CreateCredentialRequest(BaseModel):
name: str
credential_type: CredentialType
credential: PasswordCredential | CreditCardCredential
credential: NonEmptyPasswordCredential | NonEmptyCreditCardCredential
class CredentialResponse(BaseModel):