GraphQL Endpoint
The recommended way to search events using an API is to POST your query and variables to the appropriate Retraced GraphQL endpoint.
Search
The query root provides a search method. A fully-formed query for a subset of event fields would look like this:
{
search(query:"action:user.login location:Germany", last:50, before:"opaquecursor") {
totalCount
pageInfo {
hasNextPage
}
edges {
cursor
node {
action
actor {
name
}
created
country
}
}
}
}
Variables
Use query
, last
, and before
variables to enable reuse of your query templates. If you define a parameterized query like this…
const searchQuery = `query Search($query: String!, $last: Int, $before: String) {
search(query:"action:user.login location:Germany", last:50, before:"opaquecursor") {
totalCount
pageInfo {
hasNextPage
}
edges {
cursor
node {
action
actor {
name
}
created
country
}
}
}
}`;
… then you can execute searches like this:
const vars = {
query: "action:user.login location:German",
last: 50,
before: "opaquecursor",
};
const res = fetch("https://api.retraced.io/publisher/v1/project/3hf140713bn302/graphql", {
method: "POST",
headers: {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Token token=2ba3059ad7f14071b9befb2a7a2e195e",
},
body: JSON.stringify({
query: searchQuery,
variables: vars,
}),
});
Schema Types
Table of Contents
Query
The root query object of the Retraced GraphQL interface.
Field | Argument | Type | Description |
---|---|---|---|
search | EventsConnection | Run an advanced search for events. | |
query | String | The structured search operators used to filter events. | |
first | Int |
The limit of events to return, sorted from oldest to newest. It can optionally be used with the after argument.
|
|
after | String | A cursor returned from a previous query. | |
last | Int |
The limit of events to return, sorted from newest to oldest. It can optionally be used with the before argument.
|
|
before | String | A cursor returned from a previous query. |
Objects
Action
An action.
Field | Argument | Type | Description |
---|---|---|---|
action | String | The action field of an event such as "user.login". |
Actor
The agent who performed an event.
Field | Argument | Type | Description |
---|---|---|---|
id | ID | A unique id representing this actor. | |
name | String | The name of this actor. | |
href | String | The URL associated with this actor. | |
fields | [Field] | The set of fields associated with this actor. |
Display
Field | Argument | Type | Description |
---|---|---|---|
markdown | String |
Event
A single record in an audit log.
Field | Argument | Type | Description |
---|---|---|---|
id | ID | A unique id representing this event. | |
action | String | The type of action that was taken to generate this event. | |
description | String | The description of the event that was taken. | |
group | Group | The group associated with this event. | |
actor | Actor | The actor associated with this event. | |
target | Target | The target associated with this event. | |
crud | CRUD | The classification of this event as create, read, update, or delete. | |
display | Display | The display text for this event. | |
received | String | The time that the Retraced API received this event. | |
created | String | The time that this event was reported as performed. | |
canonical_time | String | The created time if specified; else the received time. | |
is_failure | Boolean | Set to true if the event represents a failed use of permissions. | |
is_anonymous | Boolean | Set to true if the user was not logged in when performing this action. | |
source_ip | String | The IP address of the actor when the action was performed. | |
country | String | The country that the actor was in when the action was performed. | |
loc_subdiv1 | String | The large area of the country the actor was in when the action was performed (State). | |
loc_subdiv2 | String | The granular area of the country the actor was in when the action was performed (City). | |
component | String | An identifier for the vendor app component that sent the event. | |
version | String | An identifier for the version of the vendor app that sent the event, usually a git SHA | |
fields | [Field] | The set of fields associated with this event. | |
raw | String | The raw event sent to the Retraced API. |
EventEdge
The event and cursor for a single result.
Field | Argument | Type | Description |
---|---|---|---|
node | Event | The event object. | |
cursor | String |
An opaque cursor for paginating from this point in the search results. Use it as the after argument to paginate forward or the before argument to paginate backward.
|
EventsConnection
The results of a search query.
Field | Argument | Type | Description |
---|---|---|---|
edges | [EventEdge] | The events and cursors matching the query. | |
pageInfo | PageInfo | Indications that more search results are available. | |
totalCount | Int | The total number of search results matched by the query. |
Field
Field | Argument | Type | Description |
---|---|---|---|
key | String | The key for this field. | |
value | String | The value for this field. |
Group
The group this event is associated with.
Field | Argument | Type | Description |
---|---|---|---|
id | ID | A unique id representing this group. | |
name | String | The name of this group. |
PageInfo
Field | Argument | Type | Description |
---|---|---|---|
hasNextPage | Boolean |
When paging forward with first , indicates more results are available.
|
|
hasPreviousPage | Boolean |
When paging backward with last , indicates more results are available.
|
Target
The object an event is performed on.
Field | Argument | Type | Description |
---|---|---|---|
id | ID | A unique id representing this target. | |
name | String | The name of this target. | |
href | String | The URL associated with this target. | |
type | String | The type of this target entity. | |
fields | [Field] | The set of fields associated with this target. |
Enums
CRUD
Create | Read | Update | Delete
Value | Description |
---|---|
c | create |
r | read |
u | update |
d | delete |
Scalars
Boolean
The Boolean
scalar type represents true
or false
.
ID
The ID
scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4"
) or integer (such as 4
) input value will be accepted as an ID.
Int
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
String
The String
scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.