You've already forked authentication-service
mirror of
https://github.com/matrix-org/matrix-authentication-service.git
synced 2025-07-07 22:41:18 +03:00
399 lines
6.3 KiB
GraphQL
399 lines
6.3 KiB
GraphQL
"""
|
|
An authentication records when a user enter their credential in a browser
|
|
session.
|
|
"""
|
|
type Authentication implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
When the object was created.
|
|
"""
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
|
|
"""
|
|
A browser session represents a logged in user in a browser.
|
|
"""
|
|
type BrowserSession implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
The user logged in this session.
|
|
"""
|
|
user: User!
|
|
"""
|
|
The most recent authentication of this session.
|
|
"""
|
|
lastAuthentication: Authentication
|
|
"""
|
|
When the object was created.
|
|
"""
|
|
createdAt: DateTime!
|
|
}
|
|
|
|
type BrowserSessionConnection {
|
|
"""
|
|
Information to aid in pagination.
|
|
"""
|
|
pageInfo: PageInfo!
|
|
"""
|
|
A list of edges.
|
|
"""
|
|
edges: [BrowserSessionEdge!]!
|
|
"""
|
|
A list of nodes.
|
|
"""
|
|
nodes: [BrowserSession!]!
|
|
}
|
|
|
|
"""
|
|
An edge in a connection.
|
|
"""
|
|
type BrowserSessionEdge {
|
|
"""
|
|
A cursor for use in pagination
|
|
"""
|
|
cursor: String!
|
|
"""
|
|
The item at the end of the edge
|
|
"""
|
|
node: BrowserSession!
|
|
}
|
|
|
|
"""
|
|
A compat session represents a client session which used the legacy Matrix
|
|
login API.
|
|
"""
|
|
type CompatSession implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
The user authorized for this session.
|
|
"""
|
|
user: User!
|
|
"""
|
|
The Matrix Device ID of this session.
|
|
"""
|
|
deviceId: String!
|
|
"""
|
|
When the object was created.
|
|
"""
|
|
createdAt: DateTime!
|
|
"""
|
|
When the session ended.
|
|
"""
|
|
finishedAt: DateTime
|
|
}
|
|
|
|
"""
|
|
A compat SSO login represents a login done through the legacy Matrix login
|
|
API, via the `m.login.sso` login method.
|
|
"""
|
|
type CompatSsoLogin implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
When the object was created.
|
|
"""
|
|
createdAt: DateTime!
|
|
"""
|
|
The redirect URI used during the login.
|
|
"""
|
|
redirectUri: Url!
|
|
"""
|
|
When the login was fulfilled, and the user was redirected back to the
|
|
client.
|
|
"""
|
|
fulfilledAt: DateTime
|
|
"""
|
|
When the client exchanged the login token sent during the redirection.
|
|
"""
|
|
exchangedAt: DateTime
|
|
"""
|
|
The compat session which was started by this login.
|
|
"""
|
|
session: CompatSession
|
|
}
|
|
|
|
type CompatSsoLoginConnection {
|
|
"""
|
|
Information to aid in pagination.
|
|
"""
|
|
pageInfo: PageInfo!
|
|
"""
|
|
A list of edges.
|
|
"""
|
|
edges: [CompatSsoLoginEdge!]!
|
|
"""
|
|
A list of nodes.
|
|
"""
|
|
nodes: [CompatSsoLogin!]!
|
|
}
|
|
|
|
"""
|
|
An edge in a connection.
|
|
"""
|
|
type CompatSsoLoginEdge {
|
|
"""
|
|
A cursor for use in pagination
|
|
"""
|
|
cursor: String!
|
|
"""
|
|
The item at the end of the edge
|
|
"""
|
|
node: CompatSsoLogin!
|
|
}
|
|
|
|
"""
|
|
Implement the DateTime<Utc> scalar
|
|
|
|
The input/output is a string in RFC3339 format.
|
|
"""
|
|
scalar DateTime
|
|
|
|
|
|
|
|
|
|
interface Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
}
|
|
|
|
"""
|
|
An OAuth 2.0 client
|
|
"""
|
|
type Oauth2Client implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
OAuth 2.0 client ID
|
|
"""
|
|
clientId: String!
|
|
"""
|
|
Client name advertised by the client.
|
|
"""
|
|
clientName: String
|
|
"""
|
|
Client URI advertised by the client.
|
|
"""
|
|
clientUri: Url
|
|
"""
|
|
Terms of services URI advertised by the client.
|
|
"""
|
|
tosUri: Url
|
|
"""
|
|
Privacy policy URI advertised by the client.
|
|
"""
|
|
policyUri: Url
|
|
"""
|
|
List of redirect URIs used for authorization grants by the client.
|
|
"""
|
|
redirectUris: [Url!]!
|
|
}
|
|
|
|
"""
|
|
An OAuth 2.0 session represents a client session which used the OAuth APIs
|
|
to login.
|
|
"""
|
|
type Oauth2Session implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
OAuth 2.0 client used by this session.
|
|
"""
|
|
client: Oauth2Client!
|
|
"""
|
|
Scope granted for this session.
|
|
"""
|
|
scope: String!
|
|
"""
|
|
The browser session which started this OAuth 2.0 session.
|
|
"""
|
|
browserSession: BrowserSession!
|
|
"""
|
|
User authorized for this session.
|
|
"""
|
|
user: User!
|
|
}
|
|
|
|
type Oauth2SessionConnection {
|
|
"""
|
|
Information to aid in pagination.
|
|
"""
|
|
pageInfo: PageInfo!
|
|
"""
|
|
A list of edges.
|
|
"""
|
|
edges: [Oauth2SessionEdge!]!
|
|
"""
|
|
A list of nodes.
|
|
"""
|
|
nodes: [Oauth2Session!]!
|
|
}
|
|
|
|
"""
|
|
An edge in a connection.
|
|
"""
|
|
type Oauth2SessionEdge {
|
|
"""
|
|
A cursor for use in pagination
|
|
"""
|
|
cursor: String!
|
|
"""
|
|
The item at the end of the edge
|
|
"""
|
|
node: Oauth2Session!
|
|
}
|
|
|
|
"""
|
|
Information about pagination in a connection
|
|
"""
|
|
type PageInfo {
|
|
"""
|
|
When paginating backwards, are there more items?
|
|
"""
|
|
hasPreviousPage: Boolean!
|
|
"""
|
|
When paginating forwards, are there more items?
|
|
"""
|
|
hasNextPage: Boolean!
|
|
"""
|
|
When paginating backwards, the cursor to continue.
|
|
"""
|
|
startCursor: String
|
|
"""
|
|
When paginating forwards, the cursor to continue.
|
|
"""
|
|
endCursor: String
|
|
}
|
|
|
|
"""
|
|
The query root of the GraphQL interface.
|
|
"""
|
|
type RootQuery {
|
|
"""
|
|
Get the current logged in browser session
|
|
"""
|
|
currentBrowserSession: BrowserSession
|
|
"""
|
|
Get the current logged in user
|
|
"""
|
|
currentUser: User
|
|
}
|
|
|
|
|
|
"""
|
|
URL is a String implementing the [URL Standard](http://url.spec.whatwg.org/)
|
|
"""
|
|
scalar Url
|
|
|
|
"""
|
|
A user is an individual's account.
|
|
"""
|
|
type User implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
Username chosen by the user.
|
|
"""
|
|
username: String!
|
|
"""
|
|
Primary email address of the user.
|
|
"""
|
|
primaryEmail: UserEmail
|
|
"""
|
|
Get the list of compatibility SSO logins, chronologically sorted
|
|
"""
|
|
compatSsoLogins(after: String, before: String, first: Int, last: Int): CompatSsoLoginConnection!
|
|
"""
|
|
Get the list of active browser sessions, chronologically sorted
|
|
"""
|
|
browserSessions(after: String, before: String, first: Int, last: Int): BrowserSessionConnection!
|
|
"""
|
|
Get the list of emails, chronologically sorted
|
|
"""
|
|
emails(after: String, before: String, first: Int, last: Int): UserEmailConnection!
|
|
"""
|
|
Get the list of OAuth 2.0 sessions, chronologically sorted
|
|
"""
|
|
oauth2Sessions(after: String, before: String, first: Int, last: Int): Oauth2SessionConnection!
|
|
}
|
|
|
|
"""
|
|
A user email address
|
|
"""
|
|
type UserEmail implements Node {
|
|
"""
|
|
ID of the object.
|
|
"""
|
|
id: ID!
|
|
"""
|
|
Email address
|
|
"""
|
|
email: String!
|
|
"""
|
|
When the object was created.
|
|
"""
|
|
createdAt: DateTime!
|
|
"""
|
|
When the email address was confirmed. Is `null` if the email was never
|
|
verified by the user.
|
|
"""
|
|
confirmedAt: DateTime
|
|
}
|
|
|
|
type UserEmailConnection {
|
|
"""
|
|
Information to aid in pagination.
|
|
"""
|
|
pageInfo: PageInfo!
|
|
"""
|
|
A list of edges.
|
|
"""
|
|
edges: [UserEmailEdge!]!
|
|
"""
|
|
A list of nodes.
|
|
"""
|
|
nodes: [UserEmail!]!
|
|
"""
|
|
Identifies the total count of items in the connection.
|
|
"""
|
|
totalCount: Int!
|
|
}
|
|
|
|
"""
|
|
An edge in a connection.
|
|
"""
|
|
type UserEmailEdge {
|
|
"""
|
|
A cursor for use in pagination
|
|
"""
|
|
cursor: String!
|
|
"""
|
|
The item at the end of the edge
|
|
"""
|
|
node: UserEmail!
|
|
}
|
|
|
|
schema {
|
|
query: RootQuery
|
|
}
|
|
|