-
Notifications
You must be signed in to change notification settings - Fork 4
/
schema.graphql
172 lines (151 loc) · 3.33 KB
/
schema.graphql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# ------------------------------------------------------
# THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY)
# ------------------------------------------------------
type OAuthClient {
id: String!
createdAt: DateTime!
updatedAt: DateTime!
name: String!
secret: String!
redirect: [String!]!
meta: JSON!
grantTypes: [GrantTypes!]!
responseTypes: [ResponseTypes!]!
responseModes: [ResponseModes!]!
scopes: [String!]!
firstParty: Boolean!
authMethods: [TokenAuthMethod!]!
}
"""
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
"""
scalar DateTime
"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSON
enum GrantTypes {
password
authorization_code
refresh_token
client_credentials
}
enum ResponseTypes {
code
}
enum ResponseModes {
query
fragment
form_post
}
enum TokenAuthMethod {
client_secret_post
client_secret_basic
none
}
type User {
id: String!
createdAt: DateTime!
updatedAt: DateTime!
nickname: String!
firstName: String
lastName: String
email: EmailAddress
emailVerifiedAt: DateTime
role: Roles!
tfaEnabled: Boolean!
picture: String!
}
"""
A field whose value conforms to the standard internet email address format as specified in RFC822: https://www.w3.org/Protocols/rfc822/.
"""
scalar EmailAddress
enum Roles {
ADMIN
USER
}
type PaginationInfo {
hasMore: Boolean!
total: Int!
}
type UsersPaginatedResponse {
items: [User!]!
paginationInfo: PaginationInfo!
}
type Session {
sessionId: ID!
ip: String!
userAgent: String
os: String
browser: String
createdAt: DateTime
}
type Query {
getClients: [OAuthClient!]!
getClient(id: ID!): OAuthClient!
getUsers(limit: Int = 10, skip: Int = 0): UsersPaginatedResponse!
getUser(id: ID!): User!
activeSessions: [Session!]!
usersCount: Int!
clientsCount: Int!
newSignUps(since: DateTime!): Int!
}
type Mutation {
createClient(data: CreateClientInput!): OAuthClient!
updateClient(data: UpdateClientInput!, id: ID!): OAuthClient!
deleteClient(id: ID!): Boolean!
createUser(data: CreateUserInput!): User!
updateUser(data: UpdateUserInput!, id: ID!): User!
deleteUser(id: ID!): Boolean!
deleteSession(id: ID!): Boolean!
updateCurrentUser(data: UpdateCurrentUserInput!): User!
requestTfa: String!
verifyTfa(code: String!): Boolean!
disableTfa: Boolean!
}
input CreateClientInput {
name: String!
meta: ClientMetaInput
redirect: [String!]!
firstParty: Boolean = false
}
input ClientMetaInput {
description: String
logo_uri: String
}
input UpdateClientInput {
name: String
meta: ClientMetaInput
redirect: [String!]
grantTypes: [String!]
responseTypes: [String!]
responseModes: [String!]
authMethods: [String!]
firstParty: Boolean
scopes: [String!]
}
input CreateUserInput {
nickname: String!
firstName: String
lastName: String
email: EmailAddress!
password: String!
passwordConfirm: String!
role: Roles = USER
}
input UpdateUserInput {
nickname: String
firstName: String
lastName: String
email: EmailAddress
role: Roles
}
input UpdateCurrentUserInput {
nickname: String
firstName: String
lastName: String
email: EmailAddress
password: String
passwordConfirm: String
currentPassword: String
}