17 March 2022
CustomersGraphQL
We introduced the AuthenticationMode that controls whether the 
password field is required for a Customer in public beta. The Password authentication mode is the default mode for backwards compatibility that requires to set a password for the Customer. For use cases where Customers are authenticated externally, you can now set the authenticationMode to ExternalAuth to create Customers without a password.Changes:
- [API] Added 
authenticationModefield to Customer and CustomerDraft. - [API] Changed 
passwordfield to be optional on CustomerDraft whenauthenticationModeis set toExternalAuth. - [API] Removed 
passwordfield from Customer whenauthenticationModeis set toExternalAuth. - [API] Added Set AuthenticationMode update action.
 - [GraphQL API] Added the following types to the GraphQL schema: 
AuthenticationMode,SetCustomerAuthenticationMode. - [GraphQL API] Changed the 
Customertype:Customer.passwordfield type changed fromString!toString- Added the 
authenticationModefield to theCustomertype. 
 - [GraphQL API] Changed the 
CustomerSignUpDrafttype:CustomerSignUpDraft.passwordinput field type changed fromString!toString- Input field 
authenticationModewas added toCustomerSignUpDrafttype 
 - [GraphQL API] Changed the 
CustomerUpdateActiontype:- Input field 
setAuthenticationModewas added toCustomerUpdateActiontype 
 - Input field 
 - [GraphQL API] Changed the 
CustomerSignMeUpDrafttype:CustomerSignMeUpDraft.passwordinput field type changed fromString!toString
 
The following changes were introduced in terms of GraphQL SDL:
extend type Customer {
  authenticationMode: AuthenticationMode
}
extend input CustomerSignUpDraft {
  "BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
  authenticationMode: AuthenticationMode
}
extend input CustomerUpdateAction {
  setAuthenticationMode: SetCustomerAuthenticationMode
}
"AuthenticationMode values. BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"
enum AuthenticationMode {
  ExternalAuth
  Password
}
input SetCustomerAuthenticationMode {
  authMode: AuthenticationMode!
  password: String
}