| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | # ===============================================# AUTHENTICATION# ===============================================extend type Query {  apiKeys: [AuthenticationApiKey]  apiState: Boolean  authStrategies: [AuthenticationStrategy]  authActiveStrategies(    enabledOnly: Boolean  ): [AuthenticationActiveStrategy]  authSiteStrategies(    siteId: UUID!    visibleOnly: Boolean  ): [AuthenticationSiteStrategy]}extend type Mutation {  createApiKey(    name: String!    expiration: String!    groups: [UUID]!  ): AuthenticationCreateApiKeyResponse  login(    username: String!    password: String!    strategyId: UUID!    siteId: UUID  ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)  loginTFA(    continuationToken: String!    securityCode: String!    setup: Boolean  ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)  changePassword(    userId: UUID    continuationToken: String    currentPassword: String    newPassword: String!    strategyId: UUID!    siteId: UUID  ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)  forgotPassword(    email: String!  ): DefaultResponse @rateLimit(limit: 3, duration: 60)  register(    email: String!    password: String!    name: String!  ): AuthenticationRegisterResponse  refreshToken(    token: String!  ): AuthenticationTokenResponse @rateLimit(limit: 30, duration: 60)  revokeApiKey(    id: UUID!  ): DefaultResponse  setApiState(    enabled: Boolean!  ): DefaultResponse  updateAuthStrategies(    strategies: [AuthenticationStrategyInput]!  ): DefaultResponse  regenerateCertificates: DefaultResponse  resetGuestUser: DefaultResponse}# -----------------------------------------------# TYPES# -----------------------------------------------type AuthenticationStrategy {  key: String  props: JSON  title: String  description: String  isAvailable: Boolean  useForm: Boolean  usernameType: String  logo: String  color: String  vendor: String  website: String  icon: String}type AuthenticationActiveStrategy {  id: UUID  strategy: AuthenticationStrategy  displayName: String  isEnabled: Boolean  config: JSON  selfRegistration: Boolean  domainWhitelist: [String]  autoEnrollGroups: [Int]}type AuthenticationSiteStrategy {  id: UUID  activeStrategy: AuthenticationActiveStrategy  order: Int  isVisible: Boolean}type AuthenticationLoginResponse {  operation: Operation  jwt: String  mustChangePwd: Boolean  mustProvideTFA: Boolean  mustSetupTFA: Boolean  continuationToken: String  redirect: String  tfaQRImage: String}type AuthenticationRegisterResponse {  operation: Operation  jwt: String}type AuthenticationTokenResponse {  operation: Operation  jwt: String}input AuthenticationStrategyInput {  key: String!  strategyKey: String!  config: [KeyValuePairInput]  displayName: String!  order: Int!  isEnabled: Boolean!  selfRegistration: Boolean!  domainWhitelist: [String]!  autoEnrollGroups: [Int]!}type AuthenticationApiKey {  id: UUID  name: String  keyShort: String  expiration: Date  createdAt: Date  updatedAt: Date  isRevoked: Boolean}type AuthenticationCreateApiKeyResponse {  operation: Operation  key: String}
 |