| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | 
							- # ===============================================
 
- # AUTHENTICATION
 
- # ===============================================
 
- extend type Query {
 
-   authentication: AuthenticationQuery
 
- }
 
- extend type Mutation {
 
-   authentication: AuthenticationMutation
 
- }
 
- # -----------------------------------------------
 
- # QUERIES
 
- # -----------------------------------------------
 
- type AuthenticationQuery {
 
-   strategies(
 
-     isEnabled: Boolean
 
-   ): [AuthenticationStrategy]
 
- }
 
- # -----------------------------------------------
 
- # MUTATIONS
 
- # -----------------------------------------------
 
- type AuthenticationMutation {
 
-   login(
 
-     username: String!
 
-     password: String!
 
-     strategy: String!
 
-   ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)
 
-   loginTFA(
 
-     loginToken: String!
 
-     securityCode: String!
 
-   ): DefaultResponse @rateLimit(limit: 5, duration: 60)
 
-   register(
 
-     email: String!
 
-     password: String!
 
-     name: String!
 
-   ): AuthenticationRegisterResponse
 
-   updateStrategies(
 
-     strategies: [AuthenticationStrategyInput]!
 
-     config: AuthenticationConfigInput
 
-   ): DefaultResponse @auth(requires: ["manage:system"])
 
-   regenerateCertificates: DefaultResponse @auth(requires: ["manage:system"])
 
-   resetGuestUser: DefaultResponse @auth(requires: ["manage:system"])
 
- }
 
- # -----------------------------------------------
 
- # TYPES
 
- # -----------------------------------------------
 
- type AuthenticationStrategy {
 
-   isEnabled: Boolean!
 
-   key: String!
 
-   props: [String]
 
-   title: String!
 
-   description: String
 
-   isAvailable: Boolean
 
-   useForm: Boolean!
 
-   logo: String
 
-   color: String
 
-   website: String
 
-   icon: String
 
-   config: [KeyValuePair] @auth(requires: ["manage:system"])
 
-   selfRegistration: Boolean!
 
-   domainWhitelist: [String]! @auth(requires: ["manage:system"])
 
-   autoEnrollGroups: [Int]! @auth(requires: ["manage:system"])
 
- }
 
- type AuthenticationLoginResponse {
 
-   responseResult: ResponseStatus
 
-   jwt: String
 
-   tfaRequired: Boolean
 
-   tfaLoginToken: String
 
- }
 
- type AuthenticationRegisterResponse {
 
-   responseResult: ResponseStatus
 
-   jwt: String
 
- }
 
- input AuthenticationStrategyInput {
 
-   isEnabled: Boolean!
 
-   key: String!
 
-   config: [KeyValuePairInput]
 
-   selfRegistration: Boolean!
 
-   domainWhitelist: [String]!
 
-   autoEnrollGroups: [Int]!
 
- }
 
- input AuthenticationConfigInput {
 
-   audience: String!
 
-   tokenExpiration: String!
 
-   tokenRenewal: String!
 
- }
 
 
  |