182 lines
3.5 KiB
GraphQL
182 lines
3.5 KiB
GraphQL
|
# source: http://localhost:4000/graphql
|
||
|
# timestamp: Thu May 07 2020 16:24:38 GMT-0400 (Amazon Standard Time)
|
||
|
|
||
|
directive @auth(roles: [String!]) on FIELD_DEFINITION
|
||
|
|
||
|
directive @cacheControl(maxAge: Int, scope: CacheControlScope) on FIELD_DEFINITION | OBJECT | INTERFACE
|
||
|
|
||
|
type AuthPayload {
|
||
|
user: User!
|
||
|
token: String!
|
||
|
expiresIn: String!
|
||
|
}
|
||
|
|
||
|
enum CacheControlScope {
|
||
|
PUBLIC
|
||
|
PRIVATE
|
||
|
}
|
||
|
|
||
|
input CreateResetTokenInput {
|
||
|
username: String!
|
||
|
}
|
||
|
|
||
|
type Group {
|
||
|
cn: String!
|
||
|
dn: String!
|
||
|
name: String
|
||
|
members: [User!]!
|
||
|
}
|
||
|
|
||
|
input GroupWhereInput {
|
||
|
cn: String
|
||
|
dn: String
|
||
|
name: String
|
||
|
}
|
||
|
|
||
|
input LoginInput {
|
||
|
username: String!
|
||
|
password: String!
|
||
|
}
|
||
|
|
||
|
type Mutation {
|
||
|
login(data: LoginInput!): AuthPayload!
|
||
|
updatePassword(data: UpdatePasswordInput!): AuthPayload!
|
||
|
replacePassword(data: ReplacePasswordInput!): String!
|
||
|
createResetToken(data: CreateResetTokenInput!): ResetToken!
|
||
|
useResetToken(data: UseResetTokenInput!): Boolean!
|
||
|
importUsers: String!
|
||
|
}
|
||
|
|
||
|
type Query {
|
||
|
"""Returns only a few fields of User"""
|
||
|
basicUser(sAMAccountName: String!): User!
|
||
|
me: User!
|
||
|
users(where: UserWhereInput!, limit: Int = 15, onlyStudents: Boolean = false): [User!]
|
||
|
user(sAMAccountName: String!): User!
|
||
|
groups(where: GroupWhereInput!, limit: Int = 10): [Group!]!
|
||
|
stats: Stats!
|
||
|
wifiDevices(search: String = "", identifiedOnly: Boolean = true): [WifiDevice]!
|
||
|
userPresence(search: String): [UserPresence!]
|
||
|
}
|
||
|
|
||
|
input ReplacePasswordInput {
|
||
|
username: String!
|
||
|
newPassword: String!
|
||
|
}
|
||
|
|
||
|
type ResetToken {
|
||
|
id: ID!
|
||
|
user: User!
|
||
|
creator: User!
|
||
|
token: String!
|
||
|
expiration: String!
|
||
|
createdAt: String!
|
||
|
updatedAt: String!
|
||
|
}
|
||
|
|
||
|
type Stats {
|
||
|
tokenCountTotal: Int!
|
||
|
tokenCountUsed: Int!
|
||
|
tokenCountExpired: Int!
|
||
|
tokenCountNotUsed: Int!
|
||
|
}
|
||
|
|
||
|
enum Status {
|
||
|
ONLINE
|
||
|
OFFLINE
|
||
|
}
|
||
|
|
||
|
input UpdatePasswordInput {
|
||
|
oldPassword: String!
|
||
|
newPassword: String!
|
||
|
}
|
||
|
|
||
|
"""The `Upload` scalar type represents a file upload."""
|
||
|
scalar Upload
|
||
|
|
||
|
"""A mix between the database User and the Active Directory User"""
|
||
|
type User {
|
||
|
id: ID
|
||
|
wifiDevices: [WifiDevice!]
|
||
|
lastLogin: String
|
||
|
lastLoginPrior: String
|
||
|
roles: [String!]
|
||
|
firstName: String
|
||
|
groups: [Group!]
|
||
|
isSuperAdmin: Boolean!
|
||
|
isTokenCreator: Boolean!
|
||
|
isServant: Boolean!
|
||
|
isStudent: Boolean!
|
||
|
isWatcher: Boolean!
|
||
|
createdAt: String!
|
||
|
updatedAt: String!
|
||
|
accountExpires: String
|
||
|
badPasswordTime: String
|
||
|
badPwdCount: String
|
||
|
cn: String
|
||
|
department: String
|
||
|
description: String
|
||
|
displayName: String
|
||
|
distinguishedName: String
|
||
|
dn: String
|
||
|
extensionAttribute1: String
|
||
|
extensionAttribute10: String
|
||
|
extensionAttribute2: String
|
||
|
extensionAttribute6: String
|
||
|
extensionAttribute7: String
|
||
|
givenName: String
|
||
|
homeDirectory: String
|
||
|
homeDrive: String
|
||
|
lastLogon: String
|
||
|
lastLogonTimestamp: String
|
||
|
lockoutTime: String
|
||
|
logonCount: String
|
||
|
mail: String
|
||
|
name: String
|
||
|
objectCategory: String
|
||
|
objectGUID: String
|
||
|
objectSid: String
|
||
|
primaryGroupID: String
|
||
|
pwdLastSet: String
|
||
|
sAMAccountName: String!
|
||
|
sAMAccountType: String
|
||
|
sn: String
|
||
|
thumbnailPhoto: String
|
||
|
title: String
|
||
|
userAccountControl: String
|
||
|
userPrincipalName: String
|
||
|
whenChanged: String
|
||
|
whenCreated: String
|
||
|
}
|
||
|
|
||
|
input UseResetTokenInput {
|
||
|
token: String!
|
||
|
newPassword: String!
|
||
|
}
|
||
|
|
||
|
type UserPresence {
|
||
|
user: User!
|
||
|
wifiDevices: [WifiDevice!]!
|
||
|
}
|
||
|
|
||
|
input UserWhereInput {
|
||
|
cn: String
|
||
|
displayName: String
|
||
|
sAMAccountName: String
|
||
|
}
|
||
|
|
||
|
type WifiDevice {
|
||
|
user: User
|
||
|
id: String
|
||
|
oui: String
|
||
|
mac: String
|
||
|
hostname: String
|
||
|
firstSeen: String
|
||
|
lastSeen: String
|
||
|
essid: String
|
||
|
ip: String
|
||
|
uptime: String
|
||
|
apName: String
|
||
|
status: Status
|
||
|
}
|