123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- # ===============================================
- # AUTHENTICATION
- # ===============================================
- extend type Query {
- authentication: AuthenticationQuery
- }
- extend type Mutation {
- authentication: AuthenticationMutation
- }
- # -----------------------------------------------
- # QUERIES
- # -----------------------------------------------
- type AuthenticationQuery {
- apiKeys: [AuthenticationApiKey] @auth(requires: ["manage:system", "manage:api"])
- apiState: Boolean! @auth(requires: ["manage:system", "manage:api"])
- strategies: [AuthenticationStrategy] @auth(requires: ["manage:system"])
- activeStrategies(
- enabledOnly: Boolean
- ): [AuthenticationActiveStrategy]
- }
- # -----------------------------------------------
- # MUTATIONS
- # -----------------------------------------------
- type AuthenticationMutation {
- createApiKey(
- name: String!
- expiration: String!
- fullAccess: Boolean!
- group: Int
- ): AuthenticationCreateApiKeyResponse @auth(requires: ["manage:system", "manage:api"])
- login(
- username: String!
- password: String!
- strategy: String!
- ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)
- loginTFA(
- continuationToken: String!
- securityCode: String!
- setup: Boolean
- ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)
- loginChangePassword(
- continuationToken: String!
- newPassword: String!
- ): AuthenticationLoginResponse @rateLimit(limit: 5, duration: 60)
- forgotPassword(
- email: String!
- ): DefaultResponse @rateLimit(limit: 3, duration: 60)
- register(
- email: String!
- password: String!
- name: String!
- ): AuthenticationRegisterResponse
- revokeApiKey(
- id: Int!
- ): DefaultResponse @auth(requires: ["manage:system", "manage:api"])
- setApiState(
- enabled: Boolean!
- ): DefaultResponse @auth(requires: ["manage:system", "manage:api"])
- updateStrategies(
- strategies: [AuthenticationStrategyInput]!
- ): DefaultResponse @auth(requires: ["manage:system"])
- regenerateCertificates: DefaultResponse @auth(requires: ["manage:system"])
- resetGuestUser: DefaultResponse @auth(requires: ["manage:system"])
- }
- # -----------------------------------------------
- # TYPES
- # -----------------------------------------------
- type AuthenticationStrategy {
- key: String!
- props: [KeyValuePair] @auth(requires: ["manage:system"])
- title: String!
- description: String
- isAvailable: Boolean
- useForm: Boolean!
- usernameType: String
- logo: String
- color: String
- website: String
- icon: String
- }
- type AuthenticationActiveStrategy {
- key: String!
- strategy: AuthenticationStrategy!
- displayName: String!
- order: Int!
- isEnabled: Boolean!
- 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
- mustChangePwd: Boolean
- mustProvideTFA: Boolean
- mustSetupTFA: Boolean
- continuationToken: String
- redirect: String
- tfaQRImage: String
- }
- type AuthenticationRegisterResponse {
- responseResult: ResponseStatus
- 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: Int!
- name: String!
- keyShort: String!
- expiration: Date!
- createdAt: Date!
- updatedAt: Date!
- isRevoked: Boolean!
- }
- type AuthenticationCreateApiKeyResponse {
- responseResult: ResponseStatus
- key: String
- }
|