# GraphQL schema example # # https://gqlgen.com/getting-started/ scalar Int64 scalar Map scalar Any type Meta { version: String! is_google_login_enabled: Boolean! is_facebook_login_enabled: Boolean! is_github_login_enabled: Boolean! is_email_verification_enabled: Boolean! is_basic_authentication_enabled: Boolean! is_magic_link_login_enabled: Boolean! } type User { id: ID! email: String! email_verified: Boolean! signup_methods: String! given_name: String family_name: String middle_name: String nickname: String # defaults to email preferred_username: String gender: String birthdate: String phone_number: String phone_number_verified: Boolean picture: String roles: [String!]! created_at: Int64 updated_at: Int64 } type VerificationRequest { id: ID! identifier: String token: String email: String expires: Int64 created_at: Int64 updated_at: Int64 } type Error { message: String! reason: String! } type AuthResponse { message: String! access_token: String expires_at: Int64 user: User } type Response { message: String! } type Env { ADMIN_SECRET: String SMTP_HOST: String SMTP_PORT: String SMTP_USERNAME: String SMTP_PASSWORD: String SENDER_EMAIL: String JWT_TYPE: String JWT_SECRET: String ALLOWED_ORIGINS: [String!] AUTHORIZER_URL: String APP_URL: String REDIS_URL: String COOKIE_NAME: String RESET_PASSWORD_URL: String DISABLE_EMAIL_VERIFICATION: Boolean DISABLE_BASIC_AUTHENTICATION: Boolean DISABLE_MAGIC_LINK_LOGIN: Boolean DISABLE_LOGIN_PAGE: Boolean ROLES: [String!] PROTECTED_ROLES: [String!] DEFAULT_ROLES: [String!] JWT_ROLE_CLAIM: String GOOGLE_CLIENT_ID: String GOOGLE_CLIENT_SECRET: String GITHUB_CLIENT_ID: String GITHUB_CLIENT_SECRET: String FACEBOOK_CLIENT_ID: String FACEBOOK_CLIENT_SECRET: String ORGANIZATION_NAME: String ORGANIZATION_LOGO: String } input UpdateEnvInput { ADMIN_SECRET: String OLD_ADMIN_SECRET: String SMTP_HOST: String SMTP_PORT: String SENDER_EMAIL: String SENDER_PASSWORD: String JWT_TYPE: String JWT_SECRET: String ALLOWED_ORIGINS: [String!] AUTHORIZER_URL: String APP_URL: String REDIS_URL: String COOKIE_NAME: String RESET_PASSWORD_URL: String DISABLE_EMAIL_VERIFICATION: Boolean DISABLE_BASIC_AUTHENTICATION: Boolean DISABLE_MAGIC_LINK_LOGIN: Boolean DISABLE_LOGIN_PAGE: Boolean ROLES: [String!] PROTECTED_ROLES: [String!] DEFAULT_ROLES: [String!] JWT_ROLE_CLAIM: String GOOGLE_CLIENT_ID: String GOOGLE_CLIENT_SECRET: String GITHUB_CLIENT_ID: String GITHUB_CLIENT_SECRET: String FACEBOOK_CLIENT_ID: String FACEBOOK_CLIENT_SECRET: String ORGANIZATION_NAME: String ORGANIZATION_LOGO: String } input AdminLoginInput { admin_secret: String! } input AdminSignupInput { admin_secret: String! } input SignUpInput { email: String! given_name: String family_name: String middle_name: String nickname: String gender: String birthdate: String phone_number: String picture: String password: String! confirm_password: String! roles: [String!] } input LoginInput { email: String! password: String! roles: [String!] } input VerifyEmailInput { token: String! } input ResendVerifyEmailInput { email: String! identifier: String! } input UpdateProfileInput { old_password: String new_password: String confirm_new_password: String email: String given_name: String family_name: String middle_name: String nickname: String gender: String birthdate: String phone_number: String picture: String } input UpdateUserInput { id: ID! email: String email_verified: Boolean given_name: String family_name: String middle_name: String nickname: String gender: String birthdate: String phone_number: String picture: String roles: [String] } input ForgotPasswordInput { email: String! } input ResetPasswordInput { token: String! password: String! confirm_password: String! } input DeleteUserInput { email: String! } input MagicLinkLoginInput { email: String! roles: [String!] } type Mutation { signup(params: SignUpInput!): AuthResponse! login(params: LoginInput!): AuthResponse! magic_link_login(params: MagicLinkLoginInput!): Response! logout: Response! update_profile(params: UpdateProfileInput!): Response! verify_email(params: VerifyEmailInput!): AuthResponse! resend_verify_email(params: ResendVerifyEmailInput!): Response! forgot_password(params: ForgotPasswordInput!): Response! reset_password(params: ResetPasswordInput!): Response! # admin only apis _delete_user(params: DeleteUserInput!): Response! _update_user(params: UpdateUserInput!): User! _admin_signup(params: AdminSignupInput!): Response! _admin_login(params: AdminLoginInput!): Response! _admin_logout: Response! _update_env(params: UpdateEnvInput!): Response! } type Query { meta: Meta! session(roles: [String!]): AuthResponse! profile: User! # admin only apis _users: [User!]! _verification_requests: [VerificationRequest!]! _admin_session: Response! _env: Env! }